1.5k likes | 1.7k Views
数据库实验指导. 第二篇 设计篇. 第一篇 实验篇. 第三篇 训练篇. 第四篇 实例篇. 第一篇 实验篇. 第一篇 实验篇. Microsoft SQL Server 是基于客户机 / 服务器模式的新一代大型关系型数据库管理系统( RDBMS )。在 SQL Server 的发展历程中,有两个版本具有重要的意义,那就是在 1996 年推出的 SQL Server 6.5 版本和 2000 年推出的 SQL Server 2000 版本。
E N D
第二篇 设计篇 第一篇 实验篇 第三篇 训练篇 第四篇 实例篇
第一篇 实验篇 • Microsoft SQL Server是基于客户机/服务器模式的新一代大型关系型数据库管理系统(RDBMS)。在SQL Server的发展历程中,有两个版本具有重要的意义,那就是在1996年推出的SQL Server 6.5版本和2000年推出的SQL Server 2000版本。 • 本篇主要以SQL Server 2000为主,把关系数据库的一些基本理论和基本技能应用到20个实验中,使读者熟练掌握数据库的创建和管理、数据库的维护和实施以及如何管理数据库对象等,为数据库的开发打下扎实的基本功。 • 本篇的每个实验都由下列4部分组成: • 实验目的 • 实验内容 • 问题解答 • 思考题
实验1 SQL Server 2000的安装 • 1.实验目的 • (1)了解SQL Server 2000不同版本安装的硬件要求和系统要求。 • (2)熟悉SQL Server 2000的安装步骤。 • (3)了解SQL Server 2000的卸载方法。 • (4)了解SQL Server 2000的主要组件。 • 2.实验内容 • (1)检查软硬件配置是否达到SQL Server 2000的安装要求。 • (2)选择安装SQL Server 2000的方式。 • (3)安装前要做的准备工作。 • (4)安装SQL Server 2000。
实验1 SQL Server 2000的安装 • 3.问题解答 • (1)如何删除SQL Server 2000中的实例? • 可以通过以下两种方法删除SQL Server 2000的实例。 • ① 运行SQL Server 2000安装程序,并选择“卸载”选项。 • ② 运行Windows控制面板中的“添加/删除程序应用程序”。 • 每个命名的SQL Server 2000实例必须单独删除,不能删除SQL Server 2000的个别组件,若要删除组件,必须删除整个实例。 • 提示:删除SQL Server 2000之前,应退出所有应用程序,包括 Windows NT事件查看器,注册表编辑器和所有的 SQL Server应用程序以及所有依赖于 SQL Server的应用程序。
实验1 SQL Server 2000的安装 • 3.问题解答 • (2)SQL Server 2000中的主要组件有哪些? • SQL Server 2000提供了一系列管理工具和实用程序,用于设置和管理SQL Server 2000。 • 当SQL Server 2000 安装完成后,选择“开始”→“程序”→“Microsoft SQL Server”命令,可以看到 SQL Server 2000主要组件的快捷方式。 • 其中,常用的有“服务管理器”、“企业管理器”、“查询管理器”和“导入和导出数据”等。
实验1 SQL Server 2000的安装 • 4.思考题 • (1)SQL Server 2000的安装出错时,如何进行错误检查? • (2)如何使用SQL Server 2000的帮助文档?
实验2 配置SQL Server 2000 • 1.实验目的 • (1)掌握启动和停止SQL Server 服务的方法。 • (2)掌握注册SQL Server 服务器的方法。 • (3)掌握创建服务器组的方法。 • (4)了解企业管理器和查询分析器的功能。 • 2.实验内容 • (1)练习用不同的方法启动SQL Server服务。 • (2)新建服务器组。 • (3)删除服务器组。 • (4)注册服务器。 • (5)断开与恢复同服务器的连接。 • (6)删除SQL Server注册。 • (7)打开查询分析器。
实验2 配置SQL Server 2000 • 3.问题解答 • (1)企业管理器的作用是什么? • 企业管理器是SQL Server 2000中最重要的一个管理工具,用于配置SQL Server 2000系统环境,创建和管理所有SQL Server对象,主要包括注册和管理SQL Server 服务器,连接、启动、暂停或停止 SQL Server 服务,创建和管理数据库,创建和管理各种数据库对象(包括表、视图、存储过程、触发器、角色、规则、默认值、用户自定义数据类型、用户自定义函数以及全文目录),备份数据库和事务日志,复制数据库,设置任务调度,让管理者进行警报设置,提供跨服务器的拖放操作,管理用户账户,编写和执行 Transact-SQL 语句,管理和控制SQL Mail等。
实验2 配置SQL Server 2000 • 3.问题解答 • (2)打开查询分析器时,怎样进行数据库登录认证? • 在打开查询分析器窗口时,用户必须首先登录到服务器。SQL Server提供了两种登录认证方式:一种是使用集成Windows身份验证方式,只要用户使用的是Windows操作系统并已经以合法的身份登录到操作系统环境中,那么打开查询分析器时,不用再输入登录信息;另一种是SQL Server身份验证方式,需要用户输入正确的登录名和密码才能连接服务器的连接,并进入查询分析器窗口。
实验2 配置SQL Server 2000 • 4.思考题 • (1)SQL Server的服务账号可以更改吗?如果可以,如何操作? • (2)启动SQL Server服务有哪些方法? • (3)如何配置查询分析器?
实验3 管理数据库 • 1.实验目的 • (1)熟练掌握在企业管理器中创建数据库的方法。 • (2)熟练掌握用SQL语句创建数据库的方法。 • (3)熟练掌握使用创建数据库向导来创建数据库的方法。 • (4)熟练掌握数据库属性的设置。 • (5)掌握数据库的修改和删除方法。 • 2.实验内容 • (1)使用企业管理器创建一个名为“SM”的数据库。 • (2)通过查询分析器创建一个名为“进销存”的数据库 。 • (3)使用向导创建一个名为“工资管理”的数据库。 • (4)使用企业管理器,修改SM数据库 。 • (5)使用SQL语句,修改SM数据库 。 • (6)使用SQL语句,删除“进销存”数据库。
实验3 管理数据库 • 3.问题解答 • SQL Server 2000中的数据库能否只包含数据文件? • 在Microsoft SQL Server 2000中数据库必须至少包含一个数据文件和一个事务日志文件,数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。
实验3 管理数据库 • 4.思考题 • (1)使用企业管理器删除“进销存”数据库。 • (2)在查询分析器中,通过模板创建一个名为“学生管理”的数据库。 • (3)从SM数据库中删除数据文件“SM_Data1”。
实验4 用T-SQL创建表 • 1.实验目的 • (1)熟悉各种数据类型。 • (2)能够运用T-SQL(Transact-SQL)语句正确创建表。 • (3)了解6种常用的数据完整性约束。 • 2.实验内容 • (1)使用T-SQL语句,创建SM数据库中的学生表Student。 • (2)创建SM数据库中的课程表Course。 • (3)创建SM数据库中的选课表SC。 • (4)输入SQL语句,查看表Student的定义。 • (5)输入SQL语句,查看表Student与其他表之间的依赖关系。 • (6)输入SQL语句,查看表Student上的约束。
实验4 用T-SQL创建表 • 3.问题解答 • (1)在为数据库设计表之前应考虑哪些问题? • 应该考虑两个问题:一是数据库中要存放哪些数据;二是这些数据如何划分到表中。
实验4 用T-SQL创建表 • 3.问题解答 • (2)什么是临时表? • 临时表是存储在tempdb数据库中的,当不再使用时会被自动删除。 • 在SQL Sever中可以创建两种临时表:局部临时表和全局临时表。局部临时表只能被当前的用户使用,即只能在创建它的会话内访问,当这一会话结束时,局部临时表自动被删除;而全局临时表在创建后能被所有的用户看到,当最后一个使用它的用户断开连接时才被自动删除掉。 • 可以用临时表来存储那些在永久存储前仍需加以处理的数据,例如,可以把多个数据合并起来创建临时表,在当前会话中访问这一临时表,这样就可以随时访问合并起来的数据,而不用引用各个数据库表。
实验4 用T-SQL创建表 • 4.思考题 • 建立班级表Class(CLno char(6) ,CLname varchar(30) ,DNo char(4),TNo char(5)),并修改表Student,设置CLno为外码约束。
实验5 用企业管理器创建表 • 1.实验目的 • (1)能够运用企业管理器正确创建表。 • (2)学会用企业管理器设置常用的数据完整性约束。 • 2.实验内容 • (1)利用企业管理器提供的图形界面来创建“进销存”数据库中的客户信息表c、货物表g和订单表o 。 • (2)在表o的goodsname列上创建外键约束。 • (3)在表o的quantity列上创建检查约束。 • (4)使用企业管理器,把SM数据库中的选课表SC的主码设置为SNo和CNo。 • (5)查看表间的依赖关系。 • (6)向表中输入数据。
实验5 用企业管理器创建表 • 3.问题解答 • 什么是数据完整性?关系数据库有几类完整性?怎样通过SQL Server来实现? • 数据完整性是指数据库中数据的正确性和一致性,保证数据库中数据的质量。一般有以下3类完整性。 • ① 实体完整性:通过主键约束来维护。 • ② 参照完整性:通过外键约束来维护。 • ③ 域完整性:通过唯一约束、检查约束、默认值和是否可以为空等约束来维护。
实验5 用企业管理器创建表 • 4.思考题 • (1)把表c中type列的默认值设置为1。 • (2)查看表o的依赖关系。
实验6 数据的复制与恢复 • 1.实验目的 • (1)熟练掌握附加数据库的方法。 • (2)熟练掌握数据导入和导出的方法。 • (3)熟练进行数据库的备份和还原。 • (4)了解差异备份和完全备份。 • 2.实验内容 • (1)对“进销存”数据库进行附加操作。 • (2)使用SQL语句对SM数据库进行附加操作。 • (3)对SM数据库进行备份。 • (4)删除SM数据库。 • (5)还原SM数据库。 • (6)将SM数据库中的数据导入到Excel表格中。 • (7)将Excel表中的数据导入到SS数据库中。
实验6 数据的复制与恢复 • 3.问题解答 • (1)系统数据库可以还原吗? • 在SQL Server 中,系统数据库存储的是系统信息,如果系统数据库被破坏,就必须还原系统数据库。 • 系统数据库的还原分为两种情况,当SQL Server服务可以启动时,可以用还原用户数据库的方法还原系统数据库;当SQL Server服务不能启动时,还原系统数据库的方法如下。 • ① 运行/binn下的文件“Rebuilem.exe”,重建系统数据库。 • ② 启动SQL Server服务。 • ③ 按Master,Msdb,Model的顺序还原系统数据库。
实验6 数据的复制与恢复 • 3.问题解答 • (2)在SQL Server 2000中,备份类型主要有哪些? • ① 完全备份:对数据库整体的备份。 • ② 差异备份:对数据库自前一个完全备份后改动的部分的备份。 • ③ 事务日志备份:对数据库事务日志的备份。
实验6 数据的复制与恢复 • 3.问题解答 • (3)利用数据导入导出,可以完成数据库的复制和恢复吗? • 可以,具体操作如下。 • ① 复制数据库结构。启动企业管理器,将鼠标指针指向左侧窗口要复制的数据库节点,单击鼠标右键,在弹出的快捷菜单中选择“所有任务”→“生成SQL脚本”命令,生成数据库结构的SQL脚本文件。 • ② 导出数据库数据。使用DTS将数据库中的数据导出到目标文件中。 • ③ 创建数据库。 • ④ 生成数据库结构。在查询分析器中,执行数据库结构的SQL脚本文件,生成指定数据库。 • ⑤ 导入数据库数据。使用DTS将目标文件中的数据导入数据库中。
实验6 数据的复制与恢复 • 4.思考题 • (1)分析下列SQL语句的功能。 • ① SP_ADDUMPDEVICE 'disk', 's_bak_mdf', 'd:\example\s_bak_mdf.bak' • GO • SP_ ADDUMPDEVICE 'disk', 's_bak_log', 'd:\example\s_bak_log.bak' • GO • BACKUP DATABASE SM TO s_bak_mdf • BACKUP DATABASE SM TO s_bak_mdf WITH DIFFERENTIAL • BACKUP LOG SM TO s_bak_log • ② RESTORE DATABASE SM FROM bak • RESTORE LOG SM FROM bak_log
实验6 数据的复制与恢复 • 4.思考题 • (2)对SM数据库进行差异备份、日志备份。 • (3)使用向导备份“进销存”数据库。 • (4)某企业的数据每周日晚12点进行一次全库备份,每天晚12点进行一次差异备份,每小时进行一次日志备份,数据库在2006/12/23 3:30崩溃,应如何恢复使数据损失最小? • (5)数据导入、导出的主要作用是什么?
实验7 表的维护 • 1.实验目的 • (1)熟练掌握用企业管理器修改表。 • (2)能够运用T-SQL语句对表结构进行修改。 • (3)熟练掌握用企业管理器编辑表中的数据。 • (4)能够运用T-SQL语句对表中的数据进行插入、修改和删除操作。 • 2.实验内容 • (1)使用企业管理器为表Student增加一列。 • (2)用SQL语句修改表Course的列属性,将CName的长度改为40,且不允许空。 • (3)用SQL语句向表Student中增加列Email,且要求输入的电子邮件地址必须包括“@”字符。 • (4)用SQL语句删除表Student中的列Address。 • (5)用SQL语句给表Student添加主键约束。
实验7 表的维护 • 2.实验内容 • (6)删除SName列上的主键约束。 • (7)使用with nocheck子句。 • (8)使约束无效或重新有效。 • (9)使用企业管理器编辑表Student中的数据。 • (10)用SQL语句向表中插入数据。 • (11)用SQL语句修改表中的记录。 • (12)用SQL语句删除表中的记录。
实验7 表的维护 • 3.问题解答 • 如果一个表被其他表通过外码约束引用,应该怎样删除? • 如果一个表被其他表通过外码约束引用,那么必须先删除定义外码约束的表,或删除其外码约束,当没有其他表引用它时,这个表才能被删除。
实验7 表的维护 • 4.思考题 • (1)TRUNCATE TABLE语句的作用是什么? • (2)对于表Student,分别执行DROP TABLE Student和DELETE Student两条命令,结果有什么不同?
实验8 常规数据查询 • 1.实验目的 • (1)掌握SELECT子句以及WHERE子句的使用方法。 • (2)学会应用ORDER BY子句。 • (3)掌握5种基本的聚合函数。 • (4)学会分组统计和二次查询。 • 2.实验内容 • (1)SELECT子句的应用。 • (2)WHERE子句的应用。 • (3)ORDER BY子句的应用。 • (4)聚合函数的应用。 • (5)聚合操作与分组统计的应用。
实验8 常规数据查询 • 3.问题解答 • (1)COMPUTE,COMPUTE BY和GROUP BY有何不同? • GROUP BY子句对查询结果进行分组,其返回的结果中只有合计数据,而没有原始的详细记录;COMPUTE子句生成合计作为附加的汇总列出现在结果集的最后;当与BY一起使用时,COMPUTE子句在结果集内生成控制中断和分类汇总,可在同一查询内指定COMPUTE BY子句和COMPUTE子句。 • (2)WHERE子句与HAVING子句有何不同? • HAVING子句和WHERE子句的相似之处就是都定义搜索条件;但是和WHERE子句不同,HAVING子句与组有关,而不是与单个的行有关。
实验8 常规数据查询 • 4.思考题 • 用SQL语句完成下列查询。 • ① 查询所有年龄为20岁的男生的信息。 • ② 查询选修00001号课程的学生的最高分。 • ③ 查询所有名字中含有“王”字的学生的信息。 • ④ 查询本学期正在选修00003号课程的学生的学号。
实验9 多表查询与子查询 • 1.实验目的 • (1)熟悉基本的连接操作,掌握内连接与外连接的方法,学会应用自身连接。 • (2)掌握相关子查询的使用方法。 • (3)掌握嵌套子查询的使用方法。 • (4)学会应用子查询修改数据。 • 2.实验内容 • (1)基本连接操作。 • (2)内连接操作。 • (3)外连接操作。 • (4)联合查询。 • (5)交叉连接。 • (6)自连接。 • (7)使用IN关键字。 • (8)使用EXISTS关键字。 • (9)使用比较运算符。 • (10)使用子查询修改数据。
实验9 多表查询与子查询 • 3.问题解答 • (1)创建查询时,应遵循的基本原则有哪些? • 创建查询时,应遵循的基本原则如下: • • FROM子句应当包括所有的表名。 • • WHERE子句应定义一个条件表达式,限定查询只能返回满足条件的记录。 • • 当列名为多个表共有时,列名必须被限制。
实验9 多表查询与子查询 • 3.问题解答 • (2)在含有JOIN关键字的连接查询中,其连接条件主要是通过哪些方法定义两个表在查询中的连接方式? • 指定每个表中要用于连接的列,典型的连接条件是在一个表中指定外键,在另一个表中指定与其关联的键。 • 指定比较各列的值时,要用比较运算符。 • (3)使用EXISTS关键字引入的子查询与使用IN关键字引入的子查询在语法上有哪些不同? • 主要有以下两方面不同。 • EXISTS关键字前没有列名或表达式。 • 由EXISTS关键字引入的子查询的SELECT列表通常都是由星号(*)组成。
实验9 多表查询与子查询 • 3.问题解答 • (4)能够在WHERE中使用的运算符有哪些?各运算符的功能是什么? • 能够在WHERE中使用的运算符及其功能如表1-9-1所示。
实验9 多表查询与子查询 • 4.思考题 • 连接表时,根据SELECT语句的不同,有时查询结果中会返回重复的行,应怎样使查询结果中不出现重复的行?
实验10 视图 • 1.实验目的 • (1)掌握创建视图的方法。 • (2)能够对视图进行修改。 • (3)能够通过视图修改数据。 • 2.实验内容 • (1)创建视图。 • (2)更新视图定义。 • (3)删除视图。 • (4)更新视图。
实验10 视图 • 3.问题解答 • (1)什么是可更新视图? • 如果创建一个视图,该视图没有汇总或聚集数据,每一列与一个基表中的一个源列对应,并且每一行都与一个源行对应,则这个视图便是一个可更新视图。
实验10 视图 • 3.问题解答 • (2)什么是关系图?如何建立和修改关系图? • 关系图是用来标记数据库中表之间的相互关联情况的,以图形显示通过数据连接选择的表或表结构化对象,同时也显示它们之间的连接关系。 • 在SQL Server中,一个数据库可以有多个关系图。在企业管理器中,依次展开树型目录,在指定数据库目录中选择“关系图”选项,单击鼠标右键,从弹出的快捷菜单中选择“新建数据库关系图”命令,可以创建新的关系图。对控制台目录中已有关系图的图标,选中一个单鼠标右键,从弹出的快捷菜单中选择“设计关系图”命令,可以对现有关系图进行修改。
实验10 视图 • 4.思考题 • (1)用SQL语句完成下列操作。 • ① 建立所有年龄为20岁的男生的视图。 • ② 将学生的学号和所选课程的门数建立一个视图。 • ③ 将所有职工的职工号和年薪建立一个视图。 • ④ 删除上面所建立的视图。 • (2)使用企业管理器完成上题所有操作。 • (3)使用视图向导创建所有年龄为20岁的男生的视图。 • (4)哪些视图不允许更新?
实验11 索引的创建与使用 • 1.实验目的 • (1)理解索引的概念和索引的作用。 • (2)掌握创建索引的方法。 • (3)学会使用索引。 • (4)了解聚簇索引和非聚簇索引。 • 2.实验内容 • (1)在TName列上创建索引。 • (2)使用索引向导,在SM数据库中,为表Student创建索引。 • (3)使用SQL语句在表Course上创建一个唯一性的聚簇索引,索引排列顺序为降序。 • (4)使用SQL语句在表Course上创建一个非唯一性的非聚簇索引。 • (5)查看表Course上的所有索引。 • (6)删除表Course上的索引。
实验11 索引的创建与使用 • 3.问题解答 • (1)创建索引之前应考虑什么问题? • 创建索引之前应考虑如下问题: • • 只有表的拥有者才能在表上创建索引。 • • 每个表上只能创建一个聚簇索引。 • • 每个表上最多能创建249个非聚簇索引。 • • 一个索引最大为900字节,在CHAR等类型的大型列上创建索引应考虑这一限制。 • • 一个索引最多包含16列。
实验11 索引的创建与使用 • 3.问题解答 • (2)如何通过企业管理器在已存在的表上建立索引、查看索引、修改索引和删除索引? • 在企业管理器中,用鼠标右键单击已存在的表,在弹出的快捷菜单中选择“所有任务”→“管理索引”命令,在“管理索引”窗口中进行相关操作。
实验11 索引的创建与使用 • 4.思考题 • (1)索引是否越多越好?为什么? • (2)聚簇索引和非聚簇索引有何区别?为什么每个表只能有一个聚簇索引?
实验12 管理数据库其他对象 • 1.实验目的 • (1)掌握如何创建、修改和删除规则。 • (2)理解规则与CHECK约束、DEFAULT约束的区别。 • (3)掌握如何创建、修改和删除默认值。 • (4)掌握如何创建、修改、删除和查看用户自定义的数据类型。 • 2.实验内容 • (1)创建规则。 • (2)捆绑规则。 • (3)解除捆绑的规则。 • (4)查看规则。 • (5)删除规则。 • (6)关于默认值的操作。 • (7)关于用户自定义数据类型的操作。
实验12 管理数据库其他对象 • 3.问题解答 • 规则与CHECK约束的不同之处在哪里? • 规则与CHECK约束的不同之处如下。 • ① CHECK约束是用CREATE TABLE语句在建表时指定的,而规则则需要作为单独的数据库对象来实现。 • ② 在一列上只能使用一个规则,但可以使用多个CHECK约束。 • ③ 规则可以应用于多个列,还可以应用于用户自定义的数据类型;而CHECK约束只能应用于它所定义的列。