单表查询是指仅涉及一个表的查询。
一、选择列
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
- 查询经过计算的结果(+、-、*、/、%)
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'
以下为常用的查询条件:
4. 对查询结果进行排序(ODER BY)
SELECT *
FROM C
WHERE CT = '02'
ORDER BY CNO
5. 常用聚合函数
下表为常用的聚合函数:
(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以后的分组数据进行过滤。