数据库探索之旅——数据类型

来源:互联网 发布:淘宝网新款针织衫 编辑:程序博客网 时间:2024/06/05 16:21

目录

1. 何为数据类型
2. 数据类型列表
3. 用户自定义数据类型
4. 数据类型优先级

在学习基本表之前,需要先了解一下数据类型,一便更好的学习基本表。此处的数据类型基于 SQL Server 2012。

1. 何为数据类型

数据类型是一种属性,是用来限定表中的列的数据所允许存储的数据的类型,一列中的所有数值都应该是同一种数据类型,除非该列指定为 sql_variant 数据类型的值。

数据类型一般分为数字类型、日期和时间类型、字符串类型、Unicode 字符串类型、二进制字符串类型、空间类型、其他数据类型七大类。

2. 数据类型列表

数字类型

日期和时间类型

字符串类型

Unicode 字符串类型

二进制字符串

空间类型

其他类型

几点说明:
1. Unicode 是计算机上的一种编码方式。有兴趣的书友可以到Unicode@字符百科查看各种字符对应的编码。
2. 有一些数据类型都会有默认值,需要自定义长度的数据类型,在用户不定义的时候,他会自动给一个默认值。

3. 用户自定义数据类型

用户自定义数据类型是指用户基于系统的数据类型而设计并实现的数据类型。创建用户自定义类型时必须提供数据类型的名称所基于的系统数据类型是否允许为空三个参数。

通过图形界面创建

对象资源管理器下某个数据库中找的可编程性节点,展开后右击类型,如下图:
用户自定义数据类型
然后在界面上设置前面所说的三个参数,名称设为 mycs,所基于的系统数据类型为 text,是否允许为空选择 √ 允许。如下图:
设置类型参数
确定后可在可编程性下找到该数据类型。
查看结果

通过T-SQL语句创建

需要调用 sp_addtype 存储过程,基本语法如下:
sp_addtype [ @typename = ] type, [ @phystype = ] system_data_type [ , [@nulltype = ] ‘null_type’ ]

语法说明:
1. [ @typename = ] type:自定义数据类型的名称,该名称在每个数据库中是唯一的。该类型无默认值。
2. [ @phystype = ] system_data_type:自定义数据类型所基于物理数据类型或 SQL Server 提供的数据类型。该类型无默认值。
3. [@nulltype = ] ‘null_type’:指定自定义数据类型处理空值的方式。null_type 的数据了行为 varchar(8),默认值为 NULL,并且必须用单引号引起来(’NULL’、’NOT NULL’或’NONULL’)。

【实例】在 practice 数据库中自定义基于 float 的不允许为空值的mysc1 数据类型。
在查询窗口键入命令:

USE practice;GOEXEC sp_addtype mysc1 ,'float','NOT NULL';

调试后可得结果如下图:
成功创建 mysc1 数据类型
若要删除用户自定义的数据类型,可通过如下方式:
sp_droptype [ @typename = ] ‘type’
【实例】删除 practice 数据库中的 mysc1 数据类型。在查询窗口键入如下命令:

USE practice;GOEXEC sp_droptype mysc

4. 数据类型的优先级

当两个不同数据类型的表达式用运算符结合后,数据类型优先级规则将优先级较低的数据类型转换为优先级较高的数据类型。如果此转换不是所支持的饮食转换,则会返回错误。当两个操作数表达式具有相同的数据类型时,运算的结果便为该数据类型。

优先级该地顺序如下:
(最高)用户自定义数据类型 > sql_variant > xml > datetimeoffset > datetime2 > datetime > smalldatetime > date > time > floart > real > decimal > money > smallmoney > bigint > int > smallint > tinyint > bit > ntext > text > image > timestamp > uniqueidentifier > nvarchar > nchar > varchar > char > varbinary > binary (最低)


以往的文章:

数据库探索之旅——初识数据库
数据库探索之旅——数据库管理系统
数据库探索之旅——连接数据库
数据库探索之旅——对数据库的简单操作

阅读全文
0 0
原创粉丝点击