判断字段值是否在指定区间��
1、 查询年龄在18-22之间的学生(班级、姓名、年龄和性别) SELECT class,name,age,sex FROM student WHERE age BETWEEN 18 AND 22; 2、 当然,反过来查的话,查询18-22岁以外的学生 SELECT class,name,age,sex FROM student WHERE NOT age BETWEEN 18 AND 22; 比较运算符 运算符含义= 等于,判断字段名的值是否等于指定值
<>、!= 不等于
<= 小于或等于
>= 大于或等于
< 小于
> 大于
1、查询小于等于19岁的学生 SELECT * FROM student WHERE age<=18; IN运算符(多条件值查询)
IN 运算符 允许在 WHERE 子句中规定多个值。
1、查询304,305和306班级的学生信息 select name,class,age from student where class IN (304,305,306) 2、查询学号为 1、3、5的学生信息 SELECT * FROM student WHERE id IN(1,3,5); 模糊查询LIKE 运算符 允许我们针对只知道部分字符串的情况下,查找所有的字符串,进行模糊查找
% 匹配任意多个字符 陈%
_ 匹配任意一个字符 陈__
AVG 返回指定列的平均值
COUNT 返回指定列中非NULL值的个数
MIN 返回指定列的最小值
MAX 返回指定列的最大值
SUM 返回指定列的所有值之和
聚合运算都是写在select 后面
SELECT COUNT("字段") FROM 表名 WHERE 条件;
1、查询305班所有的学生数量 select COUNT(id) from student where class=305; # 上面查询结果中,字段会变成COUNT('id'),可以使用as别名来处理一下。 select COUNT(id) as c from student where class=305; 2、查询所有学生中最小的年龄 SELECT MIN(age) FROM student; 3、查询302班中所有学生的平均年龄。 select AVG(age) from student where class=302; 分组查询GROUP BY子句, 可以对表进行分组,常常与聚合函数一起使用
GROUP BY 字段名,当前这个字段名在表中出现多少个不同的字段值,那么查询结果就会有多少个组。
1、查询表中有多少男女学生 SELECT sex,count(sex) FROM student GROUP BY sex; 2、查询学生表中各个年龄段的学生数量 SELECT age,COUNT(name) FROM student GROUP BY age; 3、查询各个班级的人数各是多少 select class,COUNT(id) FROM student GROUP BY class; 结果排序ORDER BY 子句,对查询结果排序
ASC表示升序(从小到大),为默认值,
DESC为降序(从大到小)
1、对309班级的学生的年龄进行倒叙排序 select name,age,sex from student where class=309 order by age desc;补充:
结果排序可以多个字段排序
例如:对学生的年龄进行降序排列。
select id,name,sex from student order by age desc,id asc limit 10; # 上面就有2个排序的字段, # 系统会优先针对 age 进行降序排列, # 当age的值一致的时候,系统会按照id进行升序排列。 结果限制LIMIT 子句,可以对查询出的结果进行数量限制,往往我们不想一次取出所有的数据
limit有两个使用方式: