1、聚合函数
(1)Avg 求平均数
Select avg(身高) from 学生表
(2)Count 计算个数
Select count(*) from 学生表
(3)Max 求最大数
Select Max(分数) from 学生表
(4)Min 求最小值
Select min(分数) from 学生表
(5)Sum 求和
Select sum(分数) from 学生表
例:
--查询身高高于平均身高的同学的所有信息
select * from 学生信息表 where 身高>all(select AVG(身高) from 学生信息表)
--二班同学比二班平均身高高的
select * from 学生信息表 where 班级='二班' and 身高>all
(select AVG(身高) from 学生信息表 where 班级='二班')
--按班级分组查分别有几人
select COUNT(*) as 人数,AVG(身高) as 平均身高,班级 from 学生信息表
group by 班级 having COUNT(*)>7
--每个班所有男同学和平均身高
select COUNT(*) as 人数,AVG(身高) as 平均身高,班级 from 学生信息表
where 性别='男' group by 班级
--每个班比这个班的平均身高高的同学信息
select * from 学生信息表 as a where 身高>
(select AVG(身高) from 学生信息表 as b where b.班级=a.班级)
2、数学函数
(1)ABS 取绝对值
(2)Ceiling 上限取整
(3)Floor 下限取整
(4)Pi( ) 圆周率
(5)Round 四舍五入
(6)Rand( ) 随机生成
(7)Sqrt 求平方根
(8)Square 求平方
例:
--身高开方取整,显示出等于14的学生的所有信息
select * from 学生信息表 where ceiling( sqrt(身高))=14
--身高开方取整,显示出等于14的学生的姓名、身高的信息
select 姓名,身高 from 学生信息表 where ceiling(SQRT(身高))=14
3、日期时间函数
年 year月month日day时 hour 分minutes 秒second毫秒millisecond
周week平常日weekday
(1)dateadd 添加一定的时间
Select dateadd ( year ,1,’1990-09-09’)
(2)Datediff 取时间差
Select datediff ( year ,’1880-09-09’,’1990-09-09’)
注意:datediff 中week与weekday相同,都是返回相差几周。
(3)Dataname 返回日期时间中的年月日时分秒,或者星期,第几周
Select datename ( year ,’1990-09-09’)
注意:datename 中week与weekday不相同,week是返回这天是这一年的第几周, weekday是返回这一天是星期几。
(4)Datepart 取指定段的整数,即返回日期时间中的年月日时分秒(一周第一天是星期日)
Select datepart (year , ‘1990-09-01’)
注意:datepart返回的是整数型,datename 返回的是字符型。
(5)Day 返回这是这个月的第几天
Select day (‘1990-09-01’)
(6)Getdate 返回数据库服务时间
Select getdate ( )
(7)Isdate 判断是不是一个正确的日期时间(是显示1,不是显示0)
Select isdate (‘1990-09-01’)
(8)Month 获取月份
Select month (‘1990-09-01’)
(9)Year 获取年份
Select year (‘1990-09-01’)
(10)Sysdatetime 获取系统时间
Select sysdatetime ()
例:
查询学生表中生日是1985年的学生的所有信息
Select * from 学生表 where year (生日)=1985
查询学生表学生的姓名和出生年份
Select 姓名, year(生日) from 学生表