单表查询是指仅涉及一个表的查询。

一、选择列

1. 查询指定的列

SELECT CN 
	FROM C
	WHERE CNO = '2'

2. 查询全部的列(*)

SELECT * FROM C

3. 修改查询结果中列的标题(AS)

SELECT CN AS 姓名
	FROM C
	WHERE CNO = '2'

4. 替换查询结果中的数据(CASE WHEN … THEN…)

SELECT CN, SEX =
	CASE 
		WHEN SEX='0' THEN '男'
		WHEN SEX='1' THEN '女’
	END
	FROM C
  1. 查询经过计算的结果(+、-、*、/、%)
SELECT BOOKNAME, PRICE*0.8
	FROM BOOK
二、选择行

1. 消除结果集中的重复行(DISTINCT)

SELECT DISTINCT 借书证号,ISBN
	FROM JY

2. 限制结果集的返回行数

(1)返回前10%行

SELECT TOP 10 PERCENT
	FROM JY

(2)返回前10行

SELECT TOP 10 *
	FROM JY

3. 返回满足条件的行(WHERE)

SELECT * 
	FROM C
	WHERE CT = '2'

以下为常用的查询条件:

MySQL查询结果字段单独设置编码格式 mysql查询表中指定数据_单表查询

4. 对查询结果进行排序(ODER BY)

SELECT * 
	FROM C
	WHERE CT = '02'
	ORDER BY CNO

5. 常用聚合函数

下表为常用的聚合函数:

MySQL查询结果字段单独设置编码格式 mysql查询表中指定数据_单表查询_02


(1)AVG和SUM函数

SELECT AVG(借书量) AS '平均借书量'
	FROM JY
SELECT SUM(库存量) AS '库存图书册数'
	FROM BOOK

(2)MAX和MIN函数

SELECT MAX(借书量) AS '借书量最多册数',MIN(借书量) AS '借书量最少册数'
	FROM JY
	WHERE 专业='计算机'

(3)COUNT ( { [ALL|DISTINCT] expression} | * )

SELECT COUNT(DISTINCT 借书证号) AS '借阅了图书的学生数'
	FROM JY
SELECT COUNT(*) AS '学生总数'
	FROM XS

6. 对查询结果进行分组(GROUP BY)

SELECT ISBN,COUNT(借书证号) AS '借阅人数'
	FROM JY
	GROUP BY ISBN

7. HAVING子句

SELECT 专业
	FROM XS
	WHERE 性别=0
	GROUP BY 专业
	HAVING COUNT(*) >= 2

注意:以下三者的作用以及执行顺序:
(1)WHERE用于筛选由FROM指定的数据对象
(2)GROUP BY 用于对WHERE的结果进行分组
(3)HAVING 则是对GROUP BY以后的分组数据进行过滤。