单表查询

1、使用SELECT语句查询所有字段和指点的字段
2、按条件查询,并使用运算符及不同的关键字进行查询
3、高级查询,使用聚合函数查询,分组查询等
4、对表和字段起别名

一、简单查询
1、SELECT语句
单表查询
2、查询所有字段
(1)在SELECT语句中指定所有字段
(2)在SELECT语句中使用()号通配符代替所有字段
SELECT * FROM 表名
3、查询指定字段
SELECT 部分字段 FROM 表名 单表查询
二、按条件查询
1、带关系运算符的查询(>,<,<>,!=,<=,>=,=)
SELECT 字段1,字段2,…
FROM 表名
WHERE 条件表达式
单表查询
2、带IN关键字查询
IN关键字用于判断某字段的值是否在指定集合中,若字段值在集合中,则满足条件,该字段所在的记录将被查询出来
SELECT * | 字段1,字段2,…
FROM 表名
WHERE 字段名 【NOT】IN (元素1,元素2,元素3,。。。。)
元素1,元素2,元素3,。。。。表示集合中的元素,即指定的条件范围。
单表查询
3、带BETWEEN AND关键字的查询
SELECT * | {字段1,字段2,…}
FROM 表名
WHERE 字段名 【NOT】BETWEEN 值1 AND 值2
单表查询
4、空值查询
在数据表中,某些列的值可能是空值(NULL),空值不同于0,也不是空字符。使用IS NULL判断字段的值是否为空值,
SELECT * | 字段1,字段2,…
FROM 表名
WHERE 字段名 IS 【NOT】NULL
单表查询
5、带DISTINCT关键字的查询
很多表中某些字段的数据存在重复的值,例如,student字段gender,使用SELECT语句查询gender字段,
单表查询
处于对数据的分析,需要过滤掉查询记录重复的值,在SELECT语句可以使用DISTINCT关键字来实现这种功能
SELECT DISTINCT 字段名 FROM 表名
字段名表示要过滤重复记录的字段
单表查询
使用DISTINCT作用于多个字段,此时,只有多个字段的值同时相同才被认为是不同的
SELECT DISTINCT 字段名1,字段名2,。。。
FROM 表名 单表查询
6、带LIKE关键字的查询
由于对字符串需要进行模糊查询,例如查询student表中的name字段中以字符’b’开头的记录,使用LIKE关键字,可以判断两个字符创是否匹配,使用LIKE关键字的SELECT语句如下:
SELECT * | {字段1,字段2,…}
FROM 表名
WHERE 字段名 【NOT】LIKE ‘匹配字符串’
其中匹配字符串包含(%和_)
(1)%通配符
匹配任意长度的字符串,包括空字符串。例如字符串“c%”匹配的以字符c开始,任意长度的字符串。“ct”,“chidsfo”.
单表查询
单表查询
查询name字段中包含字符“y”的学生id。%y%无论y在什么位置
单表查询
单表查询
(2)下划线()通配符
下划线值匹配单个字符,如要匹配多个字符,需要多个下划线通配符。例“cu
“匹配字符以字符串“cu”开头的三个字符串如“cut”,“cup”.若使用多个下划线匹配多个连续的字符,下划线之间不能有空格,“M_ _QL”,只能匹配“MY SQL”,不能匹配“MYSQL”
单表查询
单表查询
7、带AND关键字的多条件查询
SELECT * | {字段1,字段2,…}
FROM 表名
WHERE 条件表达式1 AND 条件表达式2[…AND条件表达式N]
单表查询
单表查询
8、带OR关键字的多条件查询
SELECT * | {字段1,字段2,…}
FROM 表名
WHERE 条件表达式1 OR 条件表达式2[… OR条件表达式N]
单表查询
单表查询
单表查询
三、高级查询
1、聚合函数
实际中对数据进行统计,例如某个字段的最大值、最小值和平均值。聚合函数包括:
COUNT()返回某一列的行数,
SELECT COUNT(
) FROM 表名,统计记录的条数
SUM()返回某列值的和
SELECT SUM(字段名) FROM 表名, 某个字段所有值的总和
单表查询
AVG()返回某列的平均值
SELECT AVG(字段名) FROM 表名, 某个字段所有值的平均值
单表查询
MAX()返回某列的最大值
SELECT MAX(字段名) FROM 表名, 某个字段所有值的最大值
单表查询
MIN()返回某列的最小值
SELECT MIN(字段名) FROM 表名, 某个字段所有值的最小值

2、对查询结果排序
使用ORDER BY 对查询结果进行排序
SELECT 字段名1,字段名2,。。。。
FROM 表名
ORDER BY 字段名1【ASC|DESC】, 字段名2【ASC|DESC】,。。。
上述字段名1,字段名2 是对查询结果排序的依据。默认情况是升序ASC
单表查询
单表查询
两个字段,gender按照升序,grade按照降序排
当按照指定字段进行升序排列时,如果某条记录的字段值为NULL,则这条记录会在第一条显示,因为NULL值可以被认为是最小值。
单表查询

3、分组查询
对表中的数据进行统计,按照类别进行,例如,对student表中的gender字段值为“男”,“女”和“NULL”的学生成绩(grade)之和,使用GROUP BY按照某个字段或者多个字段的值进行分组,字段中的值相同为一组
SELECT 字段名1,字段名2,…
FROM 表名
GROUP BY 字段名1,字段名2,…【HAVING 条件表达式】
(1)单独使用GROUP BY分组
查询的是每个分组中的一条记录
单表查询
(2)GROUP BY和聚合函数一起使用
GROUP BY和聚合函数一起使用,可以统计某一个或者某些字段在一个分组中的最大值,最小值和平均值,
单表查询
计算出每个分组各有多少名学生。
(3) GROUP BY和HAVING关键字一起使用
HAVING关键字和WHERE关键字的作用相同,都用于设置条件表达式对查询结果进行过滤。区别是HAVING关键字后面可以跟聚合函数,而WHERE关键字不能。 GROUP BY和HAVING关键字一起使用,用于对分组后的结果进行过滤。
单表查询
单表查询
4、使用LIMIT限制查询结果的数量
查询结果可能返回多条记录,用户需要的记录可能只是其中的一条或者几条。比如实现分页功能,每页显示10条信息。使用关键字LIMIT可以指定查询结果从那一条记录开始以及一共查询多少条信息。
SELECT 字段名1,字段名2,。。。
FROM 表名
LIMIT [OFFSET,]记录数
上述LIMIT后面两个参数,第一个表示偏移量,为0表示查询结果从第一个记录开始。记录数: 返回查询的记录条数。
单表查询
查询表中grade字段从第5—第8位的学生。
单表查询
单表查询
验证
单表查询
5、函数(列表)
单表查询

四、为表和字段取别名
1、为表取别名
SELECT * FROM 表名 【AS】别名
单表查询
2、为字段取别名
SELECT 字段名1【AS】别名1[, 字段名2【AS】别名2…] FROM 表名