Skip to content

SQL数据类型

在数据库中,表的每列都具有特定的数据类型。

数据类型指定列(字段)可以容纳的数据类型,例如字符串,数值和日期时间值。

精确数字数据类型

数据类型起始值结束值
bigint-9,223,372,036,854,775,8089,223,372,036,854,775,807
int-2,147,483,6482,147,483,647
smallint-32,76832,767
tinyint0255
bit01
decimal-10^38 +110^38 -1
numeric-10^38 +110^38 -1
money-922,337,203,685,477.5808+922,337,203,685,477.5807
smallmoney-214,748.3648+214,748.3647

近似数字数据类型

数据类型起始值结束值
float-1.79E + 3081.79E + 308
real-3.40E + 383.40E + 38

日期和时间数据类型

数据类型起始值结束值
datetime-1.79E + 3081.79E + 308
smalldatetimeJan 1, 1900Jun 6, 2079
date存储日期,如:1991年6月30日
time存储时间。如:下午12:30

TIP

这里的 datetime 的精度为 3.33 毫秒,而 smalldatetime 的精度为1分钟。

字符串数据类型

数据类型描述
char最大长度为 8,000 个字符,非 Unicode 字符固定长度。
varchar最多 8,000 个字符,非 Unicode 数据可变长度。
varchar(max)最大长度为 2E + 31 个字符,可变长度非 Unicode 数据(仅限 SQL Server 2005)。
textUnicode 数据的可变长度,最大长度为 2,147,483,647 个字符。

Unicode字符串数据类型

数据类型描述
nchar最大长度为 4,000 个字符,Unicode 字符固定长度。
nvarchar最大长度为 4,000 个字符,Unicode 字符可变长度。
nvarchar(max)最大长度为 2E + 31 个字符( 仅限SQL Server 2005),Unicode 字符可变长度。
ntext最大长度为 1,073,741,823 个字符,可变长度。

二进制数据类型

数据类型描述
binary最大长度为 8,000 字节,固定长度的二进制数据。
varbinary最大长度为 8,000 字节,可变长度二进制数据。
varbinary(max)最大长度为 2E + 31 个字节(仅限 SQL Server 2005),可变长度二进制数据。
image最大长度为 2,147,483,647 字节,可变长度二进制数据)

其它数据类型

数据类型描述
sql_variant存储各种 SQL Server 支持的数据类型的值,textntexttimestamp 类型除外
timestamp存储数据库范围的唯一编号,每次更新行时都会更新该编号
uniqueidentifier存储全局唯一标识符(GUID)
xml存储 XML 数据,可以将 xml 实例存储在列或变量中(仅限 SQL Server 2005 )
cursor引用游标对象
table存储结果集以供以后处理

SQL运算符

算术运算符

操作符描述
+
-
*
/
%取余

比较运算符

操作符描述
=等于
!=不等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
!<不小于
!>不大于

逻辑运算符

操作符描述
ALLALL 运算符用于将值与另一个值集中的所有值进行比较。
ANDAND 运算符允许在SQL语句的 WHERE 子句中指定多个条件。
ANYANY 运算符用于根据条件将值与列表中的任何适用值进行比较。
BETWEENBETWEEN 运算符用于搜索在给定最小值和最大值内的值。
EXISTSEXISTS 运算符用于搜索指定表中是否存在满足特定条件的行。
ININ 运算符用于将值与已指定的文字值列表进行比较。
LIKELIKE 运算符用于使用通配符运算符将值与类似值进行比较。
NOTNOT 运算符反转使用它的逻辑运算符的含义。 例如:NOT EXISTS, NOT BETWEEN, NOT IN 等等,这是一个否定运算符。
OROR 运算符用于组合 SQL 语句的 WHERE 子句中的多个条件。
IS NULLNULL 运算符用于将值与 NULL 值进行比较。
UNIQUEUNIQUE 运算符搜索指定表的每一行的唯一性(无重复项)。