-- select 结果 from 表名 where 条件-- 条件-- =在where语句中表示是否相等 != < > >= <=SELECT*FROM student WHERE score >=70SELECT*FROM student WHERE score =98SELECT*FROM student WHERE score !=70SELECT*FROM student WHERE score >70-- 逻辑and or not-- and且 between andSELECT*FROM student WHERE score>=60AND score<=80SELECT*FROM student WHERE score BETWEEN60AND80-- or或者SELECT*FROM student WHERE score>=60OR score<=80-- not非SELECT*FROM student WHERENOT score<=80-- 模糊查询 like-- like '张%' % 表示匹配多个字符 一个下划线表示匹配一个字符SELECT*FROM student WHERE NAME LIKE'%三%'SELECT*FROM student WHERE NAME LIKE'张__'SELECT*FROM student WHERE NAME LIKE'张%'-- IN(1,3) 筛选满足1或者3的SELECT*FROM student WHERE grade=1OR grade=3SELECT*FROM student WHERE grade IN(1,3)-- NOT IN(1,3)筛选不是1或者3的SELECT*FROM student WHERE grade NOTIN(1,3)-- 查询电话为空的SELECT*FROM student WHERE phone ISNULL-- 查询电话不为空的SELECT*FROM student WHERE phone ISNOTNULL-- union all 的效率比union的效率高-- union 将多个查询结果合并,多个结果的列数必须相同,会去重SELECT num,NAME,sex FROM student WHERE sex ='男'UNIONSELECT num,NAME,sex FROM student WHERE score>60-- union all 直接将查询到的数据简单的连接,不会去重排序SELECT num,NAME,sex FROM student WHERE sex ='男'UNIONALLSELECT num,NAME,sex FROM student WHERE score>80
排序
-- order by 排序列 ASC/DESC-- asc代表的是升序,desc代表的是降序SELECT*FROM student ORDERBY num DESC-- 首先按score进行降序排列,有重复项时按num降序排列SELECT*FROM student ORDERBY score DESC, num DESC-- 男生成绩按降序排列SELECT*FROM student
WHERE sex='男'ORDERBY score DESC-- limit 数量限制-- 显示3个查询结果SELECT*FROM student LIMIT3;-- 查询结果 开始位置,数量SELECT*FROM student LIMIT0,2;#分页,第一页SELECT*FROM student LIMIT2,2;#分页,第二页SELECT*FROM student LIMIT4,2;#分页,第三页-- LIMIT 3 OFFSET 2 从第二个之后的三个查询结果SELECT*FROM student LIMIT3OFFSET2;-- 分组查询 GROUP BY-- 和分组函数一同查询的字段要求是group by 后的字段SELECT sex,COUNT(*)FROM student GROUPBY sex
-- 查询男生各年级人数-- 分组前数据过滤SELECT grade,COUNT(*)FROM student
WHERE sex='男'GROUPBY grade
-- 查询那个性别人数大于2-- 对分组后的数据进行条件过滤SELECT*FROM(SELECT sex,COUNT(*) c
FROM student
GROUPBY sex)t
WHERE t.c>2-- having 对分组后结果进行筛选SELECT sex,COUNT(*) c
FROM student
GROUPBY sex
HAVING c>2