数据库探索之旅——数据类型
来源:互联网 发布:淘宝网新款针织衫 编辑:程序博客网 时间:2024/06/05 16:21
目录
1. 何为数据类型
2. 数据类型列表
3. 用户自定义数据类型
4. 数据类型优先级
在学习基本表之前,需要先了解一下数据类型,一便更好的学习基本表。此处的数据类型基于 SQL Server 2012。
1. 何为数据类型
数据类型是一种属性,是用来限定表中的列的数据所允许存储的数据的类型,一列中的所有数值都应该是同一种数据类型,除非该列指定为 sql_variant 数据类型的值。
数据类型一般分为数字类型、日期和时间类型、字符串类型、Unicode 字符串类型、二进制字符串类型、空间类型、其他数据类型七大类。
2. 数据类型列表
几点说明:
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';
调试后可得结果如下图:
若要删除用户自定义的数据类型,可通过如下方式:
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 (最低)
以往的文章:
数据库探索之旅——初识数据库
数据库探索之旅——数据库管理系统
数据库探索之旅——连接数据库
数据库探索之旅——对数据库的简单操作
- 数据库探索之旅——数据类型
- 数据库探索之旅——初识数据库
- 数据库探索之旅——数据库管理系统
- 数据库探索之旅——连接数据库
- 数据库探索之旅——完整性约束条件
- 数据库探索之旅——基本表操作三步曲
- 数据库探索之旅——对数据库的简单操作
- Redis探索之旅(7)- Redis数据类型之列表
- Redis探索之旅(8)- Redis数据类型之哈希表
- Java[探索]之基本数据类型
- 委托——探索之旅
- 工厂方法——探索之旅
- 组合模式——探索之旅
- PHP探索之旅—-字符串String
- 黑马程序员—OC基础--基本数据类型深入探索
- MySQL探索之数据库概述
- nifi探索之写入数据库
- oracle数据库之数据类型
- 解决使用TortoiseGit后文件夹出现蓝色问号
- Drawerlayout侧滑菜单
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- 精选20道Java多线程面试题并有答案! 互联网IT技术 2017-10-14 00:02 1. 多线程使用的优缺点? 优点: (1)多线程技术使程序的响应速度更快 (2)当前没有进行处理的任务
- 第一章课后习题
- 数据库探索之旅——数据类型
- hdu6183(线段树动态开点)
- 利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图。 标签: ECharts3Echarts2模拟迁徙百度地图引入 2016-10-24 16:21 10065人阅
- 为什么朴素贝叶斯如此“朴素”?
- C语言 使用计算两个时间的差,使用结构体
- 矩阵中的路径java实现
- android开源
- VC对xml文件的读写
- 字符串的冒泡排序