《数据库系统原理》实验指导书_第1页
《数据库系统原理》实验指导书_第2页
《数据库系统原理》实验指导书_第3页
《数据库系统原理》实验指导书_第4页
《数据库系统原理》实验指导书_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浙江树人大学信息科技学院数据库系统原理实验指导书适合专业:计算机科学与技术本科专业编写部门:电子商务教研室编写日期:2013.09实验一:SQL Server 2005服务器管理1实验二:创建和管理数据库 4实验三:数据定义 7实验四:数据更新 10实验五:数据查询 1 13实验六:数据查询(2)14实验七:数据查询(3)17实验八:数据查询(4)19实验九:数据查询(5)21实验十:视图23实验-一:约束、默认、规则 25实验十二、十三:存储过程 28实验十四:数据库的备份与还原 31实验一:SQL Server 2005 服务器管理一、实验目的通过实验使学生掌握 SQL Server 20

2、05数据库服务器启动、暂停、停止的方法;掌握SQL Server 2005数据库服务器的注册方法。二、原理解析1、SQL Server 2005服务器注册注册服务器就是在 SQL Server Man ageme nt Studio 中登记服务器,然后把它加入到一 个指定的服务器组中,并在SQLServer Management Studio中显示SQL Server服务器的运行状态和在 SQL Server Management Studio 连接时自动启动 SQL Server服务器。2、SQL Server 2005的各种实用工具SQL Server Man ageme nt Studi

3、oSQL Server提供了多种实用工具来帮助用户管理和使用数据库,这些工具大大方便了 用户的工作。SQL Server Ma nageme nt Studio是微软管理控制台中的一个内建控制台,用来管理所有的SQL Server数据库。SQL Server Ma nageme nt Studio 查询窗口SQL Server Ma nageme nt Studio查询窗口是一个图形界面的查询工具,用它可以提交Tran sact-SQL语言,然后发送到服务器,并返回执行结果,该工具支持基于任何服务器的 任何数据库连接。性能监视器SQL Server提供了监视服务器性能和活动的功能,其功能是在选

4、择的计数器上设置阀 值,当达到阀值时,产生警告。利用性能监视器可以创建、观察和保存功能图表,用户可以 选择对象和计数器并把它们添加到图表中,不同颜色的图表代表不同的计数器,如果要使图表较小并且可读,可以创建不同的图表来监视不同的统计类型。活动监视器SQL活动监视器是图形工具,使系统管理员得以监视SQL Server 2005实例中的事件,可以捕获有关每个事件的数据并将其保存到文件或SQL Server表中供以后分析。SQL Server 2005 联机丛书提供如何使用 SQL Server 2005的各种帮助。3、SQL Server 2005的常用属性配置SQL Server 2005 的登

5、录方式设置SQL Server 2005 的连接设置4、SQL Server 2005服务器的运行管理SQL Server 2005服务器的启动、暂停和停止。三、实验内容1、启动、暂停和停止 SQL Server实例2、熟悉SQL Server 2005的各种实用工具3、SQL Server 2005服务器注册四、实验步骤1、启动、暂停和停止 SQL Server实例利用 SQL Server Management Studio在已注册的服务器或对象资源管理器中,右键单击要启动的服务器实例,然后单击“启动”。如果服务器名称旁边的图标上出现一个绿色箭头,则说明服务器已成功启动。用同样的方法可以暂

6、停和停止SQL Server实例。禾U用SQL Server配置管理器(1) 在“开始”菜单中,依次指向“所有程序”、“ Microsoft SQL Server 2005 ”和“配置工 具”,然后单击“ SQL Server配置管理器”。(2) 在SQL Server配置管理器中,展开“服务”,再单击 SQL Server。(3) 在详细信息窗格中,右键单击SQL Server (MSSQLServer),再单击“启动”。如果工具栏上和服务器名称旁的图标上出现绿色箭头,则指示服务器已成功启动。用同样的方法可以暂停和停止SQL Server实例。2、熟悉SQL Server 2005的各种实用

7、工具SQL Server Man ageme nt StudioSQL Server Man ageme nt Studio 查询窗口练习使用SQL Server 2005联机丛书3、SQL Server 2005服务器注册在对象资源管理器中,右键单击已经连接的服务器,然后单击“注册”。在“注册服务器”对话框的“服务器名称”文本框中,键入希望显示在“已注册的服务器”中的该服务器的名称。此项并不要求一定是服务器名称。在“服务器说明”文本框中,可以根据需要键入一些其他信息,以帮助标识服务器。在“选择服务器组”框中,单击服务器组,再单击“保存”。实验二:创建和管理数据库一、实验目的通过实验使学生掌握

8、 SQL Server 2005数据库的文件结构,数据库的创建和修改方法。二、原理解析1、SQL Server 2005数据库文件和文件组SQL Server 2005用文件来存放数据库,即将数据库映射到操作系统文件上。数据库文件有主数据文件、次数据文件、事务日志文件。主数据文件的后缀.mdf,次数据文件的后缀.nfd,事务日志文件的后缀 df。一个数据库有且仅有一个主文件, 事务日志文件至少一个, 次数据文件可有可无。SQL Server 2005中提供了两种类型的文件组:主文件组和用户自定义文件组。2、SQL Server 2005数据库类型SQL Server 2005数据库分为系统数据

9、库和用户数据库。系统数据库包括master数据库、tempdb数据库、model数据库和msdb数据库。3、SQL Server 2005数据库的创建方法SQL Server 2005数据库可以使用 SQL Server Management Studio创建,也可以使用 T-SQL语句来创建。用 SQL Server Management Studio创建数据库比较简单,只要设置好数 据库名和主文件、次文件以及日志文件的位置和逻辑名、物理名就可以了。下面介绍用T-SQL的CREATE DATABASE语句创建数据库。CREATE DATABASE database_ nameON, , n,

10、 , nLOG ON , , nCOLLATE collation_ nameFOR LOAD|FOR ATTACH:= PRIMARY(NAME=逻辑文件名,FILENAME=存放数据库的物理路径和文件名,SIZE=数据文件的初始大小,MAXSIZE=指定文件的最大大小,FILEGROWTH=旨出文件每次的增量)4、SQL Server 2005数据库的修改SQL Server 2005数据库的修改主要包括括修改数据库选项、扩充分配给数据库的数据或事务日志空间、 压缩分配给数据库的数据或事务日志空间、添加数据和事务日志文件、创建文件组等。本次实验要求掌握使用企业管理器工具和T-SQL语句及系

11、统存储过程对数据库进行管理。SQL Server 2005数据库的修改可以在 SQL Server Management Studio中完成,也可以使 用 T-SQL 的 ALTER DA TABASE 语句进行。ALTER DATABASE 语句的语法结构如下:ALTER DATABASE database, nameADD FILE , , nTO FILEGROUP filegroup_name/*在文件组中增加数据文件*/|ADD LOG FILE ,n/*增加事务日志文件*/IREMOVE FILE logical_file_ name/*删除数据文件*/|ADD FILEGROUP

12、 filegroup_ name/*增加文件组*/IREMOVE FILEGROUP filegroup_ name/*删除文件组*/|MODIFY FILE /*修改文件属性*/|MODIFY NAME=new_db name/*更新数据库名称*/、实验内容1、用 SQL Server Management Studio 创建数据库2、用CREATE DA TABASE语句创建数据库3、用 SQL Server Management Studio 修改数据库4、用ALTER DA TABASE语句修改数据库四、实验步骤1、利用SQL Server Studio创建学生数据库,数据文件的存放路

13、径和个数可以自己设定。2、 用 CREATE DATABASE 语句来创建一个名为 BOOK的数据库,它由 3MB的主数据文大数据文件的大小为10MB,次数据文件以 2MB的增长速度其最大次数据文件的大小为15MB,事务日志文件以1MB的增长速度其最大日志文件的大小为10MB。3、 在SQL Server Studio中将学生数据库的主文件大小改为4MB。4、用ALTER DATABASE 语句修改BOOK数据库,为其增加一个次要数据文件 (Book_data2.ndf ),该文件的大小是 5MB,最大可增长到 20MB,以20%的速度增长。5、 利用SQL Server Studio为学生数

14、据库增加一个文件组MyFilegroup。提示:通过数据库属性t文件组进行修改。6、用ALTER DATABASE 语句为BOOK数据库增加一个文件组 MyFilegroup。7、用ALTER DATABASE语句为 BOOK数据库增加两个次数据文件,并将他们放到MyFilegroup 文件组。实验三:数据定义一、实验目的通过实验使学生掌握用不用的方法设计数据库表结构、修改数据库表结构以及删除表结构。二、原理解析1、用 SQL Server 2005 的 SQL Server Management Studio设计数据库表结构用SQL Server 2005 的SQL Server Manag

15、ement Studio设计数据库表结构比较简单,只 要在表设计器中对表中的各个字段进行设计,主要包括字段名、字段的数据类型等。2、用T-SQL的CREATE TABLE 语句创建表结构CREATE TABLE 语句的语法结构如下:CREATE TABLE table_name(column_name datatype NOT NULL|NULL)3、用 SQL Server 2005 的 SQL Server Management Studio设计数据库表结构用SQL Server 2005 的SQL Server Management Studio设计数据库表结构比较简单,与 创建表结构类

16、似,只要打开表设计器,在表设计器中修改并加以保存就可以了。4、用T-SQL的CREATE TABLE 语句创建表结构CREATE TABLE 语句的语法结构如下:向表中添加列ALTER TABLE 表名ADD 列名列的描述删除列ALTER TABLE 表名DROP COLUMN 列名修改列ALTER TABLE 表名ALTER COLUMN 列名列的描述5、删除表结构使用 SQL Server Management Studio 删除表用T-SQL的DROP TABLE语句删除表DROP TABLE 表名三、实验内容1 用 SQL Server Management Studio 创建数据库表

17、2、用CREATE TABLE 语句创建数据库表3、用SQL Server Management Studio修改数据库表结构4、用ALTER TABLE语句修改数据库表结构5、用 SQL Server Management Studio 删除表6、用DROP TABLE语句删除表四、实验步骤学生数据库由三张包括三张表xsqk、xskc、xscj,各个表的结构如下:xsqk结构列名数据类型长度允许空值说明系别Char10V班级Char12V专业Varchar30V学号Char8X主键姓名Char8X性别Char2V默认值:男岀生年月Smalldatetime4V总学分TinyintV备注Tex

18、t16 Vxskc结构列名数据类型长度允许空值说明课程号Char3X主键课程名Char16X开课学期TinyintX规则:18学时TinyintX学分TinyintVxscj 结构列名数据类型长度允许空值说明学号Char8X主键课程号Char3X主键成绩TinyintV学分TinyintV1 利用 SQL Server Studio 创建 xsqk 表。2、用CREATE TABLE 语句创建 xskc表和xscj表。3、禾U用SQL Server Studio修改xskc表,向表中添加一个字段:字段名为授课教师、数据 类型为char、长度为10、并且允许为 NULL。4、用ALTER TAB

19、LE语句修改xskc,将刚刚添加的授课教师字段删除。5、 用ALTER TABLE 语句修改xskc,将课程名长度改为 18。6、用 SQL Server Studio 删除数据表 xscj。7、用DROP TABLE语句删除数据表 xskc。实验四:数据更新一、实验目的通过实验使学生掌握用不用的方法实现数据库表数据的插入、更新和删除。二、原理解析5、用 SQL Server 2005 的 SQL Server Management Studio实现表数据的更新用SQL Server 2005 的SQL Server Management Studio实现表数据的更新比较简单,只 要打开表,直

20、接在里边作修改,然后退出,系统会自动保存。6、用T-SQL的INSERT语句向表中插入数据INSERT语句的语法结构如下:INSERT INTO表名(列名)VALUES(表达式)7、用INSERTSELECT语句向表中批量插入数据INSERT SELECT语句的语法结构如下:INSERT INTO表名SELECTS句8、用T-SQL的UPDATE语句修改表数据UPDATE语句的语法结构如下:UPDATE 表名SET 列名=表达式WHERE 条件9、删除表数据用T-SQL的DELETE语句删除表数据DELETE语句的语法结构:DELETE 表名WHERE 条件用T-SQL的TRUNCA TE T

21、ABLE 语句删除表TRUNCATE TABLE 语句的语法结构:TRUNCATE TABLE 表名、实验内容4、用 SQL Server Management Studio 更新表数据5、用INSERT语句向表中插入数据3、用INSERTSELECT语句向表中插入数据4、用UPDATE语句修改表数据5、用DELETE语句删除表数据6、用TRUNCATE TABLE语句删除表数据四、实验步骤1 利用 SQL Server Studio向xsqk表、xskc表、xscj表中插入数据。表1学生情况表(xsqk )数据样本系别班级专业学号姓名性别出生年月总学 分备注计算机计算机0203计算机应用与维

22、 护02020101王玲玲女1981-8-269计算机计算机0203计算机应用与维 护02020102张燕红女1981-10-209计算机计算机0203计算机应用与维 护02020103杨勇男1982-3-15计算机计算机0203计算机应用与维 护02020104王红庆男1983-5-17计算机计算机0203计算机应用与维护02020105陈园女1982-4-12计算机信息管理0201信息管理02020201黄薇娜女1983-8-198计算机信息管理0201信息管理02020202沈昊男1982-3-188计算机信息管理0201信息管理02020203傅亮达男1983-1-22计算机信息管理0

23、201信息管理02020204任建刚男1981-12-21计算机信息管理0201信息管理02020205叶小红女1983-7-16表1学生课程表(xskc )数据样本】田千口 i=r. 课程号课程名开课学期学时学分101计算机文化基础1864102Qbasic1684205离散数学3644206VC2684208数据结构2684210操作系统3644212计算机组成4865216数据库原理2684301计算机网络5563表2学生成绩表(xscj )数据样本学号】田千口 i=r. 课程号成绩学分020201011018540202010110270502020102101904020201021

24、02805020202011018640202020120880402020202208504020202022166042、用向xskc表中插入如下表所示的两条记录。假设学生成绩表(xskc)中有如下数据:表4要插入的记录值课程号课程名开课学期学时学分102Qbasic1684205离散数学36443、利用 SQL Server Studio Management 修改 xsqk 表、xskc 表、xscj 表中的数据。4、 用UPDATE语句修改xskc,将102课程的学分改为 6。5、 用UPDATE语句修改xsqk,将信息管理专业学生的总学分改为12。6、用DELETE语句删除“离散数

25、学”的课程信息。7、用DELETE语句删除1983年出生的学生信息。8、用DELETE语句删除不及格的选课信息。9、用TRUNCATE TABLE 语句删除xsqk表中的所有信息。实验五:数据查询 1一、实验目的通过对SELECT的使用,掌握SELECT语句的结构及其应用,掌握基于单 个表的查询。二、原理解析语法格式为:SELECT目标列组FROM数据源WHERE元组选择条件GROUP BY分列组HAVING 组选择条件ORDER BY排序列1排序要求1,n(1) SELECT子句SELECT子句用于指明查询结果集的目标列。(2) FROM 子句FROM子句用于指明查询的数据源。(3) WHE

26、RE 子句WHERE子句通过条件表达式描述关系中元组的选择条件。GROUP BY子句GROUP BY子句的作用是按分组列的值对结果集分组。(5) ORDER BY子句ORDER BY子句的作用是对结果集进行排序。三、实验内容(1) 取出生年月小于1982-1-1 的学生名单。(2) 检索xsqk表中的所有记录数据。(3) 查询班级为“计算机 0203”的学生学号、姓名、性别。(4) 查询出生年月在“ 1981-01-01 ”至“ 1982-05-01 ”之间的学生情况。(5) 查询姓名中含有“红”字的学生情况。(6) 查询出生年月在“ 1981-01-01 ”至“ 1982-05-01 ”之间

27、的学生情况,并以出生年月按降 序排列。(7) 统计学生情况(xsqk)表中“计算机0203”的班级有多少人。(8) 统计学生成绩(xscj)表中每门课程的最低分、最高分和平均分。(9) 在学生成绩库中查询出生年月在“1981-01-01 ”至“ 1982-05-01 ”之间的男生姓名,班 级,出生年月,并以出生年月按降序排列。(10)统计“信息管理”专业的人数。(11)查询至少选修了二门及以上课程的学生学号。(12)查询至少被2位学生选修的课程号。实验六:数据查询(2)、实验目的通过对SELECT的使用,掌握SELECT语句的结构及其应用,掌握连接查 询。二、原理解析语法格式为:SELECT目

28、标列组FROM数据源WHERE元组选择条件GROUP BY分列组HAVING 组选择条件ORDER BY排序列1排序要求1,n(1) SELECT子句SELECT子句用于指明查询结果集的目标列。(2) FROM 子句FROM子句用于指明查询的数据源。(3) WHERE 子句WHERE子句通过条件表达式描述关系中元组的选择条件。GROUP BY子句GROUP BY子句的作用是按分组列的值对结果集分组。(5) ORDER BY子句ORDER BY子句的作用是对结果集进行排序。三、实验内容1. 查询学号为2020102的学生所选的全部课程的课程名和成绩。2. 查询没有学生选的课程号。3查询没有成绩的

29、课程号,课程名。4查询没有选修102号课程的学生姓名。5. 查询选修了 101课程并且成绩在80分以上的所有学生(学号、姓名)。6. 查询与“王玲玲”在同一专业学习的学生姓名。7. 查询选修了课程名为“计算机文化基础”的学生学号和姓名。8. 查询选修了课程名为“计算机文化基础”或“数据结构”的学生学号和姓 名。(用连接查询实现)9统计每个学生每个学期的最低分、最高分及平均分(姓名、开课学期、最低分、最高分、平均分)10.查询每门课程的最高分(课程号、课程名、最高成绩)。11查询所有有选课记录的学生的情况(姓名,课程名,成绩。)12.查询选修了学号为“ 2020101 ”的学生所选的某门课程的学

30、生编号实验七:数据查询(3)一、实验目的通过对SELECT的使用,掌握SELECT语句的结构及其应用,掌握连接查 询。二、原理解析语法格式为:SELECT目标列组FROM数据源WHERE元组选择条件GROUP BY分列组HAVING 组选择条件ORDER BY排序列1排序要求1,n(1) SELECT子句SELECT子句用于指明查询结果集的目标列。(2) FROM 子句FROM子句用于指明查询的数据源。(3) WHERE 子句WHERE子句通过条件表达式描述关系中元组的选择条件。GROUP BY子句GROUP BY子句的作用是按分组列的值对结果集分组。(5) ORDER BY子句ORDER B

31、Y子句的作用是对结果集进行排序。三、实验内容1、查询所有学生的姓名和课程名称。2、查询平均成绩在60分以上的学生姓名。3、查询每个学生的姓名、所选修的课程名及成绩。4、查询选修了课程的学生姓名。5、查询选修课程数在两门以上的学生姓名。(用连接查询和嵌套查询两种方法实 现)&查询成绩及格的学生人数。7、查询成绩及格的学生人次。8、查询所有学生都没有选修的课程名称。9、查询每个学生的平均成绩,并按平均成绩的降序排序。10、查询每个同学的最高分,要求显示学号、姓名和分数等信息。11、查询选修同一门课程的学生学号。实验八:数据查询(4)一、实验目的通过对SELECT的使用,掌握SELECT语句的结构及

32、其应用,掌握连接查 询。二、原理解析语法格式为:SELECT目标列组FROM数据源WHERE元组选择条件GROUP BY分列组HAVING 组选择条件ORDER BY排序列1排序要求1,n(1) SELECT子句SELECT子句用于指明查询结果集的目标列。(2) FROM 子句FROM子句用于指明查询的数据源。(3) WHERE 子句WHERE子句通过条件表达式描述关系中元组的选择条件。GROUP BY子句GROUP BY子句的作用是按分组列的值对结果集分组。(5) ORDER BY子句ORDER BY子句的作用是对结果集进行排序。三、实验内容1、查询所有课程成绩都及格的学生姓名。select

33、 姓名 from xsqk where 学号 in(select 学号 from xscjgroup by 学号having min(成绩)=60)2、查询没有选修“操作系统”课程的学生姓名。select 姓名 from xsqk where 学号 not in(select 学号 from xscj,xskc where xscj.课程号=xskc.课程号and课程名=操作系统)3、查询没有选修任何课程的学生姓名。select 姓名 from xsqkwhere 学号 not in(select 学号 from xscj)4、查询没有成绩的学生姓名。select 姓名 from xsqkwh

34、ere 学号 in(select 学号 from xscj where 成绩 is null)5、查询同时选修了 “101 ”和“ 208”课程的学生姓名。select 姓名 from xsqk,xscjwhere xsqk.学号=xscj.学号 and 课程号=101 a nd xscj.学号 in(select 学号 from xscj where 课程号=208)&求至少选修“101 ”和“ 208”其中一门课程的学生姓名select 姓名 from xsqk where 学号 in(select 学号 from xscj where 课程号=101 or 课 程号=208)7、查询成绩

35、在所有同学成绩平均分之上的学生姓名。select 姓名 from xsqk where 学号 in(select 学号 from xscj where 成绩 (selectavg(成 绩)from xscj)实验九:数据查询(5)一、实验目的通过对SELECT的使用,掌握SELECT语句的结构及其应用,掌握连接查 询。二、原理解析语法格式为:SELECT目标列组FROM数据源WHERE元组选择条件GROUP BY分列组HAVING 组选择条件ORDER BY排序列1排序要求1,n(1) SELECT子句SELECT子句用于指明查询结果集的目标列。(2) FROM 子句FROM子句用于指明查询的

36、数据源。(3) WHERE 子句WHERE子句通过条件表达式描述关系中元组的选择条件。GROUP BY子句GROUP BY子句的作用是按分组列的值对结果集分组。(5) ORDER BY子句ORDER BY子句的作用是对结果集进行排序。三、实验内容1、查询有学生选修的课程名称 select 课程名 from xskc where 课程号 in (select 课程号 from xscj)2、查询同时选修了 “101 ”和“ 208”课程的学生姓名。(用自身连接查询实现)select 姓名 from xsqk where 学号 in(select a.学号 from xscj a,xscj b w

37、here a.学号=b学 号 and a 课程号=101a nd b.课程号=208)3、查询选修了课程名为“计算机文化基础”或“数据结构”的学生学号和姓名。 (用联合查询实现)select xsqk.学号,姓名 from xsqk,xscj,xskc where xsqk.学号=xscj.学号 and xskc.课程号=xscj. 课程号and课程名=计算机文化基础unionselect xsqk.学号,姓名 from xsqk,xscj,xskcwhere xsqk.学号=xscj.学号 and xskc.课程号=xscj.课程号and课程名=数据结构4、查询每个同学的最高分。(姓名、成绩

38、)select 姓名,max(成绩)from xsqk,xscj where xsqk. 学号=xscj.学号group by 姓名5、查询平均成绩及格的学生姓名。select 姓名 from xsqk,xscjwhere xsqk.学号=xscj.学号group by 姓名having avg(成绩)=60&查询每个同学成绩及格的课程门数。(姓名、及格课程数)select 姓名,count(*)及格课程数 from xsqk,xscj where xsqk.学号=xscj.学号and 成绩 =60group by 姓名实验十:视图一、实验目的通过实验使学生掌握视图的创建、视图的查询以及通过视

39、图更新(插入、修改、删除) 基本表中的数据。二、原理解析1、用 SQL Server 2005 的 SQL Server Management Studio创建视图用SQL Server 2005 的SQL Server Management Studio创建视图比较简单,只要打开视 图设计器对视图进行编辑就可以完成视图的创建。2、用T-SQL的CREATE VIEW 语句创建视图CREATE VIEW 语句的语法结构如下:CREATE VIEW视图名(列名 1,列名 2, n)WITH 属性AS查询语句WITH CHECK OPTION3、视图查询视图创建后就可以像使用基本表一样来使用,可以

40、通过视图进行查询。基于视图的查询能够简化查询语句。4、视图更新通过视图更新可以实现基本表数据的更新,视图更新包括视图的插入、修改和删除操 作。5、视图删除DROP VIEW视图名三、实验内容1、用 SQL Server Management Studio 创建视图2、用CREATE VIEW 语句创建视图3、视图查询4、视图更新5、视图删除四、实验步骤1、 用 SQL Server Management Studio创建视图。为学生情况( XSQK )表创建一个视图V_XSQK,以显示学生的基本信息,如学号、姓名、性别和出生年月。2、用T-SQL的CREATE VIEW语句创建上述视图。3、用

41、CREATE VIEW 语句创建视图 V_Student,要求显示学生的姓名、选修的课程名和成绩。4、查询在1981-1-1以后出生的学生信息,包括学号,姓名,性别和出生年月。5、查询成绩合格的学生信息,包括姓名、课程名和成绩。6、创建分组视图 V_STUDENT1,要求查询每个学生的平均成绩,包括姓名,课程名,平均成绩。7、 向视图 V_XSQK中插入一条记录: 2020206李红,1983-12-3 并观察 XSQK表中的数据是否发生变化。8、 修改视图V_XSQK,将李红同学是出生年月改为1982-12-3,并观察XSQK表中数据的 变化。9、删除视图V_XSQK中李红同学的信息,并观察

42、 XSQK表中数据的变化。10、查询平均成绩在 60分以上的学生信息,包括姓名和平均成绩。实验一:约束、默认、规则一、实验目的通过数据库中约束、默认和规则的使用,掌握约束、默认、规则的概念及约 束、默认、规则的操作和使用方法。二、原理解析数据完整性维护数据库输入数据的正确性和一致性,通过定义数据完整性规 则,SQL Server可以通过自身提供的完整性规则有效地管理数据的输入, 而不必 要使用额外的应用程序来协助管理,这样一方面可以节省系统开销,另一方面使 数据库中的数据独立于应用程序,使创建开放式数据库系统成为可能。数据完整性包括实体的完整性、域完整性、参照完整性和用户自定义完整性。1、实体

43、完整性实体完整性将记录行定义为特定表的唯一实体。实体完整性强制表中的所有 记录都有一个惟一的标识符列(通过UNIQUE约束、PRIMARY KEY 约束或IDENTITY属性)。例如:在学生情况表中,学生的学号是惟一的,它与每个学 生对应。2、域完整性域完整性是指给定列的输入有效性。强制域有效性的方法有:通过限制数据 类型(包括自定义数据类型)、格式(CHECK约束和规则)或可能的取值范围(FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)来实现。3、参照完整性参照完整性能确保数据库中数据的一致性。在SQL Server中,参照完整性基于外键与

44、主键之间或外键与唯一键之间的关系(通过FOREIGN KEY和CHECK约束)。参照完整性确保键值在所有表中一致,这样的一致性要求不能 引用不存在的值(即指向不存在的行)。如果在被参考的表中,某一记录被外部 键参考,则该记录就不能删除,若需要更改键值,那么在整个数据库中,对该键 值的所有引用都要进行一致的更改。参照完整性在输入或删除记录时保持表之间已定义的关系。当设置了参照完整性时,SQL Server将从以下几个方面限制用户对数据库的操作:当主表中没有关联的记录时,向一个相关表添加记录。更改了主表中的键值但没有更改相关表中的数据,从而使相关表中的记录无法在主表中找到对应记录。从主表中删除记录

45、,但在相关表中仍存在与该记录相匹配的记录。例如:在学生成绩库中,只要学生在成绩表中有成绩记录, 则该学生记录就 不能直接在学生情况表中删除。4、用户定义完整性可以在SQL Server中定义不属于上述类别的特定规则的用户完整性定义。 所有的完整性类型都支持用户定义完整性(CREATE TABLE中的所有列级和表 级约束、存储过程和触发器)。在SQL Server中,有两种方式可以实现数据完整性,声明数据完整性和过 程数据完整性。声明数据完整性是通过在对象定义中定义的标准来实现数据完整 性,是由系统本身的自动强制功能来实现的, 它包含使用各种约束、默认和规则。 而过程数据完整性是通过在脚本语言(

46、使用触发器或存储过程)中定义的完整性 标准来实现的,当这些脚本被执行时,就可以强制完整性的实现。三、实验内容(1)对学生情况表xsqk使用NOT NUL约束限制系别、学号和姓名列不能为空,使 用PRIMARY KEY约束将学号设置为主键,使用CHECKS束对性别列中的值进行限制, 使其值只能接受“男”或“女”,以强制执行域的完整性,性别的默认值为“男”(2)在学生课程表中创建DEFAULT勺束,约束名为Period_Def,要求实现使学 时列的默认值设置为72。(3)在学生成绩表中创建 FOREIGNKEY约束,约束名为 Con_CourseNo要求实 现把学生成绩表中的“课程号”列和学生课程

47、表中的“课程号”关联起来。(4) 为学生课程表中的学分列定义一个DEFAULTS束,默认值为4。(5)在学生成绩表中定义FOREIGN KE约束,把学生成绩表中的“学号”列和 学生情况表中的“学号”关联起来。(6)创建一个默认值为1982/1/1的默认值。(7) 将创建的Default_Birthday默认值绑定到学生情况表的出生年月列上。(8)创建一个规则rule_Term_Ra nge,用以限制输入该规则所绑定的列中的数 据范围为1&(9)将上题创建的rule_Term_Range规则绑定到学生课程表的开课学期列上。(10) 定义一个规则rule_Speciality,这个规则限制学生情况

48、表中的专业列只 能取以下的值:计算机应用与维护、信息管理、电子商务、电子技术。绑定后给 学生情况表插入数据行,观察规则的设置情况,使用完毕后,解除并删除该规则。 实现过程要求使用SQL语句完成。(11 )将上述题目中的要求在 SQL Server Management Studio中加以实现。实验十二、十三:存储过程一、实验目的通过实验使学生加深对数据完整性的理解,学会创建和使用存储过程。二、原理解析1、存储过程概述存储过程是指,在一个执行规划中预先定义并编译好的一组Transact-SQL语句。这些语句在一个名称下存储并作为一个单元进行处理。存储过程是编写数据 库代码中的重要成份。它们可以是

49、构成任何一个由数据库支撑的应用程序的代 码,并且能被这些应用程序中的任何一个调用。存储过程能在查询分析器(Query An alyzer )窗口运行。它们可以被批处理 文件调用,也可以由Access、Visual Basic或者其他编程语言的用户接口程序来 调用。可以像其他子例程调用一样,把参数传给存储过程。存储过程会返回数据 值、状态代码以及错误信息,这样用户就可以做出适当的响应。 存储过程也能调 用其他存储过程。存储过程能够在本地计算机或远程服务器上运行。在执行系统内部任务时,用户可以指示 SQL Server自动运行某种存储过程。存储过程类型包括系统存储过程、本地存储过程、临时存储过程、

50、远程存储过程和扩展存储过程。通过存储过程的创建、执行、修改和删除操作,初步了解存储过程的类型,掌握利用存储过程进行程序设计的方法技巧。2、存储过程的类型系统存储过程、用户自定义存储过程、扩展存储过程。3、在SQL中创建存储过程的语法创建存储过程的语法为:CREATE PROC EDURE procedure, name ; number parameter data_type VARYING = default OUTPUT ,n WITH RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATION AS sql_statem

51、e nt n 4、存储过程的执行执行存储过程:EXEC UTE return_status = procedure,name ; number | procedure_name_varparameter = value | variable OUTPUT | DEFAULT ,n WITH RECOMPILE 5、存储过程中的参数输入参数和输出参数(OUTPUT)。三、实验内容(1)创建不带参数的存储过程。(2)创建带输入参数的存储过程。(3)创建带输出参数的存储过程。四、实验步骤1、在学生成绩库中创建存储过程,存储过程名为 procl,要求实现如下功能:根据学生学 号,查询该学生的选课情况,

52、其中包括该学生学号、姓名、性别、课程号、课程名、成绩和学分等。2、 现有一学生学号为“ 02020101 ”,要求通过调用上例中所建的名为procl的存储过程,实 现显示该学生的选课情况列表。3、 在学生成绩库中创建一个名为proc2的存储过程,产生一个学生选课情况列表,其中包 括学号、姓名、性别、课程号、课程名、成绩、学分等,并调用该存储过程查看学生的选课 情况。4、 在学生成绩库中创建一个名为proc3的存储过程,产生某门课程的选课学生情况列表, 其中包括课程号、课程名、学号、姓名、系别、班级、专业、性别等。要求输入某门课程的 课程号,得到上述信息。5、 利用上述存储过程查询课程号为“101 ”的课程的选课学生情况列表。6、 定义存储过程proc4,要求实现输入学生学号,根据该学生所选课程的平均成绩显示提示 信息,即如果平均成绩在60分以上,显示“此学生综合成绩合格!”,否则显示“此学生综合成绩不合格! ”。7、 利用已创建的存储过程查询学号为“02020101 ”同学的平均成绩情况。8、定义存储过程 proc5,要求实现输入学号,输出该学生所选课程的平均成绩,要求用输 入参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论