周末休息之余,看了一下基础书籍,并尝试这将所见所得进行总结起来的笔记,以便后期自己的查阅学习及分享给需要的人。

聚合函数

  聚合函数 可对一组值进行计算并返回单一的值,并返回单个值,除了 COUNT 函数以外,聚合函数都会忽略控制。

函数名称

描述

Demo

SUM

返回表达式中所有值的和,求和。

求所有人的年龄之和:

SELECT SUM(Age) AS 合计 FROM tableName

AVG

计算平均数。

求所有人的平均年龄:

SELECT AVG(Age) AS 平均年龄 FROM tableName

MIN

返回表达式中的最小值。

求最小的年龄:

SELECT MIN(Age) AS 最小年龄 FROM tableName

MAX

返回表达式中的最大值。

求最大的年龄:

SELECT MAX(Age) AS 最大年龄 FROM tableName

COUNT

返回组中项目的数量。

求数据表中的总记录数:

SELECT COUNT(*) AS 总人数 FROM tableName

DISTINCT

返回一个集合,并从指定集合中删除重复的元组。

查询出所有人的姓名并去除重复项:

SELECT DISTINCT(StuName) FROM tableName

HAVING

查询重复数据

查询数据表中重复的数据:

SELECT StuName,COUNT(StuName) AS 重复数 FROM tableName GROUP BY StuName HAVING COUNT(StuName)>1

数学函数

  数学函数 可以对数据类型为整型(integer)、实型(real)、浮点型(float)、货币型(money)和 smallmoney 的列进行操作。它的返回值时 6 位小数,如果使用出错,则返回 NULL 值并显示提示信息,通常该函数可以用在 SQL 语句的表达式中。

函数名称

描述

Demo

PI

返回值为圆周率。

打印出圆周率:SELECT PI()

COS

返回指定的表达式中指定弧度的余弦值。

求0.5弧度的余弦值:SELECT COS(0.5)

COT

返回指定的表达式中指定弧度的余切值。

求0.5弧度的余切值:SELECT COT(0.5)

TAN

返回指定表达式中指定弧度的正切值。

求0.5弧度的正切值:SELECT TAN(0.5)

SIN

返回指定的表达式中指定弧度的正弦值。

求0.5弧度的正弦值:SELECT SIN(0.5)

ABS

返回指定数字表达式的绝对值。

-2.5 的绝对值:SELECT ABS(-2.5)

ROUND

将数字表达式四舍五入为指定的长度或精度。

保留3位有效数字进行四舍五入:SELECT ROUND(123.9994,3)

SIGN

返回指定表达式的零(0)、正号(+1)或负号(-1)。

获取-9的符号:SELECT SIGN(-9)

POWER

将指定的表达式乘指定次方。

求2的3次方:SELECT POWER(2,3)

RAND

返回0~1的随机 float 数。

生成一个随机小数:SELECT RAND()

SQUARE

返回指定表达式的平方。

求3的平方:SELECT SQUARE(3)

SQRT

返回指定表达式的平方根。

求9的平方根:SELECT SQRT(9)

字符串函数

  字符串函数作用于对 char、varchar、binary 和 varbinary 数据类型以及可以隐式转换为 char 和 varchar 的数据类型。

函数名称

描述

Demo

ASCII

返回字符表达式最左端字符的 ASCII1

PRINT ASCII('a23') 将会打印出 a 的 ASCII 码值

CHARINDEX

返回字符串中指定表达式的起始位置

PRINT CHARINDEX('8','51786') 打印出 4

LEFT

从左边开始,取得字符串左边指定个数指定个数的字符

PRINT LEFT('helloworld',3) 打印出 hel

RIGHT

从游标开始,取得字符串右边指定个数的字符

PRINT RIGHT('helloworld',3) 打印出 rld

LEN

返回指定字符串的字符(而不是字节)个数

PRINT LEN('helloworld') 打印出 10

REPLACE

将指定的字符串替换为另一个指定的字符串

PRINT REPLACE('helloworld','world','sqlserver') 打印出 hellosqlserver,即将 helloworld 中的 world 替换为 sqlserver

REVERSE

返回字符表达式的反转

PRINT REVERSE('helloworld') 打印出 dlrowolleh

STR

返回由数字数据转换来的字符数据

PRINT STR(3.1415926) 打印出 10 位长度的数字 3;

PRINT STR(3.1415926,8) 打印出 8 位长度的数字 3;

PRINT STR(3.1415926,8,2) 打印出 8 位数字长度,且保留两位小数的数字 3.14

SUBSTRING

返回指定个数的字符

PRINT SUBSTRING('helloworld',2,6) 打印出 ellowo

日期、时间函数

  日期和时间函数主要用来操作 datetime 、smalldatetime 类型的数据。

函数名称

描述

Demo

DATEADD

在向指定日期上加上一段时间的基础上,返回新的 datetime 值

PRINT DATEADD(MONTH,1,GETDATE()) 当前月份加上一个月,并返回日期时间,打印出 09 22 2021 11:08PM

DATEDIFF

返回跨两个指定日期的日期和时间边界数

PRINT DATEDIFF(MONTH,'2020-10-5','2021-8-22') 返回两个日期之间相差多少月份,打印出 10

GETDATE

返回当前系统日期和时间

PRINT GETDATE() 打印出 08 22 2021 4:27PM

DAY

返回指定日期中的天的整数

PRINT DAY(GETDATE()) 打印出 22

MONTH

返回指定日期中的月份的整数

PRINT MONTH(GETDATE()) 打印出 8

YEAR

返回指定日期中的年份的整数

PRINT YEAR(GETDATE()) 打印出 2021

  一下展示日期部分和缩写对照表:

日期部分

缩写

描述

日期部分

缩写

描述

YEAR

yy,yyyy

年份

WEEK

wk,ww

星期

QUARTER

qq,q

季度

HOUR

hh

小时

MONTH

mm,m

月份

MINUTE

mi,n

分钟

DAYOFYEAR

dy,y

一年中的一天

SECOND

ss,s


DAY

dd,d


MILLISECOND

ms

毫秒

参考文献

[1] 明日科技.SQL Server 从入门到精通(第 3 版).北京:北京大学出版社,2020


  1. ASCII 共有 127 个,其中 Microsoft Windows 不支持 1 ~ 7、11 ~ 12 和 14 ~ 31的字符。值 8、9、10 和 13 分别为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会以不同的应用程序对文本显示不同的影响。 ↩︎