前期回顾
(?表示根据自己实际情况进行填写)
- 查询
select * from ?;
- 添加
insert into ? values(?);
insert into ? (?) values (?);
- 修改
update ? set name = ? where ?;
- 删除
delete from ? where ?;
delete from ?;
- 条件编写
1.where 关键字后面跟的便是查询条件,多个查询条件如果需要同时满足则用 and 连接,满足一个则用 or 连接,否定则是 not;
select * from ? where ? and ?;
select * from ? where ? or ?;
select * from ? where not ? ;
2.字母表排序查询,也可以用大于小于号,如name>’a’;
select * from ? where ? > ?;
- 查询列自定义
1.select关键字后面的*,表示查询表中的所有列
select * from ?;
2.选取数据表部分列
select id, name from ?;
3.自定义列名
select id i,name n from ?;
复杂查询
排序(order by)
1.默认是递增顺序
select * from `group` order by max_size;
2.逆序
select * from `group` order by max_size desc;
查询数量(limit)
/* 查询前两条数据 */
select * from `group` limit 2;
/* 查询从第2条开始,不包含这条,查询3条 */
select * from `group` limit 2,3;
排序和查询数量组合
/* 查询组最多人数的最小两个组 */
select * from `group` order by max_size limit 2;
/* 查询组最多人数的最大两个组 ??? */
分组(group by)
1.group by一般与统计函数一起使用,注意使用这一关键字不能往查询数据中取单条数据中其他属性,除分组属性
2.常用的统计函数
- sum 求和
- max 最大
- min 最小
- avg 求平均
- count 数量
/* 根据最多人数进行分组,并查询其数量 */
select max_size,count(*) from `group` group by max_size;
模糊查询(like)
_ 匹配任意一个字符
% 匹配任意一个或多个字符
/* 查询name中含有b的,很奇怪为什么这里代码不显示不一样颜色呢? */
select * from `group` where name like '%b%';
/* 查询name中以z开头且只有两个字母? */
select * from `group` where name like 'z_';
外键详解
子表插入数据
insert into member values('0001','零零一','abc001',1,'我是零零一');
我相信你肯定记得我们在**这个表里面group_id是一个外键
所有的group数据
insert into member values('0002','零零二','abc001',10,'我是零零一');
报错信息的大概意思就是:由于这个表中存在外键约束,且外键值非法
cascade,我相信这个的意思你肯定记得,如果不记得,请查看这一篇博客
插入了一些信息,便于测试
所有的member信息
现在试着对父表进行操作,看看子表会发现什么变化
1.更新
update `group` set id = 10 where name = 'modify';
子表的group_id也变化了
2.删除
delete from `group` where id = 1;
子表对应的数据也被删除了
下一篇博客将要介绍子查询
欢迎大家留言转载
关注微信公众号:SimFG,随时随地看博客要点