cmd--mysql mysql/bin
zerofill not null default xxxx
unsigned not null default XXXX
auto_increment primary key
show create table goods;查看见表语句
c 终止命令
create table test5 (
-> ts timestamp default CURRENT_TIMESTAMP --当前时间 XXXX-XX-XX XX:XX:XX格式
-> ,
-> id int
-> )engine myisam charset utf8;
alter table XXX modify / change 的区别
max,min,sum,avg,count 注意null列 null count(*) count(id)注意null影响
select goods_id,sum(goods_number) from goods; 错误的 goods_id是第一次粗线的值
select name,count(score<60) as k,avg(score) from stu group by name; 错误
select name,sum(score < 60) as gk ,avg(score) as pj from stu group by name having gk >=2
取出点击量前三名到前5名的商品 select goods_id,goods_name,click_count from ecs_goods order by click_count desc limit 2,3;
group by having 顺序注意
注意聚合函数max min sum 之类如果连带查name 的附属列 ,注意name不一定是要的值
例子 每个栏目下id最大的XXX
select goods_id,goods_name from
(select goods_id,cat_id,goods_name,shop_price,add_time from goods
order by cat_id,goods_id desc) as tmp
GROUP BY cat_id order by goods_id
select goods_id,goods_name from goods where goods_id in (
select max(goods_id) from goods GROUP BY cat_id
)
exists的用法 下面有内容的项目
select cat_id,cat_name from category
where exists (select * from goods where goods.cat_id=category.cat_id);
null的判断方式注意!count(*) count(id) 对于 null值那一行的统计有什么不同
select from table1,table2 并集 t1Xt2
create table minigoods like goods; 创建某表像goods表的结构
select 'A' = 'a';
A left join B 以A为基准 A不会有null B则可能有null
A right join B 以B为基准,A可能有null B不一定有null
inner join 不允许有 null 包含行
union 会去除相同的重复行,每个列
union all 则是并集
列名不同,列类型不同,可以union / union all
create view viewname as
select XXXXXXXXXXXXXX from XXX
where XXXXXXXXXXXXXXXXXXXXX
使用视图操作表数据
(一)、通过视图添加表数据使用INSERT语句实现。 注意:视图是虚拟表,其本身不存储数据(来自其引用表),添加的数据是存储于视图参照的数据表中。条件分析:1)用户有向数据表插入数据的权限;2)视图只引用表中部分字段,插入数据时只能是明确其应用的字段取值;3)未引用的字段应具备下列条件之一: 允许空值;设有默认值;是标识字段;数据类型是timestamp或uniqueidentifer;4)视图不能包含多个字段的组合5)视图不能包含使用统计函数的结果;6)视图不能包含DISTINCT或GROUP BY子句;7)定义视图使用WITH CHECK OPTION,则插入数据应符合相应条件;8)若视图引用多个表,一条INSERT语句只能同一个基表表中数据;例:首先创建了一个新的视图:CREATE VIEW ygb_view AS SELECT * FROM 员工表 WHERE 员工表.性别=‘女’ with check option然后,通过执行以下语句使用该视图向基表添加一条新的数据记录:INSERT INTO ygb_view(姓名,性别,工资) values(‘李立平’,‘女’,2300)(二). 更新数据记录 使用视图可以更新基表数据记录(注意使用INSERT时的限制同样适用)。例子3:(1) update 项目_view set 项目负责人= ‘王大力’ where 项目负责人= ‘王立兵’(2) update 项目_view set 结束日期= DATEADD(day,50,结束日期) where 客户名称=‘CCH公司’(三)、删除数据记录 利用DELETE语句,使用视图删除记录,可以删除任何基表中的记录。 注意: 必须指定在视图中定义过的字段来删除记录; 视图引用多个表时,无法用DELETE命令删除数据。例子4:delete ygb_view where 员工工资<1500
视图仅仅是一个虚拟表,本身不具有任何数据