1.查询所有列
SELECT * FROM 表名
SELECT * FROM student;
2.查询指定列
SELECT 列名1,列名2 FROM student;
SELECT id,NAME,gender FROM student;
3.别名(as)
列名 起 别名 当作 查询后的 表头
表名 起 别名 为了 简化书写(多表查询时)
SELECT id AS '编号',NAME AS '姓名' FROM student AS s;
4.常量列
SELECT id,NAME,gender,age,'2014' AS '年级' FROM student;
所有年级的列值都为 2014
5.合并列
SELECT id,NAME,(servlet+jsp) AS '总成绩' FROM student;
注意:只能合并 数值类型 的字段
6.去重(distinct)
SELECT DISTINCT 列名 FROM 表名;
SELECT DISTINCT gender FROM student;
另一种方式:
SELECT DISTINCT (列名) FROM 表名;
SELECT DISTINCT(gender) FROM student;
7.条件查询
(一)逻辑条件:and(与)、or(或)
(二)比较条件:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、=(等于)、<>(不等于)、between and
(三)判空条件:is null 、is not null 、 ='' 、 <>''
注意:null:表示没有值;空字符串'':有值;
(四)模糊条件:like
%:表示任意个字符
_:表示一个字符
SELECT * FROM student
WHERE NAME LIKE '李%';
SELECT * FROM student
WHERE NAME LIKE '李_';
李%:表示以 李 开头的所有字符串
%李:表示以 李 结尾的所有字符串
%李%:表示字符串中有 李 的所有字符串
8.聚合查询
常用的聚合函数:sum()、avg()、max()、min()、count()
count()函数统计的数量不包括null的数据
9.分页查询(limit)
limit 起始行,查询几行
注意:起始行从0开始
查询第1,2条记录(没有记录不显示)
SELECT * FROM student LIMIT 0,2;
分页:当前页 每页显示多少条
x y
LIMIT(x-1)*y,y
10.排序
语法:order by 字段 asc/desc
默认:asc
asc:顺序,正序。数值:递增,字母:自然顺序(a-z)
desc: 倒序 ,反序。数值:递减,字母:自然反序(z-a)
SELECT * FROM student
ORDER BY id ASC;
SELECT * FROM student
ORDER BY id DESC
多个排序条件
先按照 servlet 正序;如果相等,在按照 jsp 的倒序SELECT * FROM student ORDER BY servlet ASC,jsp DESC;
11.分组查询(group by)
1)把学生按照性别分组(group by gender)
2)统计每组的人数(COUNT(*))
SELECT gender,COUNT(*) FROM student
GROUP BY gender;
分组查询后筛选(having)
SELECT gender,COUNT(*) FROM student
GROUP BY gender
HAVING COUNT(*)>3;
注意:分组之前条件使用 where ,分组之后的条件使用 having