SQL Server函数速查

来源:互联网 发布:i never 游戏 知乎 编辑:程序博客网 时间:2024/05/22 11:33

1.1算数运算符

算数运算符

操作数的类型

+-*/

Int,smallint,tinyint,numeric,decimal,float,real,money,smallmoney

%

Int,smallint,tinyint

1.2位运算符

位运算符

左操作数

右操作数

&()

Binary,varbinary

Int,smallint,tinyint

|()

Int,smallint,tinyint

Int,smallint,tinyint,binary

^ (异或)

Int

Int,smallint,tinyint,bit

~ ()

Int,smallint,tinyint,bit

1.3比较运算符(>,<,>=,<=,!=

1.4连接运算符(+

1.5优先级

 

2.1 TRETURN语句返回的内定值

返回值

含义

0

程序执行成功

-1

找不到对象

-2

数据类型错误

-3

死锁

-4

违反权限原则

-5

【语法】错误

-6

用户造成的一般错误

-7

资源错误,如磁盘空间不足

-8

非致命的内部错误

-9

已达到系统的极限

-10,-11

致命的内部不一致性错误

-12

表或指针破坏

-13

数据库破坏

-14

硬件错误

 

3  SQL的内建函数

3.1系统函数

APP_NAME

【语法】:APP_NAME()

【功能】:返回当前执行的应用程序名称

COALESCE()

【语法】:COALESCE(<表达式1>[,…表达式n])

【功能】:返回众多表达式中第一个非[NULL]表达式的值。

COL_LENGTH()

【语法】:COL_LENGTH(<'表名'>,<'字段名'>)

【功能】:返回表中指定字段的长度值,int类型。

COL_NAME()

【语法】:COL_NAME(<TABLE_ID>,<COLUMN_ID>)

【功能】:返回表中指定字段的名称,即列名,

DATALENGTH()

【语法】:DATALENGTH(<表达式>)

【功能】:返回数据表达式的数据的实际长度。

DB_ID()

【语法】:DB_ID(['数据库名'])

【功能】:返回数据库的编号,类型为smallint

DB_NAME()

【语法】:DB_NAME(database_id)

【功能】:返回数据库的名称

HOST_ID()

【语法】:HOST_ID()

【功能】:返回服务器端计算机的标识号,类型为nchar

HOST_NAME()

【语法】:HOST_NAME()

【功能】:返回服务器端计算机的名称,类型为char(8)

IDENTITY()

【语法】:IDENTITY(<data_type>[,seed,increment])  [AS column_name]

【功能】:只在【select …into】语句中使用,用于插入一个【identity column】列到新表中,其返回类型与【data_type】类型相同。

ISDATE()

【语法】:ISDATE(<表达式>)

【功能】:确定输入的是否是有效日期,如果是返回1,否则返回0

ISNULL()

【语法】:ISNULL(<check_expression>,<replacement_value>)

【功能】:将表达式中的【NULL】值,用指定值替换。如果【check_expression】不是【NULL】,则返回原来的值,否则返回【replacement_value】的值。

check_expression】和【replacement_value】的数据类型要求一致。

ISNUMERIC()

【语法】:ISNUMERIC(<表达式>)

【功能】:判断所给定的表达式,是否为合理的integer,float,number,money,decimal数值类型,是返回1,否则返回0

NULLIF()

【语法】:NULLIF(<表达式1>,<表达式2>)

【功能】:在【表达式1】与【表达式2】相等时,返回【NULL】,否则返回【表达式1】的值。

USER_ID()

【语法】:USER_ID([‘user_name’])

【功能】:根据用户的数据库的用户名,返回用户的数据库ID号,其类型为int

                   如果没有指定【用户名】,返回id

USER_NAME()

【语法】:USER_NAME([user_id])

【功能】:根据用户的数据库ID号,返回用户的数据库用户名,其类型为nchar

                   如果没有指定【user_id】,返回用户名。

SUSER_SID()

【语法】:SUSER_SID([‘login_name’])

【功能】:根据用户登录名,返回用户的SIDSecurity Identification Number 安全账户号),类型为int,若不指定【login_name】返回当前用户的SID

SUSER_SNAME()

【语法】:SUSER_SNAME(server_user_sid)

【功能】:根据SID号,返回登录名。若没指定【server_user_sid】,则返回当前用户的登录名,类型为nchar

 

3.2  日期函数

3.2.1   DAY()

【语法】:DAY(<日期表达式>)

【功能】:返回日期表达式的日期值。

MONTH()

【语法】:MONTH(<月份表达式>)

【功能】:返回月份值。

YEAR()

【语法】:YEAR(<年份表达式>)

【功能】:返回年份值

DATEADD()

【语法】:DATEADD(<datepart>,<number>,<date>)

【功能】:返回指定日期【date】,加上指定的额外日期间隔【number】产生的新日期。

datepart

缩写

取值范围

year

yy,yyyy

1753~9999

puarter

qq,q

1~4

month

mm,m

1~12

dayofyear

dy,y

1~366

day

dd,d

1~31

week

wk,ww

1~54

weekday

dw

1~7

hour

hh

0~23

minute

min

0~59

second

Ss,s

0~59

millisecond

ms

0~999

DATEDIFF()

【语法】:DATEDIFF(<datepart>,<date1>,<date2>)

【功能】:返回指定两个日期中第二个与第一个日期之间各日期部分相差的时间量,可正可负。

DATENAME()

【语法】:DATENAME(<datepart>,<date>)

【功能】:以字符串的形式,返回【datepart】指定的日期。

DATEPART()

【语法】:DATEPART(<datepart>,<date>)

【功能】以数值的形式,返回由【datepart】指定的部分日期。


DATEPART(dd,date)óDAY(date)

DATEPART(mm,date)óMONTH(date)

DATEPART(yy,date)óYEAR(date)


GETDATE()

【语法】:GETDATE()

【功能】以DATETIME的缺省格式,返回系统当前的日期和时间。

常作为其他函数或命令的参数使用。

 

3.3  算数函数

函数

参数

功能

三角函数

SIN

(float_expression)

返回以弧度表示的角的正弦值

COS

(float_expression)

返回以弧度表示的角的余弦值

TAN

(float_expression)

返回以弧度表示的角的正切值

COT

(float_expression)

返回以弧度表示的角的余切值

反三角函数

ASIN

(float_expression)

返回正弦是float值的以弧度表示的角。

ACOS

(float_expression)

返回余弦是float值的以弧度表示的角。

ATAN

(float_expression)

返回正切是float值的以弧度表示的角。

ATAN2

(float_expression1float_expression2)

返回正切是(float_expression1/float_expression2)的以弧度表示的角。

角度弧度转换函数

DEGREES

(numeric_expression)

把弧度转换为角度返回与表达式相同的数据类型。可为INTEGERMONEYREALFLOAT类型。

RADIANS

(numeric_expression)

把角度转换为弧度返回与表达式相同的数据类型。可为INTEGERMONEYREALFLOAT类型。

幂函数

EXP

(float_expression)

返回指数值。

LOG

(float_expression)

自然对数值。

LOG10

(float_expression)

10为底的对数值。

SQRT

(float_expression)

平方根。

POWER

(float_expression1float_expression2)

返回(float_expression1)(float_expression2)次方值。

取近似值的函数

CEILING

(numeric_expression)

返回>=表达式的最小整数,返回的数据类型与表达式相同。可为integer,money,real,float类型。

FLOOR

(numeric_expression)

返回<=表达式的最大整数,返回的数据类型与表达式相同。可为integer,money,real,float类型。

ROUND

(numeric_expressioninteger_expression)

返回以(integer_expression)为精度的四舍五入值,返回的数据类型与表达式相同。可为integer,money,real,float类型。

符号函数

ABS

(numeric_expression)

返回绝对值,返回的数据类型与表达式相同。可为integer,money,real,float类型。

SIGN

(numeric_expression)

测试参数的正负号,返回0(0)1(正数)-1(负数),返回的数据类型与表达式相同。可为integer,money,real,float类型。

其他函数

PI

 

返回值为π,即 3.1415926535897931

RAND

([integer_expression])

返回01之间的任意随机浮点数。

3.4  数据类型转换函数

3.4.1  CAST()

【语法】:CAST(<expression> AS <data_type>[(lenght)])

【功能】:将【expression】表达式的结束值数据类型,显式地转换为【data_type】数据类型。

3.4.2  CONVERT()

【语法】:CONVERT(<data_type>[(Length)],<expression>[,style])

【功能】:

将某种数据类型的表达式显式转换为另一种数据类型。

参数【data_type】的数据类型,包括bigintsql_variant。不能使用自定义的类型。

参数【length】可以是nchar,nvarchar,char,varchar,binaryvarbinary数据类型的可选参数。

参数【style】为日期格式,借以将datetimesmalldatetime数据转换为字符数据ncharnvarcharcharvarcha数据类型;或者字符串格式样式,借以将【float】,【real】,【money】或【smallmoney】数据转换为字符数据nchar,nvarchar,charvarcha数据类型数据。

style1

style2

标准

输出格式

 

0100

默认

缺省mon dd yyyy hh:mi Am/Pm

1

101

USA

mm/dd/yy

2

102

ANSI

yy.mm.dd

3

103

UK/French

dd/mm/yy

4

104

German

dd.mm.yy

5

105

Italian

dd-mm-yy

6

106

 

dd mon yy

7

107

 

mon dd yy

8

108

 

hh:mi:ss

9

109

 

mon dd yy hh:mi:sss Am/Pm

10

110

USA

mm=dd-yy

11

111

Japan

yy/mm/dd

12

112

ISO

yymmdd

13

113

Europe

dd mon yyyy hh:mi:ss:mmm 24h

14

114

 

hh:mi:ss:mmm 24h

20

 

ODBC1

yyyy-mm-dd hh:mi:ss:mmm 24h

21

 

ODBC2

yyyy-mm-dd hh:mi:ss:mmm 24h

 

 

字符串函数

ASCII()

【语法】:ASCII(<字符表达式>)

【功能】:返回表达式最左端字符的ASCII码值。

CHAR()

【语法】:CHAR(<整数表达式>)

【功能】:将ASCII码转换为字符。非0255,返回NULL

LOWER()

【语法】:LOWER(<字符表达式>)

【功能】:转换为小写字符。

UPPER()

【语法】:UPPER(<字符表达式>)

【功能】:转换为大写字符。

STR()

【语法】:STR(<数值型表达式>[,长度[,<小数位数>]]

【功能】:数值型转换为字符型。

LTRIM()

【语法】:LTRIM(<字符表达式>)

【功能】:把字符串头部的空格去掉。

RTRIM()

【语法】:RTRIM(<字符表达式>)

【功能】:把字符串尾部的空格去掉。

RIGHT()

【语法】:RIGHT(<字符表达式>,<子串长度n>)

【功能】:RIGHT()函数返回部分字符串,该字串是从字符串右边第【n】个字符的部分,若【n】为负值,出错。

LEFT()

【语法】:LEFT(<字符表达式>,<子串长度n>)

【功能】:LEFT()函数返回部分字符串,该字串是从字符串最左边起,到第【n】个字符起到最后一个字符的部分,若【n】为负值,出错。

SUBSTRING()

【语法】:SUBSTRING(<字符表达式>,<开始位置s>,<长度n>)

【功能】:返回部分字符串,该字串从左边第s个起n个字符的部分,表达式可以是字符串,二进制串,含字段名的表达式。

SUBSTRING()不能用于textimage数据类型。

 CHARINDEX()

【语法】:CHARINDEX(<’substring_expression’>,<expression>)

【功能】:返回字符串中某个指定子串出现的开始位置。若无返0

PATINDEX()

【语法】:PATINDEX(<’%substring_expression%’>,<string_expression>)

【功能】:返回【string_expression】中,某个指定【substring_expression】出现的开始位置。

【注意】:【substring_expression】子串前后必须有%,否则返回0

QUOTENAME()

【语法】:QUOTENAME(<’字符表达式’>[,quote_character])

【功能】:返回被特定字符括起来的字符串。如【[】【】【(】【】等,缺省为【[]】。

REPLICATE()

【语法】:REPLICATE(<字符表达式>,<整数表达式n>)

【功能】:返回一个重复【n】次的字符串。

REVERSE()

【语法】:REVERSE(<字符表达式>)

【功能】:将指定的字符串的字符排列顺序颠倒。

REPLACE()

【语法】:REPLACE(<字符表达式1>,<字符表达式2>,<字符表达式3>)

【功能】:

返回被替换了指定子串的字符串。

3】替换在【1】中的子串【2】。

SPACE()

【语法】:SPACE(<整数表达式>)

【功能】:返回指定长度的空白字符。

STUFF()

【语法】:STUFF(<字符表达式1>,<开始位置s>,<长度n>,<字符表达式2>)

【功能】:

删除指定长度的字符并在指定的起始点插入另一组字符。

如果【开始位置s】为负,或【长度n】为负,或【开始位置s>【字符表达式1】的长度,则返回NULL值。

若【长度n】的值>【字符表达式1】的长度,则最多删除到最后一个,【字符表达式2】加到最后。

4  约束

各类约束的功能

约束类型

    

        

PRIMARY KEY

保证主码的实体完整性

主码的值不能有重复性,并且不能为NULL

使用时往往在其上建立索引,以提高数据库的性能。

UNIQUE

保证非主码的实体完整性

非主码(即非主关键字)的值不能有重复性

FOREIGN KEY

保证参照完整性

一个表中的值,必须参照另一个表中的主码值

CHECK

域完整性

字段可以取值的范围

DEFAULT

域完整性

为字段赋特定的值