分页
1、分页的主要作用是显示查询出的数据的部分行,对于查询量较大的数据,可以作为预览的功能
2、在语句的限定部分,用limit+数字,可以显示查询出来数据的前几行,行数取决于输入的数字
select * from student where gender=1 limit 2;
这一语句一直重复下去的话,后面的输出是接着前面的数据的,一直到表内数据全部通过这条语句输出为止
3、如显示的条数是从指定的某行数据开始,则用limit+起始行数的下标,每次显示的行数
select * from student where gender=1 limit 3,2;
4、对于where、order by、limit这几个条件语句,其使用顺序应为
where -> order by -> limit
连接查询
1、连接查询用于多个表间的关联查询,其目的与Excel中的vlookup函数类似,但实现的功能比vlookup要多
2、连接查询分为内连接(inner join)、左连接(left join)、右连接(right join),并与on+表间关联字段 语句结合使用
3、内连接即取表间某一字段的交集
select * from student inner join classes on student.cls_id=classes.id;
这一语句会将两表相应字段进行匹配的同时,将两个表拼接起来
4、如只需要查询指定字段的数据,而非两表拼接返回所有字段,则可以参考如下
select s.name, c.id from student as s inner join classes as c on student.cls_id=classes.id order by c.id;
5、左连接即以左边的表内字段为基准,与右边的表进行连接查询。如连接查询的字段中左边表存在右边表内没有的数据,则在拼接的表内,右边的表在相应字段的数据是Null
select * from student left join classes on student.cls_id=classes.id;
6、右连接的查询基准为右边的表,由于在使用时将左连接语句内表的顺序进行交换也能做到右连接的功能,故右连接用的相应较少
7、利用左连接可以查询到两表关联字段中无法对应的数据
select * from student left join classes on student.cls_id=classes.id having c.id is null;
子查询
1、子查询即在一个select语句中嵌套了另一个select语句
select * from student where height=(select max(height) from student);
2、由于select语句的嵌套,子查询的效率相对较低
自关联
在设计数据表时,为了减少多个表之间关联的情况,会将存在从属、等级关系的数据(如省市县、部门)合并在一个表内,上一级数据的主键可以作为下一级数据的索引