[转贴]SQL2005数据类型
数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQL Server 提供了 25 种数据类型:
(1)二进制数据类型
二进制数据包括 Binary、Varbinary 和 Image.
Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
Binary[(N)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。
Varbinary[(N)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是 n 个字节。
在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用 BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。
(2)字符数据类型
字符数据的类型包括 Char,Varchar 和 Text。
字符数据是由任何字母、符号和数字任意组合而成的数据。
Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text 数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在 SQL Server 中。
(3)Unicode 数据类型
Unicode 数据类型包括 Nchar,Nvarchar 和Ntext。
在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server 安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode 数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。
在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用 Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储 4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。
(4)日期和时间数据类型
日期和时间数据类型包括 Datetime 和 Smalldatetime 两种类型。
日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括4/01/98 12:15:00:00:00 PM和1:28:29:15:01 AM 8/17/98。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server 中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到 9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900 年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。
日期的格式可以设定。设置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为 MDY。
例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为 日 月有年 形式
(5)数字数据类型
数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数 。
整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是 Int,Smallint 和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于 Tinyint 数据类型存储数据的范围。使用 Int 数据狗昔存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求 4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。使用 Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。
精确小娄数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。
在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。
(6)货币数据表示正的或者负的货币数量 。在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney。Money 数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。
(7)特殊数据类型
特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。
Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。
Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。
2.用户定义的数据类型
用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义 一种称为 postal_code 的数据类型,它基于 Char 数据类型。
当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。
(1)创建用户定义的数据类型
创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下:
sp_addtype {type},[,system_data_bype][,`null_type`]
其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char 等等。 null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如`NULL`、`NOT NULL`或者`NONULL`。
例子:
Use cust
Exec sp_addtype ssn,`Varchar(11)`,Not Null`
创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。
例子:
Use cust
Exec sp_addtype birthday,datetime,`Null`
创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。
例子:
Use master
Exec sp_addtype telephone,`varchar(24),`Not Null`
Eexc sp_addtype fax,`varchar(24)`,`Null`
创建两个数据类型,即 telephone 和 fax
(2)删除用户定义的数据类型
当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {`type`}。
例子:
Use master
Exec sp_droptype `ssn`
注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。
精确数字 | 近似数字 | 字符串 | Unicode 字符串 | 二进制字符串 | 日期和时间 | 其他数据类型 |
---|---|---|---|---|---|---|
bigint int smallint tinyint bit decimal numeric money smallmoney |
float real |
char text varchar |
nchar nvarchar ntext |
binary image varbinary |
datetime smalldatetime |
cursor timestamp sql_variant uniqueidentifier table xml |
大值数据类型:varchar(max)、nvarchar(max) 和 varbinary(max)
大型对象数据类型:text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max) 和 xml
注意:sp_help 返回 -1 作为大值数据类型和 xml 数据类型的长度。
转载于:https://www.cnblogs.com/lixx/archive/2009/05/15/1457738.html
[转贴]SQL2005数据类型相关推荐
- sql2005 数据类型
SQL2005 数据类型 序号 类别 SQLServer C# 备注 1 整数 bit ...
- 在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据?
在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据? 原文 http://blog.csdn.net/quou2002/article/details/59650 ...
- PowerDesigner12 逆向工程DataBase SQl2005: unable to list the tables 信息
在PowerDesigner12 逆向工程DataBase SQl2005时出现:unable to list the tables 信息 此时应该设置sqlserver2005数据库的行为设置为指 ...
- SQL2005中的XXproperty() 函数归纳
在使用SQL2005的时候经常会碰到XXproperty()的函数,现在归纳一下,有些函数比较重要 1.serverproperty 作用:返回有关服务器实例的属性信息. 实例: SELECT CON ...
- win2003+sql2005配置
1.安装win2003+sp1 2.安装IIS: a.启用Asp支持(2003 默认安装不安装IIS 6 ,需另外安装.安装完IIS 6,需单独开启ASP支持) 控制面板 -> 管理工具 -&g ...
- Java连接SQL2005及SQL Server JDBC Driver 2.0中sqljdbc.jar和sqljdbc4.jar的区别
第一.Java连接SQL2005 一.JAVA连接SQL的语句 JAVA连接SQL2000语句为: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver&q ...
- SQL2008数据类型
引言 本文介绍了SQL Server 2008里发现的新时间和日期的数据类型,如DATETIME2.TIME和DATE.也将回顾以前版本一直沿用下来的传统的数据类型.另外对管理数据类型的TSQL命令如 ...
- SQL2005性能分析一些细节功能你是否有用到?(二)
上一篇:SQL2005性能分析一些细节功能你是否有用到? 我简单的提到了些关于SQL性能分析最基本的一些方法,下面的文章我会陆续补充.前面提到了根据SQL的执行IO和执行计划来分析,还有一个特别重要的 ...
- SQL Server中Text和varchar(max)数据类型区别
SQL Server中Text和varchar(max)数据类型区别 以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与var ...
最新文章
- spring配置文件详解【总结】
- ​哪些开发问题最让程序员“头秃”?我们分析了Stack Overflow的11000个问题
- oracle归档模式教程,Oracle从归档模式变成非归档模式详细步骤
- 自己发现的数学规律一
- soap协议_Go和SOAP
- Delphi 与 DirectX 之 DelphiX(55): TDIB.DoMosaic();
- COM编程入门---转发
- winform技巧一,errorprovider,任务栏可见,总在最前
- 最新数据分析与商业智能趋势前瞻
- C++中如何定义动态数组
- 【面向对象】面向对象程序设计测试题2-Java基本语法测试题
- 《天天数学》连载20:一月二十日
- 在myeclipse上设置 SVN过滤上传的文件类型
- [springboot 开发单体web shop] 1. 前言介绍和环境搭建
- python两个表格相同数据筛选_如何将多个表格中数据筛选汇总在一个表格里?
- gcc生成静态库.a和动态库.a以及Ubuntu18.04下opencv3.4.11安装及示例
- stm32波特率配置
- 2020“东方国信杯”高校大数据开发大赛最终榜第三名思路分享
- ati hd 6470m驱动
- 没有干货的LTSC浅度体验
热门文章
- PowerDesigner导出SQL脚本运行注释出现乱码问题
- Python3.8 安装gmpy2 教程, 无法安装gmpy2解决方案
- 【牛客-15121】Call to your teacher(并查集模板)
- 【应用推荐】用狗屁不通文章生成器写文章
- 【NOIP1999】【Luogu1020】导弹拦截
- 销售管理c语言程序设计,C语言课程设计销售管理系统
- html期末作品,走完HTML和CSS,进军期末
- java 环境变量_Win10系统配置Java环境变量
- 谢希仁计算机网络第七版 以太网单播和多播MAC地址范围[纠错]
- malloc,free 与new delete的区别