一个完整的数据查询语句的格式
SELECT [ALL | DISTINCT] <目标列表达式1>[,目标列表达式2>,…]
FROM<表名或视图名1>,[,<表名或视图名2>,…]
[WHERE <元组选择条件表达式>]
[GROUP BY <属性列名1>[,<属性列名2>,…][, HAVING<组选择条件表达式>]]
[ORDER BY <目标列名1> [ASC|DESC][,<目标列名2>[ASC|DESC},…]]
投影属性列
SELECT * FROM S
去除重复元组
SELECT DISTINCT SNO FROM S
常用函数——查询结果的计算
- COUNT(*)统计元组个数
*如:SELECT COUNT(DINSTINCT ) FROM S - COUNT([DISTINCT | ALL] <列名>)统计一列中值的个数
- SUM([DISTINCT | ALL] <列名>)计算一列值得总和
- AVG([DISTINCT | ALL] <列名>)计算一列值得平均值
- MAX([DISTINCT | ALL] <列名>)计算一列值得最大值
- MIN([DISTINCT | ALL] <列名>)计算一列值得最小值
- 如查询一个学术的年龄
SELECT SNO,datediff(Year,SB,Getdate())+1 FROM S;
目标列命名
SELECT SNO AS 学号 FROM S;
查询结果的排序
SELECT * FROM S ORDER BY CNO,GRADE DESC
(按CNO排序(默认升序),若CNO相同,按GRADE排降序