第一范文网 - 专业文章范例文档资料分享平台

实验指导书(数据库系统原理及应用)- 副本 (2)

来源:用户分享 时间:2020-06-24 本文由寂寂无言 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验三 SQL Serve中的连接查询

一、 实验目的:

1. 掌握采用Transact-SQL实现连接查询。 2. 掌握等值连接(自然连接)、自身连接、外连接和复合条件连接的查询方法。

二、 实验内容:

按照《数据库系统概论》P82页中的学生课程数据库和P75页中的SPJ数据库完成以下查询

(1) 查询使用红色零件的工程名称。

(2) 查询每个工程的信息及相应的供应信息(包括列出尚未被供应零件的那些工程)。 (3) 查询供应工程J1红色零件的供应商号SNO,请用两种方法实现。 (4) 求供应工程J1零件的供应商的完整信息。 (5) 查询使用北京供应商供应零件的工程信息。

(6) 查询选修3号课程且成绩在85分以上的所有学生。 (7) 查询先行课的学分为4的课程信息。 (8) 查询课程与其间接先行课的名称。

(9) 查询其他系中比计算机科学系所有学生年龄都小的学生完整信息,用两种方法实现。 (10) 查询其他系中比计算机科学系某一学生年龄大的学生姓名与年龄,用两种方法实现。 (11) (可选)查询至少用了供应商S1所供应的所有零件的工程号JNO,用带EXISTS谓词的子查询实现。 (12) (可选)查询使用了全部零件的工程号JNO,用带EXISTS谓词的子查询实现。 (13) (可选)查询所有使用了P3零件的工程号JNO,用带EXISTS谓词的子查询实现。

三、实验要求:

1. 写出正确的Transact-SQL命令。

2. 无须记录正确的查询结果。要求记录实验过程中发生的有学习意义的错误及错误信息。

四、实验小结

实验四 SQL Serve的数据更新、视图

一、实验目的:

1. 掌握采用Transact-SQL实现嵌套查询。 2. 掌握采用Transact-SQL实现数据更新。

3. 掌握采用Transact-SQL实现视图的定义、删除、查询与更新。

二、实验内容

按照《数据库系统概论》P82页中的学生课程数据库和P75页中的SPJ数据库完成以下操作:

(一)数据更新

1) 插入一个学生:张红,女,200215135,信息系,20岁 2) 插入一个选课录:200215135,1,成绩未定 3) 将计算机系所有学生的年龄加1岁 4) 删除所有200215130学生的选课记录 5) 删除所有姓张的同学的信息

6) 请自行设计案例对学生-课程数据库的数据更新,并观察是否有违反数据的完整性约束。 (二)视图

1)创建一个学生成绩统计视图,包括学号,姓名,选课门数,平均分,最高分,最低分 2)利用上题所建视图实现:

①查询成绩高于自己平均成绩的选课记录 ②查询每个同学获得最高分的选课记录 3)请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:

①找出三建工程项目使用的各种零件代码及其数量; ②找出供应商S1的供应情况;

三、实验要求

1. 写出正确的Transact-SQL命令。

2. 无须记录正确的查询结果。但要求记录实验过程中发生的有学习意义的错误及错误信

息。

四、实验小结

实验五 数据控制(完整性与安全性)

一、实验目的:

1. 通过实验加深对数据库完整性与数据库安全性的理解; 2. 掌握SQLServer对数据进行安全性控制的方法 二、实验内容和要求 (一)数据库完整性

某公司使用数据库进行内部管理:表Employees存储雇员的代号(整型,标识位,种子1000001,增量为1,主键)、身份证号码(18个字符)、名字(最长20个字符)和工资等信息;表Departments存储部门的部门号(2个字符,唯一,主键)、部门名称(30个字符)等信息;表Work每一行表示某雇员在某部门工作过及其开始工作时间和备注。

请写出创建这三个表的SQL语句,要保证:工资的值大于0,身份证号码唯一,开始工作时间非空,默认值为当前时间。

(二) 以sa登录查询分析器,输入下列代码并执行 第1行 exec sp_addlogin 's1','123' 第2行 use StuDB

第3行 exec sp_grantdbaccess 's1','u1'

第4行 grant select,insert,update on student to public 第5行 grant all on student to u1

第6行 revoke select on student to u1 问:

1)第1行创建了一个名为s1登录帐户,请问'123'的含义是什么?

2)第3行将登录帐户s1映射到数据库用户u1上,它将作为哪个数据库的用户? 3)请解释4到6行的含义

4)在查询分析器中以s1帐户连接服务器,能否对学生-课程数据库的student表进行select操作,为什么?

(提示:废除权限是删除已授予的权限,并不妨碍用户、组或角色从更高级别继承已授予的权限。因此,如果废除用户查看表的权限,不一定能防止用户查看该表,因为已将查看该表的权限授予了用户所属的角色。)

5) 切换回sa用户的查询窗口,输入下面代码并执行

deny select on student to u1 请问该代码含义?

再切换至s1的查询窗口,能不能对student 表进行查询操作?为什么?

(三)请完成以下操作,并记录完整语句。在实验过程注意验证语句的执行效果。

(1)需要为学生-课程数据库,创建一用户,该用户以“SQL Server身份验证”方式登录SQL Server 服务器的账号为学生自己的姓名,密码为“123”。

(2)给该登录用户映射到数据库用户user2上,并赋予该用户对student表的sno、sname两列的查询权限,对sc表的所有操作权限及对course的查询权限。 (请先执行revoke select on student from public Revoke all on sc from public

注:新建用户自动被加入到public角色中)

(3)请分析、验证数据库用户user2的权限。

(4)用户user2授予对course表的插入操作权限,并允许将此权限授予其它用户 (5)收回授予user2对sc表的所有权限 (6)创建一个角色 R1

(7) 然后使用GRANT语句,使角色R1拥有SC表的SELECT、UPDATE、INSERT (8)将这个角色授予user2。使它具有角色R1所包含的全部权限。

三、实验要求:

1) 写出正确的Transact-SQL命令。

2) 无须记录正确的查询结果。要求记录实验过程中发生的有学习意义的错误及错误信息。

四、实验小结

实验六 语法元素与流程控制

一、实验目的:

1) 掌握Transact-SQL局部变量的声明、赋值和使用方法以及全局变量的运用方法,掌握Transact-SQL的局部变量的作用域概念。

2) 掌握Transact-SQL的控制流语言的使用方法。

3) 掌握与控制流语言语句一起使用的其它 Transact-SQL 语句: CASE、/*...*/(注释)、--(注释)、PRINT。 二、实验内容和要求

1、使用局部变量、全局变量

(1)定义一个int的整型变量,为其赋值45,并显示变量的值。

(2)定义一个长度为20的可变长度型字符变量,为其赋值“Welcome to FJUT”, 并显示变量的值。

(3)在批处理中声明两个局部变量@ssex和@sdept并对它们赋值,对Student表进行查询,要求两局部变量在SELECT 语句的 WHERE 子句中被使用,查询的要求是性别为‘女’或所在系为‘IS’系的那些学生。 (4)查询当前数据库服务器名。 (5)查询当前数据库管理系统版本。

(6)在student表中执行所有学生年龄加1岁语句,并用 @@ROWCOUNT 来检测是否有发生更改的行。 2. 函数的使用 (1) 数学函数的使用

分别用函数求出-3的绝对值,16的平方根,5的三次方。 (2) 字符串函数的使用

1)分别将字符串'china'、'MACHINE'转换成大写、小写字母; 2)去掉字符串' machine '左边的空格,右边与'press'连接起来; (3) 日期、时间函数的使用

1)返回系统当前日期并以整数形式返回当前日期的年份、月份、日; 2)返回给定日期“2006-2-21”与当前日期相差的天数。 (4) 系统函数与元数据函数的使用 显示正在使用的用户名

3.编写较复杂的Transact-SQL程序

1) 在 SELECT 语句中,CASE 搜索函数允许根据比较值在结果集内对值进行替换。要求仿照《数据库概论》的sc表,根据学生的成绩范围将成绩(grade 列)显示为文本注释。(要求:<60分,文本注释为“不及格”,60-70,“及格”,70-80,“中”,80-90,“良”,90-100,“优”)。

2) 用Transact-SQL语言编写程序计算1~100之间所有能被7整除的数的总和。 3) 自选实例,实践并掌握Transact-SQL以下控制流语言的使用方法: BEGIN...END、WHILE、BREAK、CONTINUE、IF...ELSE、WAITFOR

4) 自选实例,实践并掌握以下Transact-SQL语句:/*...*/(注释)、--(注释)、PRINT

三、实验要求:

1) 写出正确的Transact-SQL命令。

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育实验指导书(数据库系统原理及应用)- 副本 (2)全文阅读和word下载服务。

实验指导书(数据库系统原理及应用)- 副本 (2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1101284.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top