T-SQL数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Transact-SQL数据类型
一、何谓Transact-SQL
(一)含义:SQL是“结构化数据查询语言”的英语缩 写,是关系模型的数据库应用语言。它主要用于关系数 据库中的数据检索。T-SQL对其进行了扩展,对语法也 作了一些精简,增强了可编程性和灵活性。因此T-SQL 是一个非标准的SQL。
Microsoft公司将Transact-SQL设计为SQL Server 2005的 核心组件,通过T-SQL,用户可以与SQL Server 服务器 进行通信并且能够访问SQL Server中的对象。
3、注意: (1)字符型字段的最大长度是255个字符。 (2)varchar(1)的格式不正确。 (3)选择char和varchar的原则
4、关于截断字符串问题 向表中插入字符串值时,如果字符串的实际长度大于字 段定义的长度,SQL SERVER将报告错误信息,并不将该 记录插入到表中。
五、十六进制型
(Pid int not null,
Names char(8),
Ts_field timestamp not null )
Insert timestamp_example(Pid,names)
Values(101,’Marry’)
Insert timestamp_example(Pid,names) Values(102,’Tom’) Select * from timestamp_example
create table date_example (pid inபைடு நூலகம் not null, date_field datetime not null, date_field1 smalldatetime not null) insert date_example values(101,'2002-5-31 12:00:21','2002-5-31 12:00:21') insert date_example values(102,'2004-5-31 12:30:37','2004-5-31 12:30:37') select * from date_example
七、文本型和图像型
Text和image数据类型可以存储每行最大为2GB的二进制大 型对象(BLOB) 例:create table text_example (pid int not null, names char(8) null, text_field text null) insert text_example(Pid,text_field) values(101,null) insert text_example(pid,text_field) values(102,'抗击微软汇总,击败盖茨七大秘诀')
九、位型
Bit是一种逻辑数据类型,只用来存储1或0 注意: 特征: 用途:
十、数值数据类型
1、整数型 Int 4个字节; smallint 2个字节; tinyint 1个字节
2、浮点型 Float 8个字节; real 4个字节 3、精确数值型 Decimal[p[,s]];numeric[p,[s]] 4货币类型 Money8个字节;smallmoney4个字节
六、时间戳型
如果在创建表时,定义了一个字段为时间戳型(timestamp), 则无论用户何时向表中添加记录,SQL SERVER都会自动 向该字段加入一个计数器值。
1、时间戳型字段的值为二进制格式的数据,与系统时间并 没有关系,它表示包含时间戳字段的记录的操作顺序,实 际上相当于一个单值递增的计数器。
数据类型符 binary,varbinary char,varchar datetime,smalldatetime int,smallint,tinyint decimal,numeric float,real money,smallmoney bit timestamp text image
三、空值
(二)SQL语句的构成
1、SQL中的命令动词是一种对SQL服务器有特定 意义的关键字,而其他关键字则只是在SQL语句中 引入了其他的限制条件。
2、用户或者应用程序向服务器提交T-SQL语句, 均采用批处理的形式。
*一个批处理是指一次发送给服务器一组语句。
(三)服务器处理SQL语句的过程
1、分析过程——检查 2、再优化过程3、编译过程4、 执行过程
2、尤其重要的是,用户在创建表时,一旦为字段列声明了 数据类型,便不能再更改,除非将该字段列删除,然后重 新建立。对于一个已经投入使用的大型数据库管理系统来 说,这将是灾难性的。
(四)系统数据类型
数据类型 十六进制 字符型 日期时间类型 整数型 精确数型 浮点数型 货币型 位型 时间戳型 文本型 图像型
create table date_example (pid int not null, date_field datetime not null, date_field1 smalldatetime not null) insert date_example values(101,'5-2002-31 12:00:21','2002-5-31 12:00:21') insert date_example values(102,'5-2004-31 12:30:37','2004-5-31 12:30:37') select * from date_example
在UPDATE语句中使用tsequal()函数确保来自某次检 索以来,所更新的记录不会被改变。
update timestamp_example set names='marry' where PID=101 and tsequal(ts_field,0x000000000000012F) select * from timestamp_example
注意:
insert text_example(pid,text_field) values(103,replicate('抗击微软汇总,击败盖茨七大秘诀 ',6))
select * from text_example
八、日期时间型
种类:datetime和smalldatetime 区别: 默认格式:mdy,可用SET dateformat命令,进行格式转换 Ymd,mdy,dmy,ydm,myd,dym 例:set dateformat ymd
二、SQL SERVER支持的数据类型
(一)种类 1、系统数据类型 2、用户定义的数据类型
(二)特性 1、在字段列中可以存储何种数据 2、对于数值或日期数据类型,确定了允许在字段 列中使用值的范围 3、对于字符串和十六进制数据类型,确定了允许 在字段列中存储的最大数据长度。
(三)注意
1、在SQL SERVER2005中,为字段列选择合适的数据类型 尤为重要,因为它影响系统的空间利用、性能、可靠性和 是否易于管理等特性。
十六进制型用于存储十六进制数或十六进制字符串。
1、十六进制型 最大长度为255 2、十六进制数由0~9,A~F,a~f组成,由“0x”作为十六 进制数的开头,其中每两个字符为一组,共同构成一 个字节。
3、类型: (1)binary(长度固定) (2)varbinary(长度可变) 4、向字段列插入binary数据时,不需要加引号,只需 在数据开头加上十六进制字符“0x”。
2、在数据库中其列值保持唯一,即它可以唯一标识表中的 字段。
3、时间戳字段的值是由系统自动更新的,因此,向表中插 入记录时,只需插入记录中的非时间戳字段的值。
4、SQL服务器不允许人为指定时间戳字段的值,否则会报 告错误信息。
5、时间戳字段的重要用途 用在WHERE子句中以防止多个用户同时修改表中的同 一个记录。在SQL SERVER中对于优化锁则使用了一个 新的系统函数tsequal( ),使SQL服务器在进行更新操作 时,若发生了冲突才发出警告信息。 例:create table timestamp_example
在创建表时,如果在定义字段列后面,没有说明是否为 “空”,则系统默认该列是允许空值NULL 1、允许为“空”值意味着用户在向表中插入数据时可以 忽略该字段值
2、如果字段允许为空值,则需要更多的存储空间,并且 可能产生其他性能上的或者存储方面的问题。
四、字符型
1、若定义某个字段为字符型,则在输入时,输入的数据必 须由单引号括起来,除了转义字符外,所有在单引号内的字 符共同组成一个字符串。 2、字符变量类型: (1)定长char(长度固定)。 如果字段或变量被定义为char类型,而实际长度没有达到定 义的长度,则在字符串尾部添加空格以达到固定的字符数。 (2)可变长varchar(长度可变) 如果字段或变量被定义为varchar,而实际长度没有达到定义 的长度,则会丢掉尾部的空格以节省空间。
一、何谓Transact-SQL
(一)含义:SQL是“结构化数据查询语言”的英语缩 写,是关系模型的数据库应用语言。它主要用于关系数 据库中的数据检索。T-SQL对其进行了扩展,对语法也 作了一些精简,增强了可编程性和灵活性。因此T-SQL 是一个非标准的SQL。
Microsoft公司将Transact-SQL设计为SQL Server 2005的 核心组件,通过T-SQL,用户可以与SQL Server 服务器 进行通信并且能够访问SQL Server中的对象。
3、注意: (1)字符型字段的最大长度是255个字符。 (2)varchar(1)的格式不正确。 (3)选择char和varchar的原则
4、关于截断字符串问题 向表中插入字符串值时,如果字符串的实际长度大于字 段定义的长度,SQL SERVER将报告错误信息,并不将该 记录插入到表中。
五、十六进制型
(Pid int not null,
Names char(8),
Ts_field timestamp not null )
Insert timestamp_example(Pid,names)
Values(101,’Marry’)
Insert timestamp_example(Pid,names) Values(102,’Tom’) Select * from timestamp_example
create table date_example (pid inபைடு நூலகம் not null, date_field datetime not null, date_field1 smalldatetime not null) insert date_example values(101,'2002-5-31 12:00:21','2002-5-31 12:00:21') insert date_example values(102,'2004-5-31 12:30:37','2004-5-31 12:30:37') select * from date_example
七、文本型和图像型
Text和image数据类型可以存储每行最大为2GB的二进制大 型对象(BLOB) 例:create table text_example (pid int not null, names char(8) null, text_field text null) insert text_example(Pid,text_field) values(101,null) insert text_example(pid,text_field) values(102,'抗击微软汇总,击败盖茨七大秘诀')
九、位型
Bit是一种逻辑数据类型,只用来存储1或0 注意: 特征: 用途:
十、数值数据类型
1、整数型 Int 4个字节; smallint 2个字节; tinyint 1个字节
2、浮点型 Float 8个字节; real 4个字节 3、精确数值型 Decimal[p[,s]];numeric[p,[s]] 4货币类型 Money8个字节;smallmoney4个字节
六、时间戳型
如果在创建表时,定义了一个字段为时间戳型(timestamp), 则无论用户何时向表中添加记录,SQL SERVER都会自动 向该字段加入一个计数器值。
1、时间戳型字段的值为二进制格式的数据,与系统时间并 没有关系,它表示包含时间戳字段的记录的操作顺序,实 际上相当于一个单值递增的计数器。
数据类型符 binary,varbinary char,varchar datetime,smalldatetime int,smallint,tinyint decimal,numeric float,real money,smallmoney bit timestamp text image
三、空值
(二)SQL语句的构成
1、SQL中的命令动词是一种对SQL服务器有特定 意义的关键字,而其他关键字则只是在SQL语句中 引入了其他的限制条件。
2、用户或者应用程序向服务器提交T-SQL语句, 均采用批处理的形式。
*一个批处理是指一次发送给服务器一组语句。
(三)服务器处理SQL语句的过程
1、分析过程——检查 2、再优化过程3、编译过程4、 执行过程
2、尤其重要的是,用户在创建表时,一旦为字段列声明了 数据类型,便不能再更改,除非将该字段列删除,然后重 新建立。对于一个已经投入使用的大型数据库管理系统来 说,这将是灾难性的。
(四)系统数据类型
数据类型 十六进制 字符型 日期时间类型 整数型 精确数型 浮点数型 货币型 位型 时间戳型 文本型 图像型
create table date_example (pid int not null, date_field datetime not null, date_field1 smalldatetime not null) insert date_example values(101,'5-2002-31 12:00:21','2002-5-31 12:00:21') insert date_example values(102,'5-2004-31 12:30:37','2004-5-31 12:30:37') select * from date_example
在UPDATE语句中使用tsequal()函数确保来自某次检 索以来,所更新的记录不会被改变。
update timestamp_example set names='marry' where PID=101 and tsequal(ts_field,0x000000000000012F) select * from timestamp_example
注意:
insert text_example(pid,text_field) values(103,replicate('抗击微软汇总,击败盖茨七大秘诀 ',6))
select * from text_example
八、日期时间型
种类:datetime和smalldatetime 区别: 默认格式:mdy,可用SET dateformat命令,进行格式转换 Ymd,mdy,dmy,ydm,myd,dym 例:set dateformat ymd
二、SQL SERVER支持的数据类型
(一)种类 1、系统数据类型 2、用户定义的数据类型
(二)特性 1、在字段列中可以存储何种数据 2、对于数值或日期数据类型,确定了允许在字段 列中使用值的范围 3、对于字符串和十六进制数据类型,确定了允许 在字段列中存储的最大数据长度。
(三)注意
1、在SQL SERVER2005中,为字段列选择合适的数据类型 尤为重要,因为它影响系统的空间利用、性能、可靠性和 是否易于管理等特性。
十六进制型用于存储十六进制数或十六进制字符串。
1、十六进制型 最大长度为255 2、十六进制数由0~9,A~F,a~f组成,由“0x”作为十六 进制数的开头,其中每两个字符为一组,共同构成一 个字节。
3、类型: (1)binary(长度固定) (2)varbinary(长度可变) 4、向字段列插入binary数据时,不需要加引号,只需 在数据开头加上十六进制字符“0x”。
2、在数据库中其列值保持唯一,即它可以唯一标识表中的 字段。
3、时间戳字段的值是由系统自动更新的,因此,向表中插 入记录时,只需插入记录中的非时间戳字段的值。
4、SQL服务器不允许人为指定时间戳字段的值,否则会报 告错误信息。
5、时间戳字段的重要用途 用在WHERE子句中以防止多个用户同时修改表中的同 一个记录。在SQL SERVER中对于优化锁则使用了一个 新的系统函数tsequal( ),使SQL服务器在进行更新操作 时,若发生了冲突才发出警告信息。 例:create table timestamp_example
在创建表时,如果在定义字段列后面,没有说明是否为 “空”,则系统默认该列是允许空值NULL 1、允许为“空”值意味着用户在向表中插入数据时可以 忽略该字段值
2、如果字段允许为空值,则需要更多的存储空间,并且 可能产生其他性能上的或者存储方面的问题。
四、字符型
1、若定义某个字段为字符型,则在输入时,输入的数据必 须由单引号括起来,除了转义字符外,所有在单引号内的字 符共同组成一个字符串。 2、字符变量类型: (1)定长char(长度固定)。 如果字段或变量被定义为char类型,而实际长度没有达到定 义的长度,则在字符串尾部添加空格以达到固定的字符数。 (2)可变长varchar(长度可变) 如果字段或变量被定义为varchar,而实际长度没有达到定义 的长度,则会丢掉尾部的空格以节省空间。