好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

45页
  • 卖家[上传人]:cl****1
  • 文档编号:588692774
  • 上传时间:2024-09-08
  • 文档格式:PPT
  • 文档大小:944.02KB
  • / 45 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 表的基本操作 2024/9/82主要内容数据库表SQL Server的数据类型创建数据库表定义约束管理数据库表 2024/9/83数据库表表的概述表是数据库中最基本的对象许多数据库对象,如索引、视图都是以表为基础的它与电子表格类似,数据在表中是按照行和列的格式来组织的每一行代表一条唯一的记录,每一列代表记录中的一个域例如,一个包含学生基本信息的数据表,表中的每一行代表一个学生信息,每一列代表学生的一项详细资料,如学号、姓名、性别、联系方式等 2024/9/84数据库表表的分类在性质上,SQL Server将表分为两种永久表:创建后一直存储在数据库文件中,除非用户删除该表;临时表:临时表是系统运行过程中由系统创建,当用户退出或系统修复时,临时表将被自动被删除在类型上,SQL Server 将表分为四种标准表在数据库中,最常用的就是标准表,它用来为数据库提供存储数据的空间标准表简称表,是最重要、最基本的表系统表中存储了有关SQL Server的配置、数据库设置、用户信息、表对象的描述等系统信息 2024/9/85数据库表临时表临时表存储在 tempdb 中,当不再使用时会自动删除本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。

      全局全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除 分区表当一个表中的数据过于庞大时,可以使用分区表分区表是将数据水平划分为多个单元的表,这些单元可以分布到数据库中的多个文件组中在维护整个集合的完整性时,使用分区可以快速而有效地访问或管理数据子集,从而使大型表或索引更易于管理 2024/9/86数据库表数据完整性存储在数据库中数据的一致性和正确性为保证数据的完整性,SQL Server提供了定义、检查和控制数据的完整性的机制数据的完整性又进一步分为实体完整性、域完整性、参照完整性和用户定义完整性四种 实体完整性也称行完整性它将行定义为特定表的唯一实体例如在有多个学生信息的表中,学号那个列对应的值每一行必须不相同,否则,这将造成学生信息管理的混乱域完整性也称列完整性用它来定义输入的数据值,是否具有正确的数据类型、格式以及有效的数据范围 2024/9/87数据库表参照完整性是保证参照与被参照两个表中数据的一致性例如,在学生基本信息表中有学号列,在成绩表中也有学号这个列,而且两个表的学号必须一致 用户定义完整性。

      为了反映用户的特殊需求,体现用户的业务规则,称为用户定义完整性在数据库系统中必须采取一些措施来防止混乱数据的产生在SQL Server中,数据的完整性是通过建立和使用约束来保证的约束是SQL Server强制实行的应用规则,它通过限制列、行、表中的数据,来保证数据的完整性当删除表时,表所带的约束也随之被删除在SQL Server中,约束包括CHECK约束、PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE约束和DEFAULT约束等 2024/9/88SQL Server的数据类型在创建表时,涉及数据表的结构问题,也就是涉及数据表中各列的数据格式数据格式:是数值?是字符?是日期还是货币?是图像等其他格式?因此,在讲述数据表的操作之前,必须介绍SQL Server的数据类型在SQL Server的数据表中,列的数据类型既可以是系统提供的数据类型,也可以是用户自定义的数据类型SQL Server系统提供了丰富的数据类型,表11-1列出了SQL Server所支持的数据类型 2024/9/89数据类型数据类型说明BIGINT从-263~264-1的整型数据INT从-231~232-1的整型数据SMALLINT从-215~216-1的整型数据TINYINT从0~255的整型数据BIT非1即0的整型数据DECIMAL从-1038+1~1038-1的固定精度和小数位数的数值数据类型NUMERIC相当于十进制数MONEY从-263~263-1的货币型数据,精确到货币单位的万分之一SMALLMONEY从-214 748.3648~214 748.3647的货币型数据,精确到货币单位的万分之一FLOAT从-1.79E-308~1.79E+308的浮点精度数字数据 2024/9/810数据类型数据类型说明REAL从-3.40E-38~3.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字符数据NCHAR最大长度为4000个字符的固定长度Unicode字符数据NVARCHAR最大长度为4000个字符的可变长度Unicode字符数据NTEXT最大长度为231-1个字符的可变长度Unicode字符数据 2024/9/811数据类型数据类型说明BINARY最大长度为8000个字符的固定长度二进制数据VARBINARY最大长度为8000个字符的可变长度二进制数据IMAGE最大长度为231-1个字符的可变长度二进制数据CURSOR对光标的引用SQL_VARIANT存储SQL Server支持的数据类型(TEXT, NTEXT, TIMESTAMP和SQL_VARIANT除外)值的数据类型TABLE用于存储结果集合供以后处理的特殊数据类型TIMESTAMP整个数据库中都有唯一的一个数字,随着行的每次更新而更新UNIQUEIDENTIFIER全局唯一标识符(GUID) 2024/9/812数据类型空值(NULL)先来了解空值的概念。

      数据列在定义后,还需要确定该列是否允许空值空值通常是未知的、不能用的或将在以后添加的数据允许一个列为空值,则向表中输入记录值时,可不为该列给出具体值;不允许为空值时,则在输入时,必须给出具体的值空值与空格字符或数字0是不同的,空格实际上是一个有效的字符,0则表示一个有效的数字 2024/9/813数据类型字符型字符型数据类型主要用来存储由字母、数字和符号组成的字符串,它又分为定长类型和变长类型SQL Server提供三种字符型数据类型,分别为char、、varchar和和textChar列中可以有字母、数字和符号,甚至是Tab键和空格键,但不包含其他的非可打印字符Char字符列是定长的,如果定义的字符列为400个字符大小,那么即使列中的数据小于400个字符,这些数据也要占用400个字符的磁盘空间Varchar列存储变长的字符数据 2024/9/814数据类型二进制型二进制型数据是指字符串是由二进制值组成,而不是由字符组成该类型通常用于时间标记(timestamp)和image类型对于二进制型数据的存储来说,SQL Server提供三种数据类型,分别为binary、、varbinary和和image。

      binary用于存储长度固定的二进制字符串,varbinary用于存储长度可变的二进制字符串,image用于存储大的二进制字符串(理论上每行可达2GB) 2024/9/815数据类型整型和精确数值型SQL Server 2005提供的整型和精确数值类型有bit、、int、、smallint、、tinyint和和decimal、、numeric最常用的是int和numeric类型int类型是指取值在-2147483648~2147483647之间的整数,numeric类型则是十进制数bit数据类型可用于存储逻辑数据,可用作状态标志位,它只存储1或者0并且该类型的值不允许为空值、不允许建立索引、几个bit列可占用同一字节 2024/9/816数据类型浮点型SQL Server 2005提供了float和和real类型,来表示浮点数和实数float整型数据取值范围是-1.79E+308~1.79E+308,real型数据的取值范围是-11.40E+38~11.40E+38real类型存储在四个字节中,可以在real数据类型中存储正的或者负的十进制值如果不指定float数据类型的长度,它会被存储在8个字节中。

      2024/9/817数据类型日期型SQL Server 2005可以用datetime和和smalldatetime数据类型来存储日期数据和时间数据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/818数据类型字符串数据类型SQL Server 2005提供三种Unicode字符串数据类型,分别为nchar、、nvarchar和和ntextSQL Server Unicode数据类型是基于SQL-92标准中的National Character数据类型的SQL-92使用前缀字符号n来表示这些数据类型和值在使用Unicode数据类型时,一个列可以存储由Unicode标准所定义的任何字符,该字符包括各种字符集中所定义的所有字符其中,ntext数据类型用来存储大量的文本,存储的数据通常是直接能够输出到显示设备上的字符,显示设备可以是显示器、窗口或者打印机。

      2024/9/819数据类型用户自定义数据类型用户自定义数据类型,是基于SQL Server系统提供的数据类型当多个表的列中要存储同样类型的数据,并且确保这些列具有完全相同的数据类型、长度和是否为空属性时,可使用用户自定义数据类型创建用户自定义数据类型必须提供名称、新数据类型所依据的系统数据类型、数据类型是否允许空值 2024/9/820创建与管理表以学生信息系统为例,介绍如何用SSMS图形界面来创建表,以及对这些表进行管理学生信息系统共包括学生信息表(student)、课程信息表(course)、选课信息表(select)三张表,具体表结构如表11-2、表11-3和表11-4所示 2024/9/821创建表列名数据类型是否允许为空主键备注SnoChar(10)否是学号SnameVarchar(10)否否学生姓名SsexNchar(2)是否性别BirthdayDatetime是否生日SdeptNchar(20)是否系TelVarchar(13)是否student表结构 2024/9/822创建表列名数据类型是否允许为空主键备注CnoChar(10)否是课程编号CnameVarchar(50)否否课程名称course表结构select表结构列名数据类型是否允许为空主键备注SnoChar(10)否是学号CnoChar(10)否是课程编号ScoreInt是否成绩 2024/9/823创建表创建步骤在SSMS窗口中,展开“bnuep”选项,右击“表”选项,在弹出的快捷菜单中选择“新建表”命令,如图11-2所示。

      2024/9/824创建表在弹出的“编辑”面板中,分别输入各列的名称、数据类型、长度、是否允许为空等属性(可以参考表11-2、表11-3和表11-4所示的表结构),如图11-3所示 2024/9/825创建表输入完各列属性后,单击 “保存”按钮,弹出“选择名称”对话框,如图11-4所示在“选择名称”对话框中输入表的名称student,点击“确定”按钮表创建完成按照同样的方法和步骤创建course表和score表 2024/9/826约束SQL Server中有五种约束类型,分别是CHECK、、DEFAULT、、PRIMARY KEY、、FOREIGN KEY和UNIQUECHECK约束CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性,也就是一个列的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而强制数据的域完整性域完整性 DEFAULT约束若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值 2024/9/827约束PRIMARY KEY约束在表中经常有一列或多列的组合,其值能唯一标识表中的每一行。

      这样的一列或多列成为表的主键,通过它可以强制表的实体完整性实体完整性一个表有且只有一个主键,而且主键约束中的列不能为空值如将student表中学号Sno设为该表的主键,因为它能唯一标识该表,且该列的值不为空如果主键约束定义在不止一列上,则一列中的值可以重复,但主键约束定义中的所有列组合的值,必须唯一,因为该组合列是表的主键 2024/9/828约束FOREIGN KEY约束外键,是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的,当添加、修改或删除数据时,通过参照完整性参照完整性来保证它们之间的数据的一致性定义表间的参照完整性的顺序是先定义主表的主键,再对从表定义外键 UNIQUE约束用于确保表中的行在非主键非主键中没有相同的列值与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,为表中的一列或多列提供实体完整性但UNIQUE约束用于非主键的一列或多列组合,且一个表可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义多列组合 2024/9/829CHECK在Ssex上创建约束在SSMS窗口中,右击dbo.student选项,在弹出的快捷菜单中选择“修改”命令,选中Ssex后右击数遍,在弹出的快捷菜单中选择“CHECK 约束”,如图所示: 2024/9/830CHECK单击“添加”按钮,单击“表达式”后面的 按钮,进入如下图所示的“CHECK约束表达式”对话框。

      如果已经在该列上创建了约束,则该操作将查看之前创建的CHECK约束表达式在文本框中输入约束表达式“Ssex=‘男’ OR Ssex=‘女’” 2024/9/831CHECK最后,在“设计表”窗口单击“保存”按钮,完成了创建和保存CHECK约束的操作用户输入时,若输入性别不是“男”或“女”,系统将报告输入无效删除约束 2024/9/832DEFAULT在Ssex上创建DEFAULT约束选择“Ssex”列,在“列属性”选项卡中选择“默认值或绑定”,在右侧的文本框中输入“男”,单击“保存”按钮删除DEFAULT约束 2024/9/833PRIMARY KEY将Sno定义为主键选择“Sno”列,右击,在弹出的快捷菜单中选择“设置主键”命令若主键由多列组成,先选中此列,按住Ctrl不放,同时用鼠标单击选择其他列,然后单击“设置主键”按钮移除主键 2024/9/834FOREGIN KEY创建student表与select表之间的外键约束检查student表中是否将“Sno”设置为主键选择“select”表,右击选择“修改”,单击“关系”按钮,在弹出的“外键关系”对话框中,单击“添加”按钮,如图所示: 2024/9/835FOREGIN KEY选中“表和列规范”单击后面的按钮,进入下图所示的界面。

      在“主键表”下拉列表中选择student,单击主键表的下拉列表框选择Sno,在“外键表”下拉列表框中选择Sno 2024/9/836UNIQUE给Sname添加UNIQUE约束在“修改”定义窗口完成所有列的定以后,单击 “管理索引和键”按钮,打开“索引/键”对话框,单击“添加”按钮,在“列”下拉列表中选择“Sname”,在“是唯一的”下拉列表中选择”是“ 2024/9/837修改表结构 修改表名SQL Server允许修改一个表的名字,当表名改变后,与此相关的某些对象(如视图,存储过程等)将无效,因为它们都与表名有关因此,建议一般不要随便更改一个已有的表名,特别是在其上已经定义了视图等对象右击“dbo.student”,在弹出的快捷菜单中,选择“重命名”命令,在原表上输入表的新名称即可 2024/9/838修改表结构增加列给student增加”宿舍“属性右击“dbo.student”,在弹出的菜单中选择“修改”命令接着在“设计表”面板中,单击“第一个空白行”,输入列名“domitory(宿舍)”,数据类型选择“varchar(20)”,并选中“允许空”复选框然后点击“保存”按钮 2024/9/839修改表结构删除列。

      删除刚才在student表中建立的“domitory”列 打开student表的“修改”面板,右击“domitory”列,在弹出的快捷菜单中选择“删除列”命令该列即被删除,最后单击“保存”按钮,以保存修改的结构修改已有列的属性和增加、删除列类似,打开表的“修改”面板,可以对已有列的列名、数据类型、长度以及是否允许为空值等属性直接进行修改修改完毕后,单击“保存”按钮以保存修改的结构但是,在表中已有记录后,不要轻易修改表的结构,特别是修改列的数据类型,以免产生错误 2024/9/840查看表结构 在SSMS窗口中,若要查看某个表的结构,则右击该表,在弹出的快捷菜单中选择“修改”命令,即可查看表信息 2024/9/841删除表 删除select表右击”select“表,在弹出的快捷菜单选项中选择”删除“,此时,出现“删除对象”对话框,单击“确定”按钮即可将select表删除 2024/9/842操作表中的数据 查看表中的数据在SSMS窗口中,右击需要查看数据的表,在弹出的快捷菜单中,选择“打开表”命令,打开查询窗口,即可看到表中的数据 向表中插入、更新 、删除数据打开查询窗口,在下面的空白行处输入新的数据,然后点击“保存”按钮,完成插入数据的操作。

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

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.