《情景4数据表管理》由会员分享,可在线阅读,更多相关《情景4数据表管理(56页珍藏版)》请在金锄头文库上搜索。
1、 情景情景4 4 数据表管理数据表管理SQL Server数据库技术及应用数据库技术及应用 目录o任务任务1:掌握数据类型:掌握数据类型o任务任务2:掌握数据表的创建方法:掌握数据表的创建方法o任务任务3:创建:创建student数据库的数据表数据库的数据表4.1 数据类型的概念及其意义o现实世界的各类数据我们都要将其抽象后放入数据库中,然而各类信息以什么格式,多大的存储空间进行组织和存储呢?这就有赖于我们事先的规定。比如把2010-08-19规定为日期格式,就能正常地识别这组字符串的含义,否则就只是一堆无意义的数据。这就是进行数据类型定义的意义。数据库存储的对象主要是数据。现实中存在着各种不
2、同类型的数据,数据类型就是以数据的表现方式和存储方式来划分的数据种类。有了数据类型就能对各类数据进行分门别类,并且对其不同类型的数据操作进行定义,进一步赋予该类数据的存储和操作规则。4.2 SQL Server的数据类型oSQLServer2008的数据类型可以分为两类:基本数据类型和用户自定义数据类型。SQLServer2008支持数字型、字符型、货币型、日期时间型、字符型等多种基本数据类型。4.2 SQL Server的数据类型1数字数据类型2货币数据类型3日期和时间数据类型4字符数据类型5Unicode数据类型6二进制数据类型7特殊数据类型8用户定义的数据类型表表4-1 SQL Serv
3、er 20084-1 SQL Server 2008数据类型数据类型表表4-1 SQL Server 20084-1 SQL Server 2008数据类型数据类型( (续续) )4.3 表的结构设计o在关系数据库中,每一个关系都体现为一张二维表,使用表来存储和操作数据的逻辑结构,表是数据库中最重要的数据对象。如同Excel电子表格,数据在表中是按照行和列的格式进行组织的,其中每一行代表一个记录,每一列代表记录中的一个域。例如,在包含图书信息的Bookinfo表中每一行代表一种图书,每一列表示这种图书某一方面的属性,如图书名称、出版社、价格、作者等等。4.3 表的结构设计o在一个数据库中需要包
4、含各个方面的数据,所以在设计数据库时,首先要确定什么样的表,各表中都应该包含哪些数据以及各表之间的关系和存取权限等等,这个过程称之为设计表。在设计表时需要确定的项目有:(1)表的名字,每个表都必须有一个名字。表名必须遵循SQLServer2008的命名规则,且最好能够使表名准确表达表格的内容。(2)表中各列的名字和数据类型,包括基本数据类型及自定义数据类型。每列采用能反映其实际意义的字段名。4.3 表的结构设计(3)表中的列是否允许空值。(4)表中的列是否需要约束、默认设置或规则。(5)表是否需要约束。(6)表所需要的索引的类型和需要建立索引的列。(7)表间的关系,即确定哪些列是主键,哪些是外
5、键。o在为各个字段和关系进行命名时注意以下两点:(1)采用有意义的字段名,尽可能地把字段描述得清楚些。(2)采用前缀命名,如果多个表里有许多同一类型的字段,不妨用特定表的前缀,来帮助标识字段。4.4 4.4 创建和修改表创建和修改表4.4.1使用SQLServerManagementStudio工具创建数据表o表作为数据库的基本组成部分,实际上是关系数据库中对关系的一种抽象化描述。表是数据存储的地方。是数据库中最重要的部分,管理好表也就管理好了数据库。我们假设要创建的数据表结构的设计如下:表4-2 Student_info(学生信息表) 4.4.1 使用SQL Server Managemen
6、t Studio 工具创建数据表1.创建表创建表o【例例4-1】根据数据库的设计,要将学生相根据数据库的设计,要将学生相关信息存放在关信息存放在Student_info表中,需要在表中,需要在学生管理信息系统中创建学生信息表学生管理信息系统中创建学生信息表Student_info。4.4.1 使用SQL Server Management Studio工具创建数据表o(1)启动SQLServerManagementStudio,在对象资源管理器中依次展开“数据库”节点和Student节点,右键单击数据库的“表”节点,选择“新建表”命令。4.4.1 使用SQL Server Management
7、 Studio工具创建数据表o(2)出现如图4-2所示的表设计器,在其右上半部分窗口输入列的基本属性,包括列的名称、长度、数据类型、为空性等表的基本信息如图4-3所示。图4-2图4-34.4.1 使用SQL Server Management Studio工具创建数据表o(3)在表设计器右下半部分的ColumnProperties指定列的详细属性,包括输入表是否自动增长等补充信息。如图4-4所示。图4-44.4.1 使用SQL Server Management Studio工具创建数据表o(4)定义好表中的所有列后,单击保存按钮或“文件”菜单中的“保存表名”命令。o(5)在弹出的“选择名称”
8、对话框中,为该表键入一个名称,单击“确定”按钮。如图4-5所示。图4-54.4.1 使用SQL Server Management Studio工具创建数据表o新表创建后,在“对象资源管理器中,可以依次展开“数据库”节点和Student节点,查看刚才所建的表,如图4-6图4-64.4.1 使用SQL Server Management Studio工具创建数据表2修改表修改表o(1)修改表的结构。)修改表的结构。o在学生信息管理系统中将Student_info表中的列名Sid改为Sno。启动SQLServerManagementStudio,在对象资源管理器中依次展开“数据库”节点和Stude
9、nt节点。在“Student”表上单击右键,在弹出的菜单中选择“设计”命令,如图4-7所示。在右上部分窗口中,可以修改列名、类型、长度等信息。如图4-8所示。内容修改完后,单击保存按钮,完成修改。图4-7图4-84.4.1 使用SQL Server Management Studio工具创建数据表o(2)重命名表)重命名表o表在创建以后可以根据需要对其重新命名,在图4-7中不选择“设计”,而选择“重命名”即可。如下图4-9。4.4.2 使用Transact-SQL创建和修改表1创建表o【例例4-2】为了存储学生信息,需要在学生为了存储学生信息,需要在学生信息管理系统中建立一张信息管理系统中建立
10、一张“Student”的表,的表,表的结构如例表的结构如例4-1,该操作使用,该操作使用T-SQL语句语句如下:如下:4.4.2 使用Transact-SQL创建和修改表CREATETABLEStudent_info(SidChar(8),SnameVarchar(10),SgenderBit,SbirthDatetime,SdepartChar(6),SaddrNvarchar(50),StelChar(14)4.4.2 使用Transact-SQL创建和修改表o通过对例4-2的操作,我们总结T-SQL语句创建表的基本语句格式如下:CREATETABLE()4.4.2 使用Transact-
11、SQL创建和修改表o扩展扩展:CREATETABLE是创建表的命令,完整的命令参数可以如下表达:CREATETABLE表名(字段名数据类型列级完整性约束条件,字段名数据类型列级完整性约束条件.,表级完整性约束条件)4.4.2 使用Transact-SQL创建和修改表o注意:注意: 表名:要建立的表名是符合命名规则的任意字符。在同一数据库中表名应该是唯一的。字段名:是组成表的各个字段的名称。在一个表中,列名也应该是唯一的,而不同的表中允许相同的列名。数据类型:是对应列数据所采用的数据类型。列级约束:用来对同一字段中的数据进行限制。表级约束:如果完整性约束涉及多个字段,则可以将完整性约束定义在表级
12、上。o列级约束与表级约束等关于完整性的问题我们将在情景5仔细论述,结合情景5的内容再去建表将对创建数据表有更深的认识。4.4.2 使用Transact-SQL创建和修改表2修改表修改表o(1)添加列。 【例例4-3】要了解学生所在的年级,需要在要了解学生所在的年级,需要在Student_info表中添加表中添加Sgrade字段,其类字段,其类型为型为char,长度为,长度为4。该操作使用。该操作使用T-SQL语句语句完成如下:完成如下:ALTERTABLEStudent_infoADDSgradechar(4)4.4.2 使用Transact-SQL创建和修改表o(2)修改列。o【例例4-4】
13、考虑到其学号的长度有些不适宜,考虑到其学号的长度有些不适宜,需要将长度更改为需要将长度更改为10,类型仍为,类型仍为char。ALTERTABLEStudent_infoALTERCOLUMNSidchar(10)4.4.2 使用Transact-SQL创建和修改表o(3)删除列。o例4-5由于系统需求的变更,将把例4-1添加的Sgrade字段删除oALTERTABLEStudent_infoDROPCOLUMNSgrade4.4.2 使用Transact-SQL创建和修改表o通过对以上三个应用的操作,我们总结T-SQL语句修改表的基本语句格式如下:ALTERTABLEALTERCOLUMNA
14、DD完整性约束DROPCOLUMN注意:表结构的修改语句没有修改字段名的功能,想要修改列名,只有将原来的列名删除,再添加新的列。另一种做法是,在SSMS管理器中进行修改。4.54.5数据表的查看和删除数据表的查看和删除o4.5.1使用SSMS查看和删除表o1查看表o【例例4-6】查查看看刚刚才才在在学学生生信信息息管管理理系系统统Student中中已经建立好的已经建立好的Student_info表中的信息。表中的信息。(1)启动SQLServerManagementStudio,在对象资源管理器中依次展开“数据库”节点、Student节点和表节点。(2)在“Student_info”表上单击鼠
15、标右键,在弹出的菜单中选择“属性”命令(3)打开“表属性”对话框,可以查看表的常规、权限等详细信息。4.5.1 4.5.1 使用使用SSMSSSMS查看和删除表查看和删除表o2删除表根据数据管理的需要,有时要删除数据库中的某些表以释放更多的空间,删除表时特别要注意的是表的结构定义、数据、约束和索引等都会被永久删除。4.5.1 使用SSMS查看和删除表o【例例4-7】删删除除在在Student数数据据库库中中已已经经建立的建立的Student_info表。表。(1)启动SQLServerManagementStudio,在对象资源管理器中依次展开“数据库”节点、Student节点和表节点。(2)
16、在Student_info表上单击鼠标右键,在弹出的菜单中选择“删除”命令(3)打开“删除对象”对话框,单击“确定”按钮即完成表的删除4.5.2 使用T-SQL查看和删除表o1查看表使用存储过程sp_help可以查看表的相关信息。储存过程sp_help的基本语句格式如下:Sp_help表名参数含义:表名是指要查看表的名称。比如,要完成例4-6也可以使用以下语句:Sp_helpstudent_info4.5.2 使用T-SQL查看和删除表o2删除表使用DROPTABLE可以删除表,其基本的格式如下:DROPTABLE表名参数含义:表名是指要删除表的名称。比如,要完成例4-7,也可以使用以下语句:
17、DROPTABLEStudent_info该语句一旦执行,表中的数据以及在此表上建立的约束、索引都将被删除掉,建立在该表上的视图依然保留,但已经无法引用,因此,执行删除操作要十分谨慎。4.6 4.6 数据记录的操作数据记录的操作o4.6.1 使用使用SSMS进行数据记录的操作进行数据记录的操作(1)启动SQLServerManagementStudio,在对象资源管理器中依次展开“数据库”节点、Student节点和表节点。(2)在“Student_info”表上单击鼠标右键,在弹出的菜单中选择“编辑前200行”。(3)在SQLServerManagementStudio中可以直接在图4-16所
18、示的表格中完成添加、修改表的操作。4.6.1 使用SSMS进行数据记录的操作图4-164.6.1 使用SSMS进行数据记录的操作(4)要删除记录时,在选定的记录单击鼠标右键,在弹出菜单中选择“删除”命令即可,如图4-17。记录操作完成后,根据提示完成保存操作。图4-174.6.1 使用SSMS进行数据记录的操作o注意:注意:添加、修改和删除记录并不是总能正确执行,数据必须添加、修改和删除记录并不是总能正确执行,数据必须遵循一定的规则,这个规则就是我们下一情景要讲的数遵循一定的规则,这个规则就是我们下一情景要讲的数据完整性规则。据完整性规则。在添加和修改过程中按在添加和修改过程中按“Esc”键可
19、取消不符合规则的键可取消不符合规则的数据输入。数据输入。4.6.2 使用T-SQL进行数据记录的操作o1插入记录插入记录o【例例4-7】新新生生入入学学,在在Student_info表表中中插入一条新数据。插入一条新数据。INSERTINTOStudent_infoVALUES(20100201,黄旭明,男,1992-12-23,G02001,NULL,7)4.6.2 使用T-SQL进行数据记录的操作o通过以上应用总结出插入记录的语句格式:INSERTINTO,VALUES(,)4.6.2 使用T-SQL进行数据记录的操作o2修改记录o【例例4-8】个个别别学学生生信信息息有有时时会会发发生生
20、变变更更,比比如如学学生生转转专专业业,所所在在系系发发生生变变化化等等。将将“20100201”记记录录的的所所在在系系由由G02001改改为为G02002。UPDATEStudent_infoSETSdepart=G02002WHERESid=201002014.6.2 使用T-SQL进行数据记录的操作o如果不指定WHERE条件,则会修改所有记录,这是要十分小心的地方,通过以上应用,我们总结出修改记录语句格式为:UPDATESET=,=FROMWHERE4.6.2 使用T-SQL进行数据记录的操作o3.删除记录o【例例4-9】学学生生张张自自立立已已经经退退学学,需需要要在在学学生信息表中
21、删除该学生信息。生信息表中删除该学生信息。DELETEFROMSTUDENTWHERESname=张自立4.6.2 使用T-SQL进行数据记录的操作o通过对实例的应用,可以总结出删除记录语句的基本格式如下:DELETEFROMWHERE4.6.2 使用T-SQL进行数据记录的操作oDELETE语句的功能是从指定表中删除满足条件的WHERE字句条件的所有记录。如果省略了WHERE条件字句,表示删除表中全部记录,但表的定义仍存在,也就是说DELETE删除的是表中的数据,而不是关于表的定义。o【例例4-10】删除学生信息表中所有学生信息。删除学生信息表中所有学生信息。DELETEFROMSTUDEN
22、T4.6.2 使用T-SQL进行数据记录的操作oDELETE语句使STUDENT表成为空表,它删除了STUDENT表中的所有记录。删除表中所有记录也可以使用TRUNCATETABLE语句来完成。具体如下:TRUNCATETABLESTUDENT任务任务3 3 创建创建studentstudent数据库的数据表数据库的数据表表4-3 Department_info(系部信息表)表4-4 Student_info(学生信息表)表4-5 Course_info(课程信息表)表4-6 SC(选课信息表)Department_info(系部信息表)CREATETABLEDepartment_info(D
23、idChar(6),DnameVarchar(18),DdeanVarchar(10),DtelChar(14),DaddrNvarchar(50)Student_info(学生信息表)CREATETABLEStudent_info(SidChar(8),SnameVarchar(10),SgenderChar(2),SbirthDatetime,SdepartChar(6),SaddrNvarchar(50),StelChar(14)Course_info(课程信息表)CREATETABLECourse_info(CidChar(10),CnameVarchar(20),CperiodTinyint,CceditNumeric(3,2),CtermChar(2),CtypeNvarchar)SC(选课信息表)CREATETABLESC(SidChar(8),CidChar(10),GradeNumeric(5,2)本章小结:o掌握设计表结构常用的数据类型;o掌握利用SQLServerManagementStudio工具与使用Transact-SQL创建表以及对表结构修改的方法;o掌握对表中数据进行增加、修改、查询和删除的方法。