资源简介 (共94张PPT)教学单元1.6第6章 表的创建与操作( SSMS )案例1-6-1 教务管理表的创建与管理案例1-6-2 教务管理表的操作表的创建与操作 学习导航表的创建与操作 知识框架使用SSMS交互方式单元1.6表的创建与操作(SSMS)能力目标能够根据数据库逻辑设计使用SSMS创建表能够根据数据库应用系统的功能需求使用SSMS对表进行插入、删除数据行以及更新数据的操作能够根据数据库应用系统的功能需求使用SSMS创建合适的索引能够根据数据库逻辑设计使用SSMS创建并管理关系图能够阅读并理解表有关的英文词汇知识目标SQL Server 2012表的基本知识使用SSMS创建、修改和删除表的操作方法使用SSMS插入、删除数据行以及更新数据的操作方法索引的基本知识使用SSMS创建和删除索引的操作方法使用SSMS创建关系图表有关的英文词汇素质目标能够规范地操作数据,培养严谨的科学态度通过以组为单位组织数据,培养良好的工作任务达成、团队合作的素养,以及培养良好的沟通能力培养较强的质量意识、经济意识和时间意识,能够按时完成工作任务单元1.6表的创建与操作(SSMS)案例1教务管理系统案例1-6-1教务管理表的创建与管理(SSMS)案例1-6-2教务管理表的操作(SSMS)工作任务单元1.6表的创建与操作(SSMS)表概述一使用SSMS创建与管理表二使用SSMS操作表三使用SSMS创建与管理索引四1关系图的创建与管理五单元1.6表的创建与操作(SSMS)一、表概述表是数据库对象,用于存储逻辑设计得到的关系模型关系模型中的每一个关系(二维表)对应数据库中的一个基本表(简称表)表是关系模型的实现(数据结构、数据操作、数据完整性约束)表的定义(定义列名和数据类型等)表的操作(插入行、更新数据、删除行)表的完整性约束(主键、外键、默认值、CHECK等)概 念 模 型关 系 模 型SQL Server某些DBMS实体集/联系集(Entity set/Relationship set)关系(Relation)二维表(Bivariate Table)表(Table)基表(Base Table)表(Table)实体实例/联系实例Entity/Relationship)元组(Tuple)行(Row)记录(Record)属性(Attribute)属性(Attribute)列(Column)字段(Field)主键/码(Primary Key)主键(Primary Key)主键(Primary Key)主键(Primary Key)外键/外码(Foreign Key)外键(Foreign Key)外键(Foreign Key)外键(Foreign Key)父实体与子实体被参照关系与参照关系父关系与子关系主关系与从关系主键表与外键表父表与子表主表与从表概念模型、关系模型和表之间的术语对照表一、表概述表的构成1表的类型2T-SQL的数据类型3SQL Server表的完整性约束4一、表概述(一)表的构成表主要由列和行构成列:每一列用来保存关系的属性,也称为字段行:每一行用来保存关系的元组,也称为数据行或记录例如:教务管理数据库EDUC中的学生Student表。(一)表的构成表的数据库对象列(Column)主键(PK)外键(FK)约束(Check)触发器(Trigger)索引(Index)…标准表一般应用(总列数为1 024列)。已分区表当表很大时,可以水平地把数据分割成一些单元,放在同一个数据库的多个文件组中。用户可以通过分区快速地访问和管理数据的某部分子集而不是整个数据表,从而便于管理大表和索引。临时表(存储在系统数据库tempdb中)局部临时表 :仅对连接SQL Server实例的当前用户是可见的,当用户从SQL Server实例断开连接时局部临时表被删除。全局临时表 :对所有的用户和连接都是可见的,当所有引用该表的用户从SQL Server实例断开连接时才会被删除。(二)表的类型系统表用来保存一些服务器配置信息数据,用户不能直接查看和修改系统表,只有通过专门的管理员连接才能查看和修改。不同版本的数据库管理系统的系统表一般不同,在升级数据库管理系统时,一些应用系统表的应用可能需要重新改写。宽表宽表是定义了列集的表。宽表使用稀疏列,从而将表可以包含的总列数增大为30000列。索引数和统计信息数也分别增大为1000和30000。宽表行的最大大小为8019字节。(二)表的类型文件表(FileTables)SQL Server 2012新增功能之一。支持Windows文件命名空间以及Windows应用程序对存储在SQL Server中的文件数据的兼容性。可以在SQL Server中将文件和文档存储在称为FileTables的特殊表中。Windows应用程序访问这些文件和文档如同它们存储在文件系统中一样,而不必对Windows客户端应用程序进行任何更改。(二)表的类型(三)T-SQL的数据类型SQL Server 2012中常用的系统(内置)数据类型:数据类型分类系统数据类型数据类型分类系统数据类型二进制(图像、视频、音乐等)bit字符(单字节字符)char[(n)]binary[(n)]varchar[(n|max)]varbinary[(n|max))]Unicode(双字节字符)nchar[(n)]精确数字精确整数bigintnvarchar[(n|max)]int日期和时间datetime2smallintdatetimeoffsettinyintdate精确小数decimal[(p[,s])]time唯一标识rowversion numeric[(p[,s])]uniqueidentifier近似数字float[(n)]树形结构hierarchyidreal用户自定义用户自行命名货币money空间数据geometrysmallmoneygeography程序中的数据类型cursor,table,sql_variant扩展标记语言xml(四)SQL Server表的完整性约束实体完整性约束规则:PK检查:DBMS域完整性约束规则:类型、默认值、是否允许空值等检查:DBMS用户定义完整性约束规则:自定义约束、存储过程、函数等检查:DBMS回顾:关系的完整性约束参照完整性约束规则:FK检查:DBMS实体完整性约束主键:PRIMARY KEY标识列:IDENTITY唯一键:UNIQUE非空值:NOT NULL… …域完整性约束数据类型:Data Type非空值:NOT NULL默认值:DEFAULT检查:CHECK参照完整性约束外键:FOREIGN KEYSQL Server的DDL支持表的完整性约束(四)SQL Server表的完整性约束用户定义完整性约束自定义检查(CHECK)存储过程(STORED PROCEDURE)触发器(TRIGGER)自定义函数(FUNCTION)… …三个方面+用户自定义(四)SQL Server表的完整性约束单元1.6表的创建与操作(SSMS)表概述一使用SSMS创建与管理表二使用SSMS操作表三使用SSMS创建与管理索引四1关系图的创建与管理五二、使用SSMS创建与管理表案例1-6-1教务管理表的创建与管理根据案例1-3教务管理数据库逻辑设计得到的关系模型,在所创建的数据库“EDUC”中创建相应的表。为便于学习,仅在其中选择具有代表性的关系“Student”“Course”和“SC”创建相应的表,并对其属性进行适当简化。为关系“Student”增加一个入学录取分数属性“AScores”,为关系“Course”增加一个序号属性“No”工作任务Student(SID,Sname,Sex,Birthdate,Specialty,AScores) PK:SIDCourse(No,CID,Cname,Credit)PK:CIDSC(SID,CID,Scores)PK:SID+CID FK:SID,CID教务管理表3个关系模式二、使用SSMS创建与管理表使用SSMS创建表1使用SSMS修改表2使用SSMS删除表3二、使用SSMS创建与管理表(一)使用SSMS创建表创建主键约束创建唯一性约束创建外键约束创建检查约束保存表的定义创建表【例6-1】根据教务管理数据库的关系模型,创建表“Student”“Course”和“SC”,初步定义各表的列名、数据类型和非空值约束。在【对象资源管理器】窗口中:展开“数据库”下的EDUC节点,右击“表”节点,选择“新建表”命令,进入【表设计器】1.定义列名、数据类型和空值约束(一)使用SSMS创建表(一)使用SSMS创建表在【表设计器】中:第一列:输入列名第二列:选择数据类型第三列:选择是否允许Null值1.定义列名、数据类型和空值约束(一)使用SSMS创建表保存表定义:右击【文档】窗口中的【表设计器】标签,在弹出的快捷菜单中选择“保存”命令1.定义列名、数据类型和空值约束(一)使用SSMS创建表保存表定义:在弹出的【选择名称】对话框中输入表名“Student”1.定义列名、数据类型和空值约束创建课程表Course创建选课表SC(一)使用SSMS创建表二、使用SSMS创建与管理表使用SSMS创建表1使用SSMS修改表2使用SSMS删除表3(二)使用SSMS修改表使用【表设计器】修改表【例6-2】对于以上所创建的表“Student”“Course”和“SC”,定义标识列和完整性约束。打开【表设计器】在【对象资源管理器】窗口中,展开“数据库”→“EDUC”→“表”节点,右击要创建主键的表“Student”、“Course”和“SC”节点,从弹出的快捷菜单中选择“设计”命令。这时在【文档】窗口中打开【表设计器】,可对表进行进一步定义。(二)使用SSMS修改表1.定义标识列(IDENTITY)特点列的数据类型为不带小数的数值类型。在插入数据行操作时,该列的值由系统按标识增量的设置自动生成,不允许空值。列值不重复,具有唯一标识表中一行的作用,从而可以实现表的实体完整性。定义指定数据类型为整数类型并且不允许为空。设置(是标识)为“是”。设置标识种子,指表中第一行的值,默认值为1。设置标识增量,表示相邻两个标识值之间的增量,默认值为1。(二)使用SSMS修改表案例:对课程表“Course”,将其序号列“No”定义为标识列,使其按照自然数从1开始逐步增加1的规律自动编号。打开【表设计器】在【列属性】选项卡中数据类型为int标识规范为“是”标识种子为1标识增量为11.定义标识列(IDENTITY)(二)使用SSMS修改表2.定义默认值(DEFAULT)约束案例:对课程表“Student”,为专业列“Specialty”设置默认值“计算机信息管理”,即当未对列“Specialty”输入数据时,该列的值自动被赋予“计算机信息管理”。可实现数据的域完整性控制。在【表设计器】中单击【表设计器】上方的列“Specialty”(二)使用SSMS修改表2.定义默认值(DEFAULT)约束在【列属性】选项卡中在“默认值或绑定”文本框中输入‘计算机信息管理’字符串(二)使用SSMS修改表3.定义主键(PRIMARY KEY)约束案例:修改表“Student”“Course”“SC”的定义为表“Student”定义主键“SID”、为表“Course”定义主键“CID”、为表“SC”定义主键“SID+CID”。打开【表设计器】在【对象资源管理器】窗口中,展开“数据库”→“EDUC”→“表”节点,右击要创建主键的表“Student” “Course”和“SC”节点,从快捷菜单中选择“设计”命令。这时在【文档】窗口中打开【表设计器】,可对表进行进一步定义。(二)使用SSMS修改表在【表设计器】中选择某一列名SHIFT+单击选择连续的列名CTRL+单击选择不相邻的列名定义主键快捷菜单→“设置主键”命令工具栏→“设置主键”按钮主菜单“表设计器”→“设置主键”命令3.定义主键(PRIMARY KEY)约束(二)使用SSMS修改表3.定义主键(PRIMARY KEY)约束4.定义唯一键(UNIQUE)约束案例:为表定义唯一键约束在表“Course”中不允许有相同的课程名,若有同名课程则需加数字编号予以区别,则可为列“Cname”定义唯一性约束打开【索引/键】对话框右击 【表设计器】上方,从快捷菜单中选择“索引/键”命令或者单击工具栏“管理索引和键”按钮或选择主菜单“表设计器”→“索引/键”命令(二)使用SSMS修改表(二)使用SSMS修改表在【索引/键】对话框中单击“添加”按钮添加“主/唯一键或索引”;在“常规”栏的“类型”右边选择“唯一键”,单击“列”右边省略号按钮“…”4.定义唯一键(UNIQUE)约束(二)使用SSMS修改表在【索引列】对话框中在弹出【索引列】对话框中,选择列名“Cname”和排序规律ASC(升序)或DESC(降序),单击“确定”按钮4.定义唯一键(UNIQUE)约束(二)使用SSMS修改表5.定义外键(FOREIGN KEY)约束案例:为表定义外键约束SC表中的SID和CID设置为外键打开【外键关系】对话框右击 【表设计器】上方,从快捷菜单中选择“关系”命令或者单击工具栏“关系”按钮或选择主菜单“表设计器”→“关系”命令(二)使用SSMS修改表在【外键关系】对话框中单击“添加”按钮添加新的约束关系,设置“在创建或重新启用时检查现有数据”为“是”,对于在创建或重新启用约束之前就存在于表中的所有数据,指定其根据约束进行验证5.定义外键(FOREIGN KEY)约束(二)使用SSMS修改表在【外键关系】对话框中单击“表和列规范”左边的“+”号,再单击“表和列规范”内容框中右边的省略号(···)按钮(圆圈指示处)5.定义外键(FOREIGN KEY)约束(二)使用SSMS修改表在【表和列】对话框中选择外键表“SC”中的外键“SID(学号)”,选择主键表“Student”中的主键“SID(学号)”单击“确定”按钮5.定义外键(FOREIGN KEY)约束(二)使用SSMS修改表在【外键关系】对话框中将“强制外键约束”选项设置为“是”5.定义外键(FOREIGN KEY)约束(二)使用SSMS修改表在【外键关系】对话框中单击“更新规则” 下拉列表,设置为“不执行任何操作”单击“删除规则” 下拉列表,设置为“级联”5.定义外键(FOREIGN KEY)约束采用同样的方法添加外键CID(二)使用SSMS修改表5.定义外键(几点说明)在创建或重新启用时检查现有数据若将“在创建或重新启用时检查现有数据”的设置指定“是”,对于在创建或重新启用约束之前就存在于表中的所有数据,将根据约束进行验证。强制外键约束若将“强制外键约束”或“强制用于复制”设置为“是”,则能确保任何数据添加、更新或删除操作都不会违背参照关系。(二)使用SSMS修改表5.定义外键(几点说明)更新(Update)规则或删除(Delete)规范如果对主键表进行更新或删除一行数据的操作,检查主键表的主键是否被外键表的外键引用,分为以下两种情况。● 若没有被引用,则更新或删除。可以设置下列四种选项之一。① 无操作:拒绝更新或删除主键表。SQL Server将显示一条错误信息,告知用户不允许执行该操作。② 级联:级联更新或删除从表中相应的所有行。③ 设置NULL:将外键表中相对应的外键值改为空值NULL(如果可接受空值)。④ 设置默认值:如果外键表的所有外键列均已定义默认值,则将该值设置为列定义的默认值。(二)使用SSMS修改表6.定义检查(CHECK)约束案例:定义表“Student”的CHECK约束“Sex=‘男’ OR Sex=‘女’”打开【CHECK约束】对话框右击 【表设计器】上方,从快捷菜单中选择“CHECK约束”命令单击工具栏中的“管理CHECK约束”按钮选择主菜单“表设计器”→“CHECK约束”命令(二)使用SSMS修改表在【CHECK约束】对话框中单击“添加”按钮,添加“CHECK约束”;在“表达式”文本框中输入检查表达式“Sex='男' OR Sex='女'”6.定义检查(CHECK)约束二、使用SSMS创建与管理表使用SSMS创建表1使用SSMS修改表2使用SSMS删除表3(三)使用SSMS删除表在【对象资源管理器】窗口中展开“数据库”节点展开所选择的具体数据库节点,展开“表”节点右击要删除的表,选择“删除”命令或DELETE键删除表单元1.6表的创建与操作(SSMS)表概述一使用SSMS创建与管理表二使用SSMS操作表三使用SSMS创建与管理索引四1关系图的创建与管理五三、使用SSMS操作表案例1-6-2教务管理表的操作根据教务管理系统的功能需求,对数据库“EDUC”中所创建的表进行数据操作。工作任务使用SSMS插入数据行1使用SSMS更新数据2使用SSMS删除数据行3三、使用SSMS操作表(一)使用SSMS插入数据行【例6-3】为“EDUC”数据库的各表插入数据行。在【对象资源管理器】窗口中展开“数据库”→“EDUC”→“表”节点,分别右击表“Student”“Course”和“SC”节点,从快捷菜单中选择“编辑前200行”命令,在打开的【表编辑器】中插入数据行。在【表编辑器】中插入数据行(一)使用SSMS插入数据行【例6-3】为“EDUC”数据库的各表插入数据行。在【对象资源管理器】窗口中展开“数据库”→“EDUC”→“表”节点,分别用右击表“Student”“Course”和“SC”节点,从快捷菜单中选择“编辑前200行”命令,在打开的【表编辑器】中插入数据行。在【表编辑器】中插入数据行(一)使用SSMS插入数据行在【表编辑器】中编辑表Sudent(一)使用SSMS插入数据行在【表编辑器】中编辑表Course(一)使用SSMS插入数据行在【表编辑器】中编辑表SC三、使用SSMS操作表使用SSMS插入数据行1使用SSMS更新数据2使用SSMS删除数据行3(二)使用SSMS更新数据在【对象资源管理器】窗口中展开“数据库”→“EDUC”→“表”节点,分别右击表“Student”“Course”和“SC”节点,从快捷菜单中选择“编辑前200行”命令,在打开的【表编辑器】中更新数据。在【表编辑器】中更新数据(二)使用SSMS更新数据在SSMS中选择主菜单“工具”→“选项”命令在弹出的【选项】对话框中选择“SQL Server对象资源管理器”→“命令”页, 将“编辑前<n>行”命令的值修改为0 在【表编辑器】中编辑多行数据(二)使用SSMS更新数据在【表编辑器】中编辑多行数据三、使用SSMS操作表使用SSMS添加数据行1使用SSMS更新数据2使用SSMS删除数据行3(三)使用SSMS删除数据行在【对象资源管理器】窗口中展开“数据库”→“EDUC”→“表”节点,分别右击表“Student”“Course”和“SC”节点,从快捷菜单中选择“编辑前200行/所有行”命令,在打开的【表编辑器】,选择要删除的数据行,右击要删除的行,选择快捷菜单或主菜单“编辑”下的“删除”命令即可删除数据行。在【表编辑器】中删除数据行(三)使用SSMS删除数据行在【表编辑器】中删除数据行单元1.6表的创建与操作(SSMS)表概述一使用SSMS创建与管理表二使用SSMS操作表三使用SSMS创建与管理索引四1关系图的创建与管理五四、使用SSMS创建与管理索引索引概述1使用SSMS创建索引2使用SSMS删除索引3(一)索引概述索引基本知识索引是基于表或视图的一个或者多个列的值,按照一定的排列顺序有效组织表数据的方式。用户可以通过合理地创建索引大大提高数据库的查询(选择、统计、排序和连接等)速度索引也可以保证列的唯一性,从而确保表中数据的完整性索引中包含键值,这些键值存储在一种数据结构(B-树)中,通过键值可以快速地找到与键值相关的数据记录(一)索引概述创建原则经常被查询的列需要排序的列外键或主键列值唯一的列在下列情况下不适合建立索引。在查询中很少被引用的列。包含太多重复值或空值的列。例如:bit数据类型列,“性别”列等表中数据行较少(一)索引概述索引类型聚集索引(CLUSTEREDINDEX)非聚集索引(NONCLUSTEREDINDEX)唯一索引(UNIQUE INDEX)聚集索引根据键值的大小对行进行逻辑排序,同时决定其物理排序,所以每个表只能有一个聚集索引。非聚集索引根据键值的大小对行进行逻辑排序,索引数据结构与数据行是分开的。由于非聚集索引对应的表并没有按物理顺序进行排序,所以查找速度明显低于带聚集索引的表。唯一索引指定唯一索引的表或视图中不允许包含重复的索引键值。聚集索引和非聚集索引都可以指定唯一索引。在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引。(一)索引概述在创建PRIMARY KEY约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引。在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引,以便强制UNIQUE约束。也可以使用独立于约束的索引,即可以使用CREATE INDEX语句为表定义各类索引。索引类型聚集索引(CLUSTEREDINDEX)非聚集索引(NONCLUSTEREDINDEX)唯一索引(UNIQUE INDEX)(二)使用SSMS创建索引【例6-18】在数据库“EDUC”中为学生表“Student”创建一个非聚集的、唯一的索引“Studentindex”。索引键为列“Sname”,升序排列。在【对象资源管理器】窗口中展开“数据库”→“EDUC”→“表”→“Student”节点,右击其中的“索引”节点,从快捷菜单中选择“新建索引” → “非聚集索引”命令在【新建索引】窗口中创建索引(二)使用SSMS创建索引在【新建索引】窗口中创建索引(二)使用SSMS创建索引在【新建索引】窗口中输入索引名,设置索引类型,如非聚集和唯一(二)使用SSMS创建索引在【新建索引】窗口中单击“添加”按钮,在打开的【从“dbo.Student”中选择列】窗口中选中要建索引的列“Sname”,(二)使用SSMS创建索引在【新建索引】窗口中设置索引的排序顺序(三)使用SSMS删除索引在【对象资源管理器】窗口中展开“数据库”节点,再展开所选择的具体数据库节点,然后展开“表”节点下的“索引”节点,右击要删除的索引,从快捷菜单中选择“删除”命令或按Delete键即可删除索引单元1.6表的创建与操作(SSMS)表概述一使用SSMS创建与管理表二使用SSMS操作表三使用SSMS创建与管理索引四1关系图的创建与管理五五、关系图的创建与管理创建数据库关系图1打开数据库关系图2删除数据库关系图3显示数据库关系图属性4关系图管理工具对表进行文档化提供开发解决方案关系图在文档中显示表和表之间的相关性强制表之间的参照完整性,则关系线在关系图中以一根实线表示如果INSERT(插入数据行)和UPDATE(更新数据)事务不强制参照完整性,则以虚线表示关系线的终结点显示一个主键符号以表示主键到外键的关系,或者显示一个无穷符号以表示一对多关系的外键五、关系图的创建与管理(一)使用SSMS创建关系图【例6-21】创建教务管理数据库“EDUC”的“选课关系图”。在【对象资源管理器】窗口中右击“EDUC”数据库中的“数据库关系图”节点或该节点中的任何关系图,从快捷菜单中选择“新建数据库关系图”命令在弹出的【添加表】对话框中选择所需的表单击“添加”按钮在【数据库关系图设计器】中创建关系图(一)使用SSMS创建关系图在【数据库关系图设计器】对话框中所选择的表将以图形方式显示在新建的数据库关系图中在【数据库关系图设计器】中创建关系图(一)使用SSMS创建关系图在【数据库关系图设计器】对话框中保存该关系图。右击【文档】窗口中的关系图标签,选择“保存”命令,输入关系图名称,即可在数据库“EDUC”的数据库关系图对象下看到新建的关系图在【数据库关系图设计器】中创建关系图(一)使用SSMS创建关系图(二)使用SSMS修改关系图在【对象资源管理器】窗口中展开“数据库”→具体数据库→“数据库关系图”节点。双击要打开的数据库关系图的名称或右击要打开的数据库关系图的名称,从快捷菜单中选择“修改”命令。在【数据库关系图设计器】中打开该数据库关系图,即可在其中编辑关系图(调整数据表大小、调整数据表位置、排列数据表或自定义数据表显示比例,还可以删除关系)。(三)使用SSMS删除关系图在【对象资源管理器】窗口中展开“数据库”→具体数据库→“数据库关系图”节点。右击要删除的数据库关系图,从快捷菜单中选择“删除”命令。说明:在删除数据库关系图时,不会删除数据库关系图中的表。(四)显示数据库关系图属性打开【数据库关系图设计器】选项卡/窗口单击该设计器中对象以外的任意位置,确保没有在【数据库关系图设计器】中选择任何对象。选择SSMS窗口菜单“视图”→“属性窗口”命令,即可显示该关系图的相关属性。表的创建与操作(SSMS)小结常用数据类型intchar,varchar [(n)]nchar,nvarchar[(n)]decimal[(p[,s])]datetime2datebit列的数据类型表的创建与操作(SSMS)小结实体完整性约束主键:PRIMARY KEY标识列:IDENTITY唯一键:UNIQUE非空值:NOT NULL… …域完整性约束数据类型:Data Type非空值:NOT NULL默认值:DEFAULT检查:CHECK参照完整性约束外键:FOREIGN KEYSQL Server的DDL支持表的完整性约束表的创建与操作(SSMS)小结用户定义完整性约束自定义检查(CHECK)存储过程(PROCEDURE)触发器(TRIGGER)自定义函数(FUNCTION)… …三个方面+用户自定义表的创建与操作(SSMS)小结快捷菜单表设计器表的创建与操作(SSMS)表编辑器 展开更多...... 收起↑ 资源预览