1.整数数据类型:
bigint:整数值超过int数据范围时才可以使用
int:是将一个数值向下取整为最接近的整数的函数
tinyint :TINYINT 型的字段如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数。TINYINT 型的字段如果不设置UNSIGNED类型,存储-128到127的整数。
Decimal:属于浮点数类型。存储数据范围是:-1038~1038-1 的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。
numeric:numeric(P,S) P的默认值是:38 S的默认值是:-84~127。numeric(a,b)函数有两个参数,前面一个为总的位数,后面一个参数是小数点后的位数,例如numeric(5,2)是总位数为5,小数点后为2位的数,也就是说这个字段的整数位最大是3位。
Float:单精度浮点型,字节是四个,有效位是8位,范围:-3.40E+38 ~ +3.40E+38
double:双精度浮点型,字节是八个,有效位是16位,范围:-1.79E+308 ~ +1.79E+308
Money:float类型就是money类型一样的数据类型。money类型只是显示在数据表的时候前面多加一个$样式的符号,让客户看上去舒服,方便编辑,其实跟float是同类型数据。
real:用于存储单精度浮点数(存储在 4 个字节中)
Bit:只表示位,Bit 数据类型在 SQL Server 数据库中以存储 1、0 进行存储。 往数据库中添加,修改 bit 类型的字段时,只能用 0 或者 1。
2.字符数据类型
char(10):保存固定长度的字符串,在存储的时候假设有六个字符,不够十个,但是还是要占满十个不管是否够十位都要占十位,不够的用空格补齐。
Nchar(10):与Char数据类型类似,不同的是Nchar数据类型n的取值为1~4000,他的数据存储是有多少位占多少位,有六个就占六位,九位就占九位,不会占满十位,当然溢出,数据位数多了就放不进去了。
Varchar:保存可变长度的字符串,varchar和char是一样的字符型,不同于,varchar比char更灵活,准确,且不会占内存空间。当你取同样的字符,比如有字段5,用varchar从该字段中去“aa”时,你取的是“aa”,如果用char,则取得的是“aa ”,char会在后边补齐五个空格。
Nvarchar:与varchar数据类型类似,不同的是Nchar数据类型n的取值为1~4000,
text: 存放最大长度为 65535 个字符的字符串。
ntext:与Text数据类型类似,存储在其中的数据通常是直接能输出到显示设备上的字符,显示设备可以是显示器、窗口或者打印机。Ntext数据类型采用Unicode标准 字符集,因此其理论上的容量为230-l(l,073,741,823)个字节。
3.日期和时间数据类型
date():日期。格式是YYYY-MM-DD,范围是1000-01-01到9999-12-31
datetime: 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS(范围是从 '1000-01-01 00:00:00'到 '9999-12-31 23:59:59,精度是3.33毫秒)
smalldatetime: 和datetime的使用一样,但是范围减少,精度减少。(范围是1900.1.1-2079.12.31,精度是一分钟)
time(): 时间。格式:HH:MM:SS 范围是从 -838:59:59到 838:59:59
year(): 格式:YYYY或者YY YYYY的范围是1901到2155, YY所允许的值是70到69,表示从1970年到2069年,整一百年。
4.专用数据类型
cursor:是在游标中使用的数据类型
sql_variant:可以存放数字,也可以存字符。在读取时要进行转换,否则不知道读入的是什么类型数据,会导致数据错误。
table: 只能做T-SQL变量或者自定义函数的返回值,不能用来定义列的类型
timestamp: 自动生成二进制数,并且在数据库中这些数是唯一的
uniqueidentifier: 存储 16 字节的二进制值