实验03:数据库中表本操作

上传人:新** 文档编号:586345614 上传时间:2024-09-04 格式:PPT 页数:45 大小:944.02KB
返回 下载 相关 举报
实验03:数据库中表本操作_第1页
第1页 / 共45页
实验03:数据库中表本操作_第2页
第2页 / 共45页
实验03:数据库中表本操作_第3页
第3页 / 共45页
实验03:数据库中表本操作_第4页
第4页 / 共45页
实验03:数据库中表本操作_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《实验03:数据库中表本操作》由会员分享,可在线阅读,更多相关《实验03:数据库中表本操作(45页珍藏版)》请在金锄头文库上搜索。

1、表的基本操作2024/9/42主要内容数据库表SQL Server的数据类型创建数据库表定义约束管理数据库表 2024/9/43数据库表表的概述表是数据库中最基本的对象。许多数据库对象,如索引、视图都是以表为基础的。它与电子表格类似,数据在表中是按照行和列的格式来组织的。每一行代表一条唯一的记录,每一列代表记录中的一个域。例如,一个包含学生基本信息的数据表,表中的每一行代表一个学生信息,每一列代表学生的一项详细资料,如学号、姓名、性别、联系方式等。 2024/9/44数据库表表的分类在性质上,SQL Server将表分为两种永久表:创建后一直存储在数据库文件中,除非用户删除该表;临时表:临时表

2、是系统运行过程中由系统创建,当用户退出或系统修复时,临时表将被自动被删除。在类型上,SQL Server 将表分为四种标准表。在数据库中,最常用的就是标准表,它用来为数据库提供存储数据的空间。标准表简称表,是最重要、最基本的表。系统表。系统表中存储了有关SQL Server的配置、数据库设置、用户信息、表对象的描述等系统信息。2024/9/45数据库表临时表。临时表存储在 tempdb 中,当不再使用时会自动删除。本地。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局。全局临时表的名称以两个数字符号 (#)

3、 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 分区表。当一个表中的数据过于庞大时,可以使用分区表。分区表是将数据水平划分为多个单元的表,这些单元可以分布到数据库中的多个文件组中。在维护整个集合的完整性时,使用分区可以快速而有效地访问或管理数据子集,从而使大型表或索引更易于管理。 2024/9/46数据库表数据完整性存储在数据库中数据的一致性和正确性。为保证数据的完整性,SQL Server提供了定义、检查和控制数据的完整性的机制。数据的完整性又进一步分为实体完整性、域完整性、参照完整性和用户定义完整性四种。 实体完整性也称行完整性。它将行

4、定义为特定表的唯一实体。例如在有多个学生信息的表中,学号那个列对应的值每一行必须不相同,否则,这将造成学生信息管理的混乱。域完整性也称列完整性。用它来定义输入的数据值,是否具有正确的数据类型、格式以及有效的数据范围。2024/9/47数据库表参照完整性是保证参照与被参照两个表中数据的一致性。例如,在学生基本信息表中有学号列,在成绩表中也有学号这个列,而且两个表的学号必须一致。 用户定义完整性。为了反映用户的特殊需求,体现用户的业务规则,称为用户定义完整性。在数据库系统中必须采取一些措施来防止混乱数据的产生。在SQL Server中,数据的完整性是通过建立和使用约束来保证的。约束是SQL Ser

5、ver强制实行的应用规则,它通过限制列、行、表中的数据,来保证数据的完整性。当删除表时,表所带的约束也随之被删除。在SQL Server中,约束包括CHECK约束、PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE约束和DEFAULT约束等。2024/9/48SQL Server的数据类型在创建表时,涉及数据表的结构问题,也就是涉及数据表中各列的数据格式数据格式:是数值?是字符?是日期还是货币?是图像等其他格式?因此,在讲述数据表的操作之前,必须介绍SQL Server的数据类型。在SQL Server的数据表中,列的数据类型既可以是系统提供的数据类型,也可以是用户自定义的数

6、据类型。SQL Server系统提供了丰富的数据类型,表11-1列出了SQL Server所支持的数据类型。 2024/9/49数据类型数据类型说明BIGINT从-263264-1的整型数据INT从-231232-1的整型数据SMALLINT从-215216-1的整型数据TINYINT从0255的整型数据BIT非1即0的整型数据DECIMAL从-1038+11038-1的固定精度和小数位数的数值数据类型NUMERIC相当于十进制数MONEY从-263263-1的货币型数据,精确到货币单位的万分之一SMALLMONEY从-214 748.3648214 748.3647的货币型数据,精确到货币单

7、位的万分之一FLOAT从-1.79E-3081.79E+308的浮点精度数字数据2024/9/410数据类型数据类型说明REAL从-3.40E-383.40E+38的浮点精度数字数据DATETIME从1753年1月1日到9999年12月31日的日期和时间数据,精确到三百分之一秒(11.33毫秒)SMALLDATETIME从1900年1月1日到9999年12月21日的日期和时间数据,精确到一分钟CHAR最大长度为8000个字符的固定长度非Unicode字符数据VARCHAR最大长度为8000个字符的可变长度非Unicode字符数据Text最大长度为231-1个字符的可变长度非Unicode字符数

8、据NCHAR最大长度为4000个字符的固定长度Unicode字符数据NVARCHAR最大长度为4000个字符的可变长度Unicode字符数据NTEXT最大长度为231-1个字符的可变长度Unicode字符数据2024/9/411数据类型数据类型说明BINARY最大长度为8000个字符的固定长度二进制数据VARBINARY最大长度为8000个字符的可变长度二进制数据IMAGE最大长度为231-1个字符的可变长度二进制数据CURSOR对光标的引用SQL_VARIANT存储SQL Server支持的数据类型(TEXT, NTEXT, TIMESTAMP和SQL_VARIANT除外)值的数据类型TAB

9、LE用于存储结果集合供以后处理的特殊数据类型TIMESTAMP整个数据库中都有唯一的一个数字,随着行的每次更新而更新UNIQUEIDENTIFIER全局唯一标识符(GUID)2024/9/412数据类型空值(NULL)先来了解空值的概念。数据列在定义后,还需要确定该列是否允许空值。空值通常是未知的、不能用的或将在以后添加的数据。允许一个列为空值,则向表中输入记录值时,可不为该列给出具体值;不允许为空值时,则在输入时,必须给出具体的值。空值与空格字符或数字0是不同的,空格实际上是一个有效的字符,0则表示一个有效的数字 。2024/9/413数据类型字符型字符型数据类型主要用来存储由字母、数字和符

10、号组成的字符串,它又分为定长类型和变长类型。SQL Server提供三种字符型数据类型,分别为char、varchar和和text。Char列中可以有字母、数字和符号,甚至是Tab键和空格键,但不包含其他的非可打印字符。Char字符列是定长的,如果定义的字符列为400个字符大小,那么即使列中的数据小于400个字符,这些数据也要占用400个字符的磁盘空间。Varchar列存储变长的字符数据。2024/9/414数据类型二进制型二进制型数据是指字符串是由二进制值组成,而不是由字符组成。该类型通常用于时间标记(timestamp)和image类型。对于二进制型数据的存储来说,SQL Server提供

11、三种数据类型,分别为binary、varbinary和和image。binary用于存储长度固定的二进制字符串,varbinary用于存储长度可变的二进制字符串,image用于存储大的二进制字符串(理论上每行可达2GB)。 2024/9/415数据类型整型和精确数值型SQL Server 2005提供的整型和精确数值类型有bit、int、smallint、tinyint和和decimal、numeric。最常用的是int和numeric类型。int类型是指取值在-21474836482147483647之间的整数,numeric类型则是十进制数。bit数据类型可用于存储逻辑数据,可用作状态标志

12、位,它只存储1或者0。并且该类型的值不允许为空值、不允许建立索引、几个bit列可占用同一字节。 2024/9/416数据类型浮点型SQL Server 2005提供了float和和real类型,来表示浮点数和实数。float整型数据取值范围是-1.79E+3081.79E+308,real型数据的取值范围是-11.40E+3811.40E+38。real类型存储在四个字节中,可以在real数据类型中存储正的或者负的十进制值。如果不指定float数据类型的长度,它会被存储在8个字节中。 2024/9/417数据类型日期型SQL Server 2005可以用datetime和和smalldatet

13、ime数据类型来存储日期数据和时间数据。smalldatetime的精度较低,包含的日期范围也较窄,但占用的空间小。datetime类型数据的取值范围是1753年1月1日到9999年12月31日。可以省略datetime中的部分值,但如果全部省略,则默认的取值为1900,1,1,12: 00: 00: 00AM。如果省略的是时间部分,默认值为12:00: 00: 00。如果省略的是日期部分,则默认值为1,l,1900。2024/9/418数据类型字符串数据类型SQL Server 2005提供三种Unicode字符串数据类型,分别为nchar、nvarchar和和ntext。SQL Serve

14、r Unicode数据类型是基于SQL-92标准中的National Character数据类型的。SQL-92使用前缀字符号n来表示这些数据类型和值。在使用Unicode数据类型时,一个列可以存储由Unicode标准所定义的任何字符,该字符包括各种字符集中所定义的所有字符。其中,ntext数据类型用来存储大量的文本,存储的数据通常是直接能够输出到显示设备上的字符,显示设备可以是显示器、窗口或者打印机。 2024/9/419数据类型用户自定义数据类型用户自定义数据类型,是基于SQL Server系统提供的数据类型。当多个表的列中要存储同样类型的数据,并且确保这些列具有完全相同的数据类型、长度和

15、是否为空属性时,可使用用户自定义数据类型。创建用户自定义数据类型必须提供名称、新数据类型所依据的系统数据类型、数据类型是否允许空值。 2024/9/420创建与管理表以学生信息系统为例,介绍如何用SSMS图形界面来创建表,以及对这些表进行管理。学生信息系统共包括学生信息表(student)、课程信息表(course)、选课信息表(select)三张表,具体表结构如表11-2、表11-3和表11-4所示。2024/9/421创建表列名数据类型是否允许为空主键备注SnoChar(10)否是学号SnameVarchar(10)否否学生姓名SsexNchar(2)是否性别BirthdayDatetim

16、e是否生日SdeptNchar(20)是否系TelVarchar(13)是否电话student表结构2024/9/422创建表列名数据类型是否允许为空主键备注CnoChar(10)否是课程编号CnameVarchar(50)否否课程名称course表结构select表结构列名数据类型是否允许为空主键备注SnoChar(10)否是学号CnoChar(10)否是课程编号ScoreInt是否成绩2024/9/423创建表创建步骤在SSMS窗口中,展开“bnuep”选项,右击“表”选项,在弹出的快捷菜单中选择“新建表”命令,如图11-2所示。 2024/9/424创建表在弹出的“编辑”面板中,分别输入

17、各列的名称、数据类型、长度、是否允许为空等属性(可以参考表11-2、表11-3和表11-4所示的表结构),如图11-3所示。2024/9/425创建表输入完各列属性后,单击 “保存”按钮,弹出“选择名称”对话框,如图11-4所示。在“选择名称”对话框中输入表的名称student,点击“确定”按钮表创建完成。按照同样的方法和步骤创建course表和score表。 2024/9/426约束SQL Server中有五种约束类型,分别是CHECK、DEFAULT、PRIMARY KEY、FOREIGN KEY和UNIQUE。CHECK约束CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来

18、判断数据的有效性,也就是一个列的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而强制数据的域完整性域完整性。 DEFAULT约束若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值。 2024/9/427约束PRIMARY KEY约束在表中经常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键,通过它可以强制表的实体完整性实体完整性。一个表有且只有一个主键,而且主键约束中的列不能为空值。如将student表中学号Sno设为该表的主键,因为它能唯一标识该表,且该列的值不为

19、空。如果主键约束定义在不止一列上,则一列中的值可以重复,但主键约束定义中的所有列组合的值,必须唯一,因为该组合列是表的主键。2024/9/428约束FOREIGN KEY约束外键,是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的,当添加、修改或删除数据时,通过参照完整性参照完整性来保证它们之间的数据的一致性。定义表间的参照完整性的顺序是先定义主表的主键,再对从表定义外键。 UNIQUE约束用于确保表中的行在非主键非主键中没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,为表中的一列或多列提供实体完整性。但UNIQUE约束用于非主键的一列或多列组合,

20、且一个表可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义多列组合。2024/9/429CHECK在Ssex上创建约束在SSMS窗口中,右击dbo.student选项,在弹出的快捷菜单中选择“修改”命令,选中Ssex后右击数遍,在弹出的快捷菜单中选择“CHECK 约束”,如图所示:2024/9/430CHECK单击“添加”按钮,单击“表达式”后面的 按钮,进入如下图所示的“CHECK约束表达式”对话框。如果已经在该列上创建了约束,则该操作将查看之前创建的CHECK约束表达式。在文本框中输入约束表达式“Ssex=男 OR Ssex=女”。2024/9/431CHECK最后,在“设计表

21、”窗口单击“保存”按钮,完成了创建和保存CHECK约束的操作。用户输入时,若输入性别不是“男”或“女”,系统将报告输入无效。删除约束。2024/9/432DEFAULT在Ssex上创建DEFAULT约束选择“Ssex”列,在“列属性”选项卡中选择“默认值或绑定”,在右侧的文本框中输入“男”,单击“保存”按钮。删除DEFAULT约束。2024/9/433PRIMARY KEY将Sno定义为主键。选择“Sno”列,右击,在弹出的快捷菜单中选择“设置主键”命令。若主键由多列组成,先选中此列,按住Ctrl不放,同时用鼠标单击选择其他列,然后单击“设置主键”按钮。移除主键。2024/9/434FOREG

22、IN KEY创建student表与select表之间的外键约束。检查student表中是否将“Sno”设置为主键。选择“select”表,右击选择“修改”,单击“关系”按钮,在弹出的“外键关系”对话框中,单击“添加”按钮,如图所示:2024/9/435FOREGIN KEY选中“表和列规范”单击后面的按钮,进入下图所示的界面。在“主键表”下拉列表中选择student,单击主键表的下拉列表框选择Sno,在“外键表”下拉列表框中选择Sno。2024/9/436UNIQUE给Sname添加UNIQUE约束在“修改”定义窗口完成所有列的定以后,单击 “管理索引和键”按钮,打开“索引/键”对话框,单击“

23、添加”按钮,在“列”下拉列表中选择“Sname”,在“是唯一的”下拉列表中选择”是“。2024/9/437修改表结构 修改表名。SQL Server允许修改一个表的名字,当表名改变后,与此相关的某些对象(如视图,存储过程等)将无效,因为它们都与表名有关。因此,建议一般不要随便更改一个已有的表名,特别是在其上已经定义了视图等对象。右击“dbo.student”,在弹出的快捷菜单中,选择“重命名”命令,在原表上输入表的新名称即可。2024/9/438修改表结构增加列。给student增加”宿舍“属性。右击“dbo.student”,在弹出的菜单中选择“修改”命令。接着在“设计表”面板中,单击“第一

24、个空白行”,输入列名“domitory(宿舍)”,数据类型选择“varchar(20)”,并选中“允许空”复选框。然后点击“保存”按钮。2024/9/439修改表结构删除列。删除刚才在student表中建立的“domitory”列。 打开student表的“修改”面板,右击“domitory”列,在弹出的快捷菜单中选择“删除列”命令。该列即被删除,最后单击“保存”按钮,以保存修改的结构。修改已有列的属性。和增加、删除列类似,打开表的“修改”面板,可以对已有列的列名、数据类型、长度以及是否允许为空值等属性直接进行修改。修改完毕后,单击“保存”按钮以保存修改的结构。但是,在表中已有记录后,不要轻易

25、修改表的结构,特别是修改列的数据类型,以免产生错误。2024/9/440查看表结构 在SSMS窗口中,若要查看某个表的结构,则右击该表,在弹出的快捷菜单中选择“修改”命令,即可查看表信息。2024/9/441删除表 删除select表右击”select“表,在弹出的快捷菜单选项中选择”删除“,此时,出现“删除对象”对话框,单击“确定”按钮即可将select表删除。 2024/9/442操作表中的数据 查看表中的数据在SSMS窗口中,右击需要查看数据的表,在弹出的快捷菜单中,选择“打开表”命令,打开查询窗口,即可看到表中的数据。 向表中插入、更新 、删除数据打开查询窗口,在下面的空白行处输入新的

26、数据,然后点击“保存”按钮,完成插入数据的操作。在已有的数据上进行修改,修改完毕后点击“保存”按钮,完成更新数据的操作。右击需要删除的数据,在弹出的快捷菜单中选择“删除”命令,即可完成删除数据的操作。 2024/9/443实验一创建数据库bnu创建表student(Sno, Sname, Ssex, Sage, Sdept, Tel)Sno,Char(10),主键Sname,Varchar(10)Ssex,Nchar(2),男或女,默认值为男。Sage,Int,1630Sdept,Nchar(20)Tel,Varchar(13)2024/9/444实验一创建表course(Cno,Cname)Cno, char(10), 主键 Cname, Varchar(50) 创建表select(Sno, Cno, Score)Sno, char(10),主键,外键Cno, char(10),主键,外键Score,Int在每张表中插入三条记录,练习操作查看、更新、删除记录。THE ENDThank you

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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