1.系统函数
函数名 | 描述 | 举例 |
convert() | 数据类型转换 | selece convert(varchar(5),12345) 返回:字符串12345 |
cast() | 数据类型转换,与convert相比其语法较简单,转换功能相对较少 | select cast(‘2018-12-4’ as datetime) 返回:字符串2018-12-4 00:00:00.000 |
current_user() | 返回当前登陆的数据库用户名 | select current_user 返回:当前登陆的数据库用户名 |
datalength() | 返回用于指定表达式的字节数 | select datalength(‘中国 a 杭州’) 返回:9 注:一个中文代表2个字节 |
host_name() | 返回当前用户所登陆的计算机名称 | select host_name() 返回:当前登陆的计算机名 |
system_user() | 返回当前登陆的系统用户名 | select system_user 返回:当前登陆的系统用户名 |
user_name() | 从给定的用户ID中返回数据库用户名 | select user_name(1) 返回:从任意数据库中返回"dbo" |
2.字符串函数
函数名 | 描述 | 举例 |
charindex() | 用来寻找一个指定的字符串在另一个字符串中的起始位置 | select charindex(‘baidu’,‘www.baidu.www’,1) 返回:5 |
len() | 返回传递给它的字符串长度 | select len(‘SQL server 函数’) 返回:12 |
upper() | 把传递给它的字符串转换为大写 | select upper(‘SQL server 数据库’) 返回:SQL SERVER 数据库 |
right() | 从字符串右边返回指定数目的字符 | select right(‘ABCDEFG’,3) 返回:EFG |
replace() | 替换一个字符串中的字符 | select replace(‘ABABAB’,‘B’,‘A’) 返回:AAAAAA |
stuff() | 在一个字符串中,删除指定位置指定长度的字符串,并在该位置插入一个新的字符串 | select stuff(‘ABCDEFG’,2,3,‘我的’) 返回:A我的EFG |
3.日期函数
函数名 | 描述 | 举例 |
getdate() | 取得当前的系统日期 | select getdate() 返回:当前日期和时间 |
dateadd() | 添加指定的年(YY)、月(MM)、日(DD) | select dateadd(MM,4,‘2018-12-4’) 返回:2018-12-4 |
dateiff() | 比较两个日期之间的指定日期部分的差 | select dateiff(YY,‘2000-12-12’,‘2018-12-12’) 返回:17 |
datename() | 显式指定日期中特定部分的字符串 | select datename(DW,‘2017-06-16’) 返回:星期五 |
datepart() | 显示日期中指定部分的整数形式 | select datepart(month,‘2017-06-16’) 返回:6 |
4.数学函数
函数名 | 描述 | 举例 |
abs() | 取数值表达式的绝对值 | select abs(-43) 返回:43 |
ceiling() | 取大于或等于指定数值、表达式的最小整数 | select ceiling(43.5) 返回:44 |
floor() | 取小于或等于指定表达式的最大整数 | select floor(43.5) 返回:43 |
power() | 取数值表达式的幂值 | select power(5,2) 返回:25 |
round() | 将数值表达式四舍五入为指定精度 | select round(43.543,1) 返回:43.500 |
要求显示表中所有运维工程师的姓名和基本工资:使用字符串拼接
执行命令如下:
select '运维工程师'+姓名+的基本工资是:'+cast(基本工资 as varchar(10))+'元'
from 表名
where 职务='运维工程师'
结果为:
运维工程师 杨过 的基本工资是:9000:00元
运维工程师 郭靖 的基本工资是:8000:00元
聚合函数
常用的聚合函数有
函数 | 解释 |
SUM() | 总和 |
AVG () | 平均值 |
MAX () | 最高值 |
MIN () | 最低值 |
COUNT() | 统计字符 |
聚合举例:
❶查询表中所有员工基本工资总和⇓(SUM)select sum(基本工资) as 总工资 from 表名
➋查询表中所用员工的平均基本工资⇓(AVG)select avg(基本工资) as 平均工资 from 表名
➌查询表中最高和最低的基本工资⇓(MAX、MIN)select max(基本工资) as 最高工资,min(基本工资) as 最低工资 from 表名
➍查询表中全部行数⇓(COUNT)select count(*) as 总行数 from 表名
➎查询表中90后员工人数⇓(COUNT)select count(出生日期) as '90后人数'from 表名 where 出生日期>='1990-01-01
分组查询:
➊查询表中每个职务的平均工资⇓(AVG)select 职务,avg(基本工资) as 职务平均工资 from 表名 group by 职务