数据库第6章-表和表数据操作课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库第6章-表和表数据操作课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 数据 操作 课件
- 资源描述:
-
1、第第6章章 表和表表和表数据数据操作操作SQL Server 2012的数据库是各种数据库逻辑对象的容器。用户收集、整理、存储的具体数据信息都存储在数据库的表对象中。表是数据库最基本、最重要、最核心的对象,每个表代表一类对其用户有意义的对象。本章主要介绍SQL Server 2012的表的创建、修改、删除,以及表数据的操作。6.1 表概念表概念表是数据库存放数据的对象,表必须建在某一数据库中,不能单独存在,也不以操作系统文件形式存在。表中数据的组织形式如同Excel电子表格,由行、列和表头组成。每行表示一条记录(或元组),每列表示一个字段(或属性)。其中第一行是表的属性列部分,又称为表头。行和
2、列的交叉称为数据项(或分量),其逻辑结构如图6-1所示。6.1.1 表结构表结构SQL Server 2012的表,都必须有一个名字,以标识该表,称为表名。表名在某一个数据库实例中必须惟一。数据库中的表数仅受数据库中允许的对象数的限制。行的顺序可以是任意的,每一行代表一条记录,是对某个实体的一个完整的描述,一般是按照插入的先后顺序存储的。表的行数仅受服务器的存储容量的限制。列的顺序也可以是任意的。对每一个标准的表,用户最多可以定义1024列,任何列也都必须有一个名字,称为列名(或属性名)。在一个表中,列名必须惟一,而且必须指明数据类型。表的行数仅受服务器的存储空间限制。6.1.2 表类型表类型
3、在SQL Server 2012中,除了由用户定义的基本表的标准角色以外,还提供了已分区表、临时表、系统表、宽表,这些表在数据库中起着特殊的作用。(1)基本表基本表就是由用户在数据库里创建的,用以存放数据的表,也称为用户定义的永久表。如果不特殊说明,本书介绍的表都是用户定义的基本表。(2)已分区表已分区表是将数据水平划分为多个单元的表,这些单元可以分布到数据库中的多个文件组中。在维护整个集合的完整性时,使用分区可以快速而有效地访问或管理数据子集,从而使大型表或索引更易于管理。(3)临时表临时表存储在tempdb系统数据库中。临时表有两种类型:本地表和全局表。它们在名称、可见性以及可用性上有区别
4、。本地临时表的名称以单个数字符号(#)打头;它们仅对当前的用户连接是可见的;当用户从SQL Server实例断开连接时被删除。全局临时表的名称以两个数字符号(#)打头,创建后对任何用户都是可见的,当所有引用该表的用户从SQL Server实例断开连接时将被删除。6.1.2 表类型表类型(4)系统表SQL Server将定义服务器配置及其所有表的数据存储在一组特殊的表中,这组表称为系统表。用户不能直接查询或更新系统表。可以通过系统视图查看系统表中的信息。任何用户都不应直接更改系统表。例如,不要尝试使用DELETE、UPDATE、INSERT语句或用户定义的触发器修改系统表。允许在系统表中引用所记
5、录的列。然而,系统表中的许多列都未被记录。不应编写应用程序直接查询未记录的列。相反,若要检索存储在系统表中的信息,应用程序应使用下列组件之一:系统存储过程T-SQL语句和函数SQL Server管理对象(SMO)复制管理对象(RMO)数据库API目录函数系统表又可以分为备份还原表、变更数据捕获表、数据维护计划表、SQL Server扩展事件表、日志传送表、复制表等。这些系统表记录了系统的信息。(5)宽表宽表使用稀疏咧,从而将表可以包含的总列数增大为30000列。稀疏列是对Null值采用优化的存储方式的普通列。稀疏列减少了Null值的空间需求,但代价是检索非Null值的开销增加。宽表已定义了一个
6、列集,列集是一种非类型化的XML表示形式,它将表的所有稀疏列合并为一种结构化的输出。6.1.3 数据类型数据类型在SQL Server中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。数据类型是一种属性,用于指定对象可保存的数据的类型。SQL Server提供了的数据类型分为系统数据类型和用户定义数据类型。本节只介绍系统数据类型。SQL Server 2012提供了大量的系统数据类型。见表6-1。表6-1 SQL Server 2012系统数据类型数据类型数据类型符号标识符号标识精确数据精确数据bigint、bit、decimal、int、money、numeric smallint
7、 smallmoney、tinyint近似数据近似数据float、real日期和时间日期和时间date、datetime、datetime2、datetimeoffse、smalldatetime、time字符串字符串char、text、varcharUnicode字符字符nchar、ntext、nvarchar二进制字符串二进制字符串binary、image、varbinary其他数据类型其他数据类型cursor、hierarchyid、sql_variant、table、timestamp、uniqueidentifier、xml、空间类型、空间类型6.1.3 数据类型数据类型在介绍数据类
8、型时,涉及到3个概念:精度、小数位数和存储长度。精度是指数值数据中所存储的十进制数据的总范围。小数位数是指数值数据中小数点右边可以有的数字位数的最大值。长度是指存储数据所用的字节数。1.精确数据类型精确数据类型精确数据类型用于存储精确的数据,又分为整数类型、定点数据类型、货币数据类型和位数据类型。整数类型只表示精确的整数。见表6-2。表6-2 整数数据类型符号标识符号标识范围范围存储长度存储长度bigint-263(-9,223,372,036,854,775,808)到到 263-1(9,223,372,036,854,775,807)8字节字节int-231(-2,147,483,648)
9、到到 231-1(2,147,483,647)4字节字节smallint-215(-32,768)到到 215-1(32,767)2字节字节tinyint0 到到 2551字节字节6.1.3 数据类型数据类型定点类型也称为带固定精度和小数位数的数值数据类型,由整数部分和小数部分组成。包括decimal(p,s)类型和numeric(p,s)类型。使用最大精度时,有效值从-1038+1到1038-1。numeric在功能上等价于decimal。p(精度)最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从1到最大精度38之间的值。默认精度为18。s(小数位数)小数点右边可
10、以存储的十进制数字的最大位数。小数位数必须是从0到p之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为0。因此,0=s=p。最大存储大小基于精度而变化。货币数据类型是代表货币或货币值的数据类型,包括money和smallmoney数据类型,它们精确到所代表的货币单位的万分之一。见表6-3。表6-3 整数数据类型符号标识符号标识范围范围存储长度存储长度money-922,337,203,685,477.5808到到922,337,203,685,477.58078字节字节smallmoney-214,748.3648到到214,748.36474字节字节6.1.3 数据类型数据类型位数
11、据类型就是bit型,可以取值为1、0或NULL(空值)。SQL Server可优化bit列的存储。如果表中的列为8bit或更少,则这些列作为1个字节存储。如果列为9到16bit,则这些列作为2个字节存储,以此类推。字符串值TRUE和FALSE可以转换为bit值1和0。2.近似数据类型近似数据类型近似数据类型也称为浮点数值数据类型,采用科学计数法存储十进制小数,用于表示浮点数值数据的大致数值数据类型。浮点数据为近似值。见表6-4。表6-4 整数数据类型float (n)其中n为用于存储float数值尾数的位数(以科学记数法表示),因此可以确定精度和存储大小。如果指定了n,则它必须是介于1和53之
12、间的某个值。n的默认值为53。1到24精度为7位,存储长度为4字节。25到53精度为15位,存储长度为8字节。符号标识符号标识范围范围存储长度存储长度float-1.79E+308至至-2.23E-308、0以及以及2.23E-308至至1.79E+308取决于取决于n的值的值real-3.40E+38至至-1.18E-38、0以及以及1.18E-38至至3.40E+384 字节字节6.1.3 数据类型数据类型3.日期和时间类型日期和时间类型日期和时间类型用于存储日期、时间或日期和时间的结合体数据。见表6-5。表6-5 日期和时间类型符号标识符号标识默认格式默认格式范围范围精确度精确度存储长度
13、存储长度timehh:mm:ss.nnnnnnn00:00:00.0000000到23:59:59.9999999100纳秒3-5字节字节dateYYYY-MM-DD0001-01-01到9999-12-311天3字节字节datetimeYYYY-MM-DD hh:mm:ss.nnn1753-01-01到9999-12-310.00333秒8字节字节datetime2YYYY-MM-DD hh:mm:ss.nnnnnnn0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999100纳秒6-8字节字节smalldatetimeYYYY-MM-
14、DD hh:mm:ss1900-01-01到2079-06-061分钟4字节字节datetimeoffseYYYY-MM-DD hh:mm:ss.nnnnnnn+|-hh:mm0001-01-01 00:00:00.0000000到到9999-12-31 23:59:59.9999999(以(以UTC时间时间表示)表示)100纳秒纳秒8-10字节字节6.1.3 数据类型数据类型4.字符串类型字符串类型字符串类型和Unicode字符串类型可以统称为字符类型。字符串类型用来存储各种非Unicode的字母、数字和符号组成的字符串。char(n)类型固定长度,长度为n个字节。n的取值范围为1至8000
15、,存储大小是n个字节。varchar(n|max)类型可变长度,n的取值范围为1至8000,max指示最大存储大小是231-1个字节。存储大小是输入数据的实际长度加2个字节。所输入数据的长度可以为0个字符。text类型存储服务器代码页中长度可变的非Unicode数据,最大长度为231-1(2,147,483,647)个字符。当服务器代码页使用双字节字符时,存储仍是2,147,483,647字节。根据字符串,存储大小可能小于2,147,483,647字节。5.Unicode字符类型字符类型Unicode字符类型用来存储各种Unicode的字母、数字和符号组成的字符。nchar(n)存储n个字符的
16、固定长度的Unicode字符数据。n值必须在1到4,000之间(含)。存储大小为两倍n字节。nvarchar(n|max)存储可变长度Unicode字符数据。n值在1到4,000之间(含)。max指示最大存储大小为231-1字节。存储大小是所输入字符个数的两倍+2个字节。所输入数据的长度可以为0个字符。ntext类型存储长度可变的Unicode数据,最大长度为230-1(1,073,741,823)个字符。存储大小是所输入字符个数的两倍(以字节为单位)。6.1.3 数据类型数据类型6.二进制字符串类型二进制字符串类型二进制数据类型表示的是位数据流,如较长的备注、日志信息等。包括固定长度或可变长
17、度的binary数据类型,以及image类型。binary(n)是长度为n字节的固定长度二进制数据,其中n是从1到8,000的值。存储大小为n字节。varbinary(n|max)是可变长度二进制数据。n可以是从1到8,000之间的值。max指示最大存储大小为231-1字节。存储大小为所输入数据的实际长度+2个字节。所输入数据的长度可以是0字节。Image数据类型是长度可变的二进制数据,从0到231-1(2,147,483,647)个字节。image数据类型不只用来保存图像,也可以用户保存文档等。7.其他数据类型类型其他数据类型类型其他数据类型使用频率不高。例如cursor是变量或存储过程的O
18、UTPUT参数的一种数据类型,这些参数包含对游标的引用。sql_variant用于存储除text、ntex、timage、timestamp和sql_variant外的其他任何合法的数据。8.xml数据类型数据类型XML(可扩展标记语言),是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合Internet传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。6.2 创建表创建表创建表的实质就是定义表结构。在SQL Server 2012中提供了两种创建表的方式,一种
19、是管理工具界面方式创建,另一种是命令行方式创建。本章将以COLLEGE数据库和PUBLISH数据库中表的操作为例,介绍表的基本操作,包括创建、修改、删除表,以及对表数据操作等。首先创建两个数据库,COLLEGE数据库和PUBLISH数据库。6.2.1 管理工具界面方式创建表管理工具界面方式创建表COLLEGE数据库有4个表,分别是Student表、School表、Course表、Mark表。表结构基本说明见表6-6、表6-7、表6-8、表6-9。表6-6 Student表列名列名数据类型数据类型允许允许Null值值约束约束说明说明StudentIDnchar(10)不允许主键学号属性列学号属性
20、列Namenchar(6)不允许 姓名属性列姓名属性列Sexnchar(2)允许 性别属性列性别属性列Birthdaysmalldatetime允许 出生日期属性列出生日期属性列SchoolIDnchar(2)允许允许 学院编号属性列学院编号属性列6.2.1 管理工具界面方式创建表管理工具界面方式创建表在“对象资源管理器”中,展开数据库COLLEGE,进一步展开表对象,新建的数据库表对象中,初始时已经有系统表和FileTables两个对象。与SQL Server以前版本不同的是,系统表中是空的,没有一系列系统表存在。选择“表”对象,选择右键菜单“新建表”选项,如图6-3所示。之后,进入“表结构
21、设计器”窗口,如图6-4所示。6.2.1 管理工具界面方式创建表管理工具界面方式创建表表设计器主体分为上下两部分:列常规和列属性子窗口。初始时都为空。在列常规子窗口中,用户可以设置列名、列的数据类型、允许Null值(是否允许该列取空值)等常规属性。列属性子窗口可以设置列的其他更为复杂的操作。首先新建Student表。按照表6-6提示,在列常规子窗口中输入列名,设置列的数据类型,允许Null值等常规属性。6.2.1 管理工具界面方式创建表管理工具界面方式创建表通常,每个表都必须设置主键。选择要设置为主键的StudentID列,选择右键菜单“设置主键”选项。如图6-7所示。设置成功,该列左边出现标
22、识一个钥匙图标,表示该列为主键。如图6-8所示。6.2.1 管理工具界面方式创建表管理工具界面方式创建表虽然一个表只能有一个主键,但主键可以是多个列的组合。这时需要键盘的Ctrl键和Shift键与鼠标组合使用。Ctrl键与鼠标组合使用是断续选择,Shift键与鼠标组合使用是连续选择。例如Mark表的主键就是CourseID与StudentID的组合。就需要Ctrl键或Shift键与鼠标组合使用设置。如图6-9、如图6-10所示。6.2.1 管理工具界面方式创建表管理工具界面方式创建表一切设置完毕,选择表设计器右上角的关闭按钮,或选择系统菜单“文件”的“保存”选项,或单击工具栏上的保存按钮,出现
展开阅读全文