select子句后不仅可接列名,还可接计算表达式或聚集函数,表明在投影的同时直接进行一些运算。 一、结果计算 1. 语法形式: select 列名 | expr | agfunc(列名) [[, 列名 | expr | agfunc(列名)
select子句后不仅可接列名,还可接计算表达式或聚集函数,表明在投影的同时直接进行一些运算。
一、结果计算
1. 语法形式:select 列名 | expr | agfunc(列名) [[, 列名 | expr | agfunc(列名)] ... ] from 表名1 [, 表名2 ... ] [where 检索条件];
①expr:常量,列名,由常量、列名、特殊函数及算术运算符构成的算术运算式
②agfunc:聚集函数,如求平均、求和等
【示例1】求有差额(差额>0)的任意两位教师的薪水差额:
- select T1.Tname as TR1, T2.Tname as TR2, T1.Salary - T2.Salary from Teacher T1, Teacher T2 where T1.Salary > T2.Salary;
【示例2】依据学生年龄求学生的出生年份,当前是2019年:
- select S.S#, S.Sname, 2019 - S.Sage + 1 as Syear from Student S;
二、利用聚集函数进行统计计算
1. SQL提供了五个作用在简单列值集合上的内置聚集函数
聚集函数 功能描述 count (关于某列)求个数 sum (关于某列)求和 avg (关于某列)求平均 max (关于某列)求最大值 min (关于某列)求最小值
【示例1】求教师工资的总额:
- select sum(Salary) from Teacher;
【示例2】求计算机系教师工资的总额:
- select sum(Salary) from Teacher T, Dept where T.D# = Dept.D# and Dept.Dname = ‘计算机‘;
【示例3】求数据库课程的平均成绩:
- select avg(Score) from SC, Course C where SC.C# = C.C# and C.Cname = ‘数据库‘;