第4章 数据表的创建与操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型决定了数据的存储格式、长度、精度等属性。SQL Server为我们提供了多达26种的丰富数据类型,用户还可以自己定义 数据类型(见第7章)。
4.1 数据类型
4.1.1、二进制数据
SQL Server用binary、varbinary 和image三种数据类型来存储二 进制数据。二进制类型可用于存储声音图像等数字类型的数据。
5.近似值实型浮点数 real 占4字节固定长度内存,最多7位有效数字,范 围从-3.40E+38到1.79E+38。 6.可变精度实型浮点数 float(n) l 当n的取值为1-24时,数据精度是7位有效数字, 范围从-3.40E+38到1.79E+38,占4字节内存。 l 当n的取值为25-53时,精度是15位有效数字, 范围从-1.79E+308到1.79E+308,占8字节内存。 l 实型浮点数常量可以直接使用科学记数法的指 数形式书写。
4.1.5日期/时间型数据
SQL Server提供的日期/时间数据类型可存储日 期和时间的组合数据。以日期/时间类型存储日期 或时间数据比字符型更简单,因为SQL Server提供 了一系列专门处理日期和时间的函数来处理这类数 据。若使用字符型存储日期和时间,计算机不能识 别,也不能自动对这些数据按照日期和时间进行处 理。 SQL Server提供了Smalldatetime和Datetime两 种日期/时间的数据类型。 1.短日期/时间型 Smalldatetime 占4个字节固定长度的内存,存放1900年1月1日 到2079年6月6日的日期时间,可以精确到分。
2.基本日期/时间型 Datetime
占8个字节固定长度的内存,存放1753年1月1日到9999年 12月31日的日期时间,可以精确到千分之一秒,即0.001s。 注意: l 日期时间型常量与字符串常量相同必须使用单引号括起来。 l SQL Server在用户没有指定小时以下精确的时间数据时, 自动设置Datetime或Smalldatetime数据的时间为00:00:00。 l 数据库中默认的日期格式为“年-月-日”,输入时可使用 ‘年/月/日’或‘年-月-日’,也可以使用‘月/日/年’、 ‘月-日-年’、‘日/月/年’或‘日-月-年’。 l 如果使用‘日/月/年’或‘日-月-年’,系统不能区分时 默认按“月-日-年”处理。
1、定长二进制 binary(n)
按n个字节的固定长度存放二进制数据,最大长度为8K字节,即 1≤n≤8000。 若实际数据不足n个字节,则在数据尾部加0补足n个字节。
2、变长二进制 varbinary(n)
按不超过n个字节的实际长度存放二进制数据,最大长度8K字节, 即1≤n≤8000。 若实际数据不足n个字节,按实际长度存储数据,不补充加0;
第4章 数据表的创建与操作
• • 学习目的与要求 数据表是数据库中最重要的对象,数据库的全部数据都存储在不同的数 据表中,因而数据表的设计成功与否是数据库设计的关键,将直接影响 到数据库使用的合理有效。了解SQL Server数据库系统,掌握数据表的 数据类型、运算符与表达式、常用系统函数是创建数据库必备的基础知 识。数据表及约束对象的创建以及数据的输入更新是创建数据库的重要 环节。通过本章学习,读者应熟悉并掌握SQL Server数据库的数据类型、 表达式和常用内置函数,掌握数据表及约束对象的创建、修改、删除以 及数据的输入、更新、删除等操作,独立创建《电脑器材销售管理》 diannaoxs数据库的各个数据表。
【例4-2】字符型字符串‘abcdABCD我们学习’ 共12个字符占16字节。 若定义数据类型为char(20)则存储为: ‘abcdABCD我们学习 ’ 若定义数据类型为varchar(20)则按实际长度 存储为: ‘abcdABCD我们学习’ 若定义数据类型为char(10)或varchar(10), 则在局部变量中存储为: ‘abcdABCD我’ 存储到数据表字段中时,系统提示“将截断 字符串或二进制数据”不能保存该数据。
第4章 数据表的创建与操作
第一节 数据类型
第4章 数据Baidu Nhomakorabea的创建与操作
• • • • • • • • • 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 数据类型 运算符与表达式 系统内置函数 用SSMS创建数据表及约束对象 用T-SQL语句创建数据表及约束对象 查看表信息、输入数据、编辑和删除记录 数据表及约束对象的删除 数据库应用实例《电脑器材销售管理》的数据表 实训要求与习题
4.1.4统一字符型数据 统一字符型也称为宽字符型,采用Unicode字符集,包括了世界上所有语言符号,
一个英文符号或一个汉字都占用2个字节的内存。前127个字符为ASC码字符。 SQL Server提供了Nchar(n)、Nvarchar(n)和Ntext三种统一字符型数据。 1.定长统一字符型 Nchar(n) 按n个字符的固定长度存放字符串,每个字符占用2个字节,长度范围1≤n≤4000; 若实际字符个数小于最大长度n,则尾部填充空格按n个字符存储。 2.变长统一字符型 Nvarchar(n) 按不超过n个字符的实际长度存放字符串,可指定最大字符数为1≤n≤4000; 若实际字符个数小于n,则按字符串实际长度占用存储空间,不填充空格。
4.1.2、数值型数据 SQL Server数值型数据共8种,整型4种,实型4种。
1.字节型整数 TinyInt 占1个字节固定长度内存,可存储0-255范围内的任意无符号整数。 2.短整型整数 smallInt 占2字节固定长度内存,最高位为符号位,可存储-32768–32767(215~215-1)的任意整数。 3.基本整型整数 Int 或Integer 占4字节固定长度内存,高位为符号位,可存储-21474836482147483647(-231-231-1)范围内的任意整数。 4.长整型整数 Bigint 占8字节固定长度内存,高位为符号位,可存储-263到263-1范围内的 任意整据。 注意:整型数据可以在较少字节里存储精确的整型数字,存储效率 高,不可能出现小数的数据应尽量选用整数类型。
8.精确小数型数据 Decimal(p,s)
或
Dec(p,s)
该类型数据与Numeric(p,s)类型用法相同,所不同的是 Decimal(p,s)不能用于数据表的identity字段。
4.1.3字符型数据 SQL Server提供了Char(n)、Varchar(n)和Text三种ASC
码字符型数据。 1.定长字符型 Char(n) 按n个字节的固定长度存放字符串,每个字符占用一个字 节,长度范围1≤n≤8000; 若实际字符串长度小于n,则尾部填充空格按n个字节的 字符串存储。 2.变长字符型 Varchar(n) 按不超过n个字节的实际长度存放字符串,可指定最大长 度为1≤n≤8000; 若实际字符串长度小于n,则按字串实际长度存储,不填 充空格。 当存储的字符串长度不固定时,使用Varchar数据类型可 以有效地节省空间。
【例4-3】字符串‘abcdABCD我们学习’作 为统一字符型共12个字符占24字节。 若定义数据类型为Nchar(14)则存储为: ‘abcdABCD我们学习 ’ 若定义数据类型为Nvarchar(14)则按实际字 符数存储为: ‘abcdABCD我们学习’ 若定义数据类型为Nchar(10)或Nvarchar(10), 则在局部变量中存储为: ‘abcdABCD我们’ 存储到数据表字段中时,系统提示“将截断 字符串或二进制数据”不能保存该数据。
3.文本类型 Text Text类型存储的是可变长度的字符数据类型,最大长度为231-1字节
2GB的数据。当存储超过8000字节时,可选择Text数据类型。 l 字符型数据采用ASC码字符集,英文符号占1个字节,汉字占2个字节。 l 字符型字符串常量必须使用单引号括起来。 l Char、Varchar数据类型若不指定长度,默认为1字节。 l 若实际字符串长度超过指定的n个字节,用局部变量存储时只截取字 符串前n个字节,其余字符舍掉。 l 字符型字符串数据可以在SSMS中直接输入到数据表中,但输入的字 符串长度超过字段指定长度时系统不接受,也不会自动截取。 l 在用INSERT或UPDATE为数据表字符型字段输入、更新字符串时,如 果超过n字节则系统提示“将截断字符串或二进制数据”并终止命令执 行,不能保存该数据。
7.精确小数型数据 Numeric(p,s)
l p指定总位数(不含小数点),p的取值范围1≤p≤38。即 最多可达38位有效数字,不使用指数的科学记数法表示,但 取值范围必须在-1038到1038-1之间。 l s指定其中的小数位数,s的取值范围0≤s≤p。 l numeric型数据在数据表里可带identity关键字(自动增 长字段)。 l numeric型数据所占的存储空间随精度的不同而不同,一 般说来对应关系为: p的取值范围 数据所占内存字节数 1 - 9 5 10-19 9 20-28 13 29-38 17 8.精确小数型数据 Decimal(p,s) 或 Dec(p,s) 该类型数据与Numeric(p,s)类型用法相同,所不同的是 Decimal(p,s)不能用于数据表的identity字段。
3.统一字符文本类型 Ntext
Ntext存储的是可变长度的双字节字符数据类型,最 多可以存储(230-1)/2个字符。 l 统一字符型数据长度n为“字符”个数,所占字节数 为2*n。 l 统一字符型字符串常量必须使用单引号括起来。 l Nchar、Nvarchar数据类型若不指定长度n,默认为1 个字符(2个字节)。 l 若实际字符串长度超过指定的n个字符,用局部变量 存储时只截取字符串前n个字符,其余字符舍掉。 l 统一字符型数据可以在SSMS中直接输入到数据表中, 但输入的字符个数超过字段长度时则系统不接受。 l 在用INSERT或UPDATE为数据表统一字符型字段输入、 更新字符串时,若超过n个字符则系统提示“将截断字 符串或二进制数据”并终止命令执行,不能保存该数据。
4.1.6货币型数据
SQL Server提供了Smallmoney和Money两种货币型数据。 1.短货币型 Smallmoney 该类型占4个字节固定长度的内存,实际是由2个2字节的整数构成, 前2个字节为货币值的整数部分,后2个字节为货币值的小数部分。货币 值的范围从-214748.3648到+214748.3647,可以精确到万分之一货币单 位。 2.基本货币型 Money 该类型占8个字节固定长度的内存,由2个4字节的整数构成,前4个字 节为货币值的整数部分,后4个字节表示货币值的小数部分。货币值的 范围从-263到263-1,可精确到万分之一货币单位。 Money或Smallmoney类型的数值常量,应加货币符号$前缀,负数时加 后缀$。 如:$222.222 , -333.333$
【例4-1】二进制数据1aa2bb3cc4共40位5个 字节,可表示为0x1aa2bb3cc4 若定义数据类型为binary(6)则数据后加0按6 字节存储为:0x1aa2bb3cc400 若定义数据类型为varbinary(6)则按实际数据 存储为:0x1aa2bb3cc4 若定义数据类型为binary(4)或varbinary(4), 则在局部变量中存储为:0x1aa2bb3c。 存储到数据表字段中时,系统提示“将截断字 符串或二进制数据”不能保存该数据。
什么是数据类型
3、图像二进制 Image 图像二进制可存储不超过231-1个字节的二进制数据, 比如文本文档、Excel图表以及图像数据(包 括.GIF、.BMP、.JPEG文件)等。 注意: l 二进制数据常量不允许加引号,默认用十进制书写, 如1234、1011均视为十进制常量,如果使用十六进制则 必须加0x前缀。输出显示默认采用十六进制。 l 若实际数据二进制长度超过指定的n个字节,用局部变 量存储时只截取二进制的前n个字节,其余二进制位舍掉。 l 数据库中二进制字段的数据不能在数据表中直接输入, 即“无法编辑该单元”。 l 在用INSERT或UPDATE为数据表二进制字段输入、更 新数据时,如果超过n字节,则系统提示“将截断字符串 或二进制数据”并终止命令执行,不能保存该数据。