SQL数据类型
在数据库中,表的每列都具有特定的数据类型。
数据类型指定列(字段)可以容纳的数据类型,例如字符串,数值和日期时间值。
精确数字数据类型
数据类型 | 起始值 | 结束值 |
---|---|---|
bigint | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
int | -2,147,483,648 | 2,147,483,647 |
smallint | -32,768 | 32,767 |
tinyint | 0 | 255 |
bit | 0 | 1 |
decimal | -10^38 +1 | 10^38 -1 |
numeric | -10^38 +1 | 10^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 + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
日期和时间数据类型
数据类型 | 起始值 | 结束值 |
---|---|---|
datetime | -1.79E + 308 | 1.79E + 308 |
smalldatetime | Jan 1, 1900 | Jun 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 )。 |
text | 非 Unicode 数据的可变长度,最大长度为 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 支持的数据类型的值,text ,ntext 和 timestamp 类型除外 |
timestamp | 存储数据库范围的唯一编号,每次更新行时都会更新该编号 |
uniqueidentifier | 存储全局唯一标识符(GUID ) |
xml | 存储 XML 数据,可以将 xml 实例存储在列或变量中(仅限 SQL Server 2005 ) |
cursor | 引用游标对象 |
table | 存储结果集以供以后处理 |
SQL运算符
算术运算符
操作符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
比较运算符
操作符 | 描述 |
---|---|
= | 等于 |
!= | 不等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!< | 不小于 |
!> | 不大于 |
逻辑运算符
操作符 | 描述 |
---|---|
ALL | ALL 运算符用于将值与另一个值集中的所有值进行比较。 |
AND | AND 运算符允许在SQL语句的 WHERE 子句中指定多个条件。 |
ANY | ANY 运算符用于根据条件将值与列表中的任何适用值进行比较。 |
BETWEEN | BETWEEN 运算符用于搜索在给定最小值和最大值内的值。 |
EXISTS | EXISTS 运算符用于搜索指定表中是否存在满足特定条件的行。 |
IN | IN 运算符用于将值与已指定的文字值列表进行比较。 |
LIKE | LIKE 运算符用于使用通配符运算符将值与类似值进行比较。 |
NOT | NOT 运算符反转使用它的逻辑运算符的含义。 例如:NOT EXISTS , NOT BETWEEN , NOT IN 等等,这是一个否定运算符。 |
OR | OR 运算符用于组合 SQL 语句的 WHERE 子句中的多个条件。 |
IS NULL | NULL 运算符用于将值与 NULL 值进行比较。 |
UNIQUE | UNIQUE 运算符搜索指定表的每一行的唯一性(无重复项)。 |