数据类型是一种属性,用于指定对象可保存的数据的类型:包括整数数据,字符数据,货币数据,日期和时间数据,二进制字符串等。
SQL server的数据类型一共有33种。
日期和时间 | 字符串 |
Unicode字符串 | 二进制字符串 |
精确数字 | 近似数字 |
其他类型 |
字符数据类型
字符数据库类型一共六种
字符串:char varchar text
Unicode字符串:nchar nvarchar ntext
那么这个n是什么意思呢?N’string’表示这个string是一个Unicode字符串
Unicode支持增强的排序规则。
vchar表示变长字符串 vchar(10) 即定义了一个10个字节长度的字符
vchar(n|max) :n范围是[1,8000] max最大为231-1个字节
数字数据类型
数字数据类型一共是十一种。大致可以分为整数数据类型、decimal和numeric、货币类型、近似数字、bit类型
1.整数数据类型
使用整数数据的精确数字类型。
包括bigint; int; smallint; tinyint
2.decimal和numeric
语法为decimal[(p,[s])]
p表示精度
s表示小数位
且S小于等于P
3.货币类型
货币类型包括money和smallmoney
4.近似数字
近似数字包括float和real这两种数据类型用于表示浮点数值数据的大致数据类型。浮点数据为近似值
5.bit类型
它的取值范围为 1 0或者 NULL的整数类型。
日期和时间数据类型
数据类型 | 格式 | 范围 | 精确度 | 存储大小(以字节为单位) | 用户定义的秒的小数精度 | 时区偏移量 |
---|---|---|---|---|---|---|
time | hh:mm:ss[.nnnnnnn] | 00:00:00.0000000 到 23:59:59.9999999 | 100 纳秒 | 3 到 5 | 有 | 无 |
date | YYYY-MM-DD | 0001-01-01 到 9999-12-31 | 1 天 | 3 | 无 | 无 |
smalldatetime | YYYY-MM-DD hh:mm:ss | 1900-01-01 到 2079-06-06 | 1 分钟 | 4 | 无 | 无 |
datetime | YYYY-MM-DD hh:mm:ss[.nnn] | 1753-01-01 到 9999-12-31 | 0.00333 秒 | 8 | 无 | 无 |
datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] | 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999 | 100 纳秒 | 6 到 8 | 有 | 无 |
datetimeoffset | YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+/-]hh:mm | 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999(以 UTC 时间表示) | 100 纳秒 | 8 到 10 | 有 | 有 |
二进制数据类型
二进制数据类型用于存储二进制数据,包括binary型、varbinary型和image型【注】推荐使用varbinary(max)。
binary型是固定长度的二进制数据类型,其定义形式为binary(n),其中n表示数据的长度,取值为1~8 000。在使用时应指定binary型数据的大小,默认值为1个字节。binary类型的数据占用n+4个字节的存储空间。在输入数据时必须在数据前加上字符“0X”作为二进制标识。例如:要输入“abc”则应输入“0Xabc”。若输入的数据位数为奇数,则系统会自动在起始符号“0X”的后面添加一个0。如上述输入“0Xabc”后,系统会自动变为“0X0abc”。
varbinary型是可变长度的二进制数据类型,其定义形式为varbinary(n),其中n表示数据的长度,取值为1~8 000。如果输入的数据长度超出n的范围,则系统会自动截掉超出部分。 varbinary型具有变动长度的特性,因为varbinary型数据的存储长度为实际数值长度+4个字节。当binnary型数据允许null值时,将被视为varbinary型的数据。 一般情况下,由于binary型的数据长度固定,因此它比varbinary型的数据处理速度快。
image型的数据也是可变长度的二进制数据,其最大长度为231-1(2 147 483 647)个字节。
用户自定义数据类型
用户自定义数据类型:基于系统数据类型,由数据库管理员生成。
利用系统存储过程定义用户自定义数据类型`
需要包含:
1.数据类型的名称
2.所基于的系统数据类型
3.数据类型的可空性(是否可以为空)。
/*建自定义数据类型*/
create type SSN
from varchar(11) NOT NULL;
/*删除自定义数据类型*/
drop type SSN;
其他数据类型
在这里仅列出名字,以后需要在补充吧
数据类型 |
---|
cursor |
timestamp |
uniqueidentifier |
hierarchyid |
sql_variant |
xml |
table |