SQL数据库系统-数据类型

上传人:油条 文档编号:47548499 上传时间:2018-07-02 格式:PPT 页数:28 大小:392KB
返回 下载 相关 举报
SQL数据库系统-数据类型_第1页
第1页 / 共28页
SQL数据库系统-数据类型_第2页
第2页 / 共28页
SQL数据库系统-数据类型_第3页
第3页 / 共28页
SQL数据库系统-数据类型_第4页
第4页 / 共28页
SQL数据库系统-数据类型_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《SQL数据库系统-数据类型》由会员分享,可在线阅读,更多相关《SQL数据库系统-数据类型(28页珍藏版)》请在金锄头文库上搜索。

1、/281主讲人:夏岩/282数据表的创建与操作/283回 顾 1 SQL Server 数据库的存储结构 2 创建SQL Server 数据库 3 查看、设置、修改数据库选项/2841. 定长二进制 binary(n):按n个字节的固定长度存放二进制数 据,最大长度为8KB,若不足,在数据尾部加0补足。2. 变长二进制 varbinary(n):按不超过n个字节的实际长度存放 二进制数据,最大长度8KB,若不足,按实际长度存储3. 图像二进制 image:用来存放文本文档、Excel图表及图象数 据(.gif、.bmp、.jpeg)等。4.1 数据类型4.1.1 二进制数据SQL Server

2、用binary、varbinary和image 三种数据类型来存储二进制数据。二进制类型用 于存储声音、图像等数字类型的数据。/285注意:1. 二进制数据常量不允许加引号,默认用十进制 书写,输出显示默认采用十六进制。2. 若实际数据的二进制长度超过指定的n个字节, 用局部变量存储时截取二进制的前n个字节。3. 数据库中二进制字段的数据不能在数据表中直接输入。4. 在用INSERT 或UPDATE语句为数据表二进制字段输入、更新数据时,如果超过n字节,则系统报错。/2864.1 数据类型 4.1.2 数值型数据SQL Server的数值型数据用8种:整型数据4 种,实型数据4种。1. 字节型

3、整数 TinyInt2. 短整型整数SmallInt3. 基本整型整数Int 或 Integer4. 长整型整数Bigint5. 近似值实型浮点数 Real6. 可变精度实型浮点数 Float(n)7. 精确小数型数据 Numeric(p.s)8. 精确小数型数据Decimal(p.s) 或 Dec(p.s)/2874.1.3 字符型数据SQL Server 提供了Char(n)、Varchar(n)和Text 三种ASCII码字符型数据。1. 定长字符型 Char(n):按n个字节固定存放字符串,若不足 则补空格。2. 变长字符型Varchar(n):按不超过n个字节的实际长度存放 字符串。

4、3. 文本类型 Text:当存储字符型数据超过8000字节时,可选 择Text数据类型。/288注意:1. 字符型数据一个英文符号占1个字节,汉字占2个字节。 2. 字符型字符串常量必须用单引号括起来。 3. Char、Varchar数据类型若不指定长度n,默认为1个字节。 4. 若实际字符串长度超过指定的n个字节,用局部变量存储时截取字符串前n个字节。 5. 可以在企业管理器中直接输入到数据表中,但输入的字符串长度超过字段指定长度时系统不接受,也不会自动截取。 6.在用INSERT 或UPDATE语句为数据表字符型 字段 输入,更新字符串时,如果超过n字节,则系统报错。/2894.1.5 日

5、期/时间型数据SQL Server 提供了Smalldatetime和Datetime两 种日期/时间的数据类型。1. 短日期/时间型 Smalldatetime占4个字节固定长度的存放,存放 1900/1/12079/6/6的日期时间,精确到分钟。2. 基本日期/时间型 Datetime占8个字节固定长度的存放,存放 1753/1/19999/12/31的日期时间,精确到千分之 一秒。/2810注意:1. 日期/时间型常量必须用单引号括起来。2. 用户在没有指定小时以下精确的时间数据时,自动设置日期/时间型数据的时间为00:00:00。3. 数据库中默认的日期格式为“年-月-日”,也可以使用

6、“月-日-年”或“日-月-年”。(年/月/日)4. 如果使用“日-月-年”或“日/月/年”,系统不能区分时默认按“月-日-年”处理。/28114.1.6 货币型数据SQL Server 提供了Smallmoney和Money的数据 类型。1. 短货币型 Smallmoney占4个字节,前2个字节是整数部分,后2个字节为小数部 分。2. 基本货币型 Money占8个字节,前4个字节是整数部分,后4个字节为小数部 分。Money 或 Smallmoney 类型是数值常量,应加货币符号$ 前缀,负数时加后缀$./28124.1.7 位类型数据1. 只能存放0、1和NULL,一般用于逻辑判断2. 占1

7、位二进制内存,如果一个数据表中有8个以下 的位类型字段,系统用一个字节存储所有这些字 段,超过8个不足16个用2个字节存放。3. 位类型数据输入任意的非0值时,都按1处理。/28134.1.9 图像、文本型数据的存储方式1. 存储文本、图像等大型数据时,可使用Text、 Ntext和Image三种数据类型。这三种数据类型的 数据量比较大。2. 使用系统存储过程sp_tableoption指定文本或图像 数据是否在表的行中存储:语法格式:sp_tableoption 表名,text in row,true|false/2814说明:1. 当指定TRUE选项时,允许小型文本或图像数据直接在表的行中

8、存储,还可以指定数据大小的上限值,默认上限值是256字节。2. 当数据大小不超过上限值而且数据行有足够空间时,文本和图像会直接存储在行中。3. 若以上两个条件有一个不满足时,行中仍只存放指向数据存储位置的指针。/28154.1.10 局部变量的定义与输出 1. 批处理:一个或多个SQL语句的集合,以GO语句 为结束标志。2. 局部变量:用户自定义的变量,用于临时存储各 种类型的数据。 3.定义局部变量语法格式:DECLARE 变量名 数据类型长度例: DECLARE x int,s decimal(8.4)说明:局部变量必须以开头以区别字段名变量,只在 一个批处理内有效./28164.1.10

9、 局部变量的定义与输出 4. 局部变量的赋值语法格式:SET 局部变量=表达式5. 显示输出局部变量语法格式:PRINT 局部变量或表达式/28174.2 运算符与表达式4.2.1 算术运算符与表达式 算术运算符: +、-、*、/、% 4.2.2 逻辑类运算符与逻辑值表达式SQL的逻辑表达式取值有三个逻辑值:l TRUE(真)l FALSE(假)l UNKNOWN(不确定)/28184.2 运算符与表达式4.2.2 逻辑类运算符与逻辑值表达式1.比较运算符:,=,=,或!=,!,!=5且X10为假)X not between 5 and 10(则X10条件为真,X =5且X1and x5/28

10、214.2.2 逻辑类运算符与逻辑值表达式 5. 用于子查询的运算符 (1)列表比较运算符 ANY|ALL表达式格式:表达式 比较运算符 ANY(子查询的一列值)表达式 比较运算符 ALL(子查询的一列值)说明:只要有一个比较成立:ANY的结果为真只有全部比较都成立:ALL的结果为真 例:3+1ANY(1,2,3,4) T3+1ALL(1,2,3,4,5) F (2)记录存在逻辑运算符 notexists用于检查子查询返回的结果集中是否包含有记录, 若包含,则exists为真,否则为假。/28224.2.2 逻辑类运算符与逻辑值表达式6. 空值运算符:not is null条件表达式:表达式

11、not is null 说明:(1)is null 表示判断表达式的值是否等于空值,为空时 条件为真,否则为假。(1)Not is null 表示判断表达式的值是否不等于空值,不 为空时为真,否则为假。/28234.2.2 逻辑类运算符与逻辑值表达式7. 字符模糊匹配运算符:not like 通配符通配符种类:(1)%:代表0个或多个字符的任意字符串。(2)“-”:代表单个任意字符(3)“abcd”:代表指定字符中的任何一个单字符.(4)“abc”:代表不在指定字符中的任何一个单字符。(5)转义字符:在where子句后用 escape子句指定一个转义 字符,abc为字段名,查找所有以%开始的字

12、符。例:where abc like t%escape t /28244.2.3 字符串连接运算符连接运算符与字符串 表达式字符串表达式:字符串表达式1+字符串表达式2例:ABC+DEF,则结果是:ABCDEFABC+,+EFG 则结果是:ABC,EFG /28254.3 系统内置函数SQL的函数分为系统函数(内置函数)和用户自定义函数。4.3.1 数学函数函数功能说说明函数功能说说明Abs(x)求绝对值Ceiling (x)求不小于x的最 小整数 Asin(x)求反正弦值Floor(x )求不大于x的最 大整数 Acos(x)求反余弦值Sin(x)求x(弧度)的 正弦值 Exp(x)求ex的

13、指数Cos(x)求x (弧度)的 余弦值/28264.3 系统内置函数4.3.2 字符串函数函数功能说说明函数功能说说明ASCII(A)字符串A第一个字 符的ASCII码Len(A)去掉空格后A的 字符个数Char(x)ASCII码为 X的字 符Lower(A)大写变小写Charindex (A,B,sta rt)返回字符串B在 字符串A自 start后的其 实位置Ltrim(A, B)将字串A左端字 符B删掉,缺省 为删掉空格Left(A,x)从字符A的左端 取X个字符的子 串Space(x)得到有x个空 格的字符串/28274.3 系统内置函数4.3.3 日期时间函数l Dateadd(y

14、y|mm|dd,x,D):得到按第一个参数指定的项目 D+x的值dateadd(dd,20,2008-3-16)指定日期加20天l Datediff(yy|mm|dd,D1,D2):得到按第一个参数指定的项 目D2-D1的差值 .datediff(yy,1960-3-16,getdate()可以 根据出生日期得到当前的年龄l Day(D):得到D的日期数.l Getdate():得到系统的日期和时间.l Month(D):得到D的月份数.l Year(D): 得到D的年份数./28284.3 系统内置函数4.3.4 类型转换函数l Cast(表达式 as 数据类型长度)将表达式的值转换成指定的“数据类型”。l Convert(数据类型长度,表达式,style):按style格式将表达式的值转换成指定的“数据类型”。例:根据出生年月,求年龄。Cast(year(1990-3-7)as char(4)_+年出生的 人是+cast(datediff(yy,1990-3- 7),getdate()as char(2)+岁

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号