T-SQL语句之SQLSERVER中的系统数据类型

1> 二进制数据类型
二进制数据类型使一些用十六进制表示的数据。二进制数据类型包括三种: binary varbinary image
binary[(n)] :固定长度的 n 个字节二进制数据,最大长度可达 8KB
Varbinary[(n)] n 个字节可变长二进制数据,其最大长度不得超过 8KB
Image :可用于存储字节数超过 8KB 的数据,如 Microsoft Word 文档、 Microsoft Excel 图表以及图像数据等,其最大长度为 231-1 个字节。
2> 整数数据类型
整数数据类型有五种: bit int bigint smallint tinyint
bit bit 型数据的值只能为 0 1. 通常使用 bit 类型的数据表示真假逻辑关系,如 on/off yes/no ture/false 等。不能对 bit 类型的列使用索引。
Int :可以存储从 -231 -231-1 范围内的全部正负数。 int 型数据占用的存储空间大小为 4KB 个字节。
bigint :可以存储 -263 263-1 范围内的全部负数,所占存储空间大小为 8 个字节。
smallint :存储从 -215 -215-1 范围内的全部正负数,所占存储空间大小为 2 个字节。
tinyint :可以存储 0~255 之间的所有整数,所占存储空间大小为 1 个字节。
3> 浮点数据类型
浮点数据类型包括 float real 两种类型,用于存储范围非常大的数字。
float :该类型数据范围是 -1.79E+308~1.79E+308.
real :该类型数据范围是 -3.40E+38~3.40E+38.
浮点数据类型容易发生舍入误差,因此一般在货币运算上不使用它但是在科学运算或统计运算计算等不要求绝对精确的运算场合使用浮点数据类型非常方便。
4> 精确的小树数据类型
精确小数数据类型包括 decimal numeric 两种,可以精确指定小数点两边的总位数和小数点右面的位数。这两种数据的去值范围都是从 -1038-1 1038-1.
decimal numeric 的区别在于: numeric 类型的列可以带有 IDENTITY 关键字。
5> 货币数据类型
货币数据类型专门用于货币数据处理,包括 money smallmoney
money :以 money 数据类型存储的货币值的范围从 -263 263-1 ,精确到货币单位的 10 。money数据类型要求有两个2字节整数构成,前面的一个4字节表示货币值的整数部分,后面的一个4字节表示货币值的小数部分。
smallmoney :以smallmoney数据类型存储的货币值介于-214748.3648与214748.3647之间,精确到货币单位的10 ‰。smallmoney数据类型要求有两个2字节整数构成,前面的一个2字节表示货币值的整数部分,后面的一个2字节表示货币值的小数部分。
6> 日期 / 时间数据类型
日期/时间数据类型可以存储日期和时间的组合数据,包括datetime和smalldatetime两种数据类型。
datetime :存储从1753年1月1日到9999年12月31日的日期和时间数据,精确到0.00333s或是3.33s。每个datetime类型的数据占用8个字节的存储空间。
smalldatetime :存储从1900年1月1日到2079年12月31日的日期和时间数据可以精确到分钟。每个smalldatetime类型的数据占用4个字节的存储空间。
7> 字符数据类型
字符数据类型是由字母、数字和符号组合而成,如‘beijing’、‘[email protected]’等都是合法的字符型数据。字符数据类型可以分为3种:
char[(n)] :使用固定长度来存储字符,每个字符占用一个字节的存储空间,其最大长度为8000个字符。利用char数据类型来定义表列或变量时,应该给定数据的最大长度,例如有这样的定义:declare @name char(10)。
定义变量name为char类型,最长可容纳10个字符。如果实际赋给变量的字符长度短于给定的最大长度,则多余的字符会以空格填充;如果实际赋给变量的字符长度超过了给定的最大长度,则超过的字符将会被截断。字符型常量必须使用单引号括起来。
varchar[(n)] :用于存储最长可达8000字符的变长字符型数据。varchar数据类型的存储空间虽存储的每一个数据的字符数的不同而变化。
text :专门用于存储数量庞大的变长字符数据。最大长度可达2 31 -1 个。
8>Unicode 数据类型
Unicode 数据类型用于存储要用两个字符才能存储的双字节字符,例如汉子、日文或韩文等Unicode数据类型包括nchar、nvarchar和ntext。
nchar(n) :固定长度的Unicode数据,括号中的n用来定义字符数据的最大长度。n的取值范围是1~4000.由于存储的都是双字节字符,因此Unicode数据的存储空间都是:Unicode数据的存储空间=字符数*2(字节)。
nvarchar(n) :用于存储可变长度的Unicode数据,括号汇总的n用来定义字符数据的最大长度。n的取值范围是1~4000。
ntext :用于存储可变长度的Unicode数据,其最大长度突破了前两种数据的规定,最多可以存储230-1个Unicode数据。
9>sql_variant 数据类型
sql_variant 数据类型可以应用在列,参数,变量和函数返回值中,以sql_variant为数据类型的数据可以存储除text、ntext、image和sql_variant数据类型以外的各种数据。

10>用户自定义数据类型

1.创建用户自定义数据类型

1

创建两个自定义数据类型。第一个自定义的数据类型telephone_code,数据长度为15,可变长字符型,允许为空;第二个自定义数据类型zip,定长字符型长度为6,不允许为空。

USE sales

GO

EXEC sp_addtype telephone_code,’varchar(15)’,’NULL’

EXEC sp_addtype zip,’char(6)’,’NOT NULL’

2.查看用户自定义数据类型

使用存储过程sp_help可以查看用户自定义数据类型的特征。

2

查看telephone_code的特征。

EXEC sp_help telephone_code

3.删除用户自定义数据类型

使用存储过程sp_droptype删除用户自定义数据类型。

3

删除前例中定义的数据类型telephone_code

EXEC sp_droptype telephone_code

注意:只能删除已经定义但未被使用的用户自定义数据类型,正在被表或其他数据库对象使用的用户自定义数据类型不能删除。

你可能感兴趣的:(sqlserver)