查询语句示例: 查询所有学生:select * from student; 查询指定列:select id,name from student; 查询时给列、表指定别名:使用as关键字select id as 编号,name as 姓名 from student;(as关键字可以省略) 给表起别名:select * from student s; 清除重复值查询,使用关键字distinct:select distinct address from student;(查询学生来自于哪些地方) 查询姓名、数学,将数学每个减10分:select name,math-10 from student; 判断是否为空串:=''、<>'' 判断是否为空:IS NULL,IS NOT NULL 查询address为空的学生:select * from student where address='';(不为空就在条件后面改就行) 查询address不为NULL的学生:select * from student address is null;(不为空就在条件后面改就行)
in 和 like关键字查询 查询id是1或3或5的学生:select * from student where id=1 || id=3 || id=5 或 select * from student where id in (1,3,5); 查询id不是1或3或5的学生:select * from student where id not in (1,3,5); 查询姓马的学生:select * from student where name like '马%'; 查询姓名中包含‘德’字的学生:select * from student where name like '%德%'; 查询姓马,且姓名有三个字的学生:select * from student where name like '马__';
排序查询(asc升序,默认值) 单列排序,查询所有数据,使用年龄降序排序:select * from student order by age desc; 组合排序,查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩降序排序:select * from student order by age desc,math desc;
聚合函数查询(5个) 查询学生总数:count(字段名) 忽略null的值:select count(english) from student 或 select count(*) from student; 查询数学成绩总分:sum(字段名):select sum(math) from student; 查询数学成绩平均分:avg:select avg(math) from student; 查询数学成绩最高分:max:select max(math) from student; 查询数学成绩最低分:max:select mix(math) from student;
分组查询(group by) 按性别分组,单独分组没有任何意义,分组为了统计:select * from student group by sex; 查询男女各多少人:select sex ,count(*) from student group by sex; 查询年龄大于25岁的人,按性别分组,统计每组的人数,并显示性别人数大于2的数据:select sex,count(*) from student where age>25 group by sex; 查询年龄大于25岁的人,按性别分组,统计每组的人数,并只显示性别人数大于2的数据:select sex,count(*) from student where age>25 group by sex having count(*)>2; 注意事项 1.分组后聚合函数操作额不再是行数据,而是组数据了。 2.对于分组后的条件需要使用having字句。 3.having语句后使用的字段名必须是出现在select语句中的 having与where区别 where:一行一行过滤数据:横向查询,不能在后面使用聚合函数(属纵向查询)。 having:用于分组之后过滤数据,可以使用聚合函数。
分页查询(limit) 查询学生表中数据,从第三条开始显示,显示6条:select * from student limit 2,6; 分页和排序同时使用:先排序再分页:select * from student order by age limit 10,5; 注意 如果第一个参数是0可以简写:select * from student limit 5; limit 10,5;不够五条,有多少显示多少。