实验(一)熟练掌握SQL语言实验目的.pdf

上传人:hg158****2095 文档编号:80801204 上传时间:2023-03-23 格式:PDF 页数:7 大小:296.66KB
返回 下载 相关 举报
实验(一)熟练掌握SQL语言实验目的.pdf_第1页
第1页 / 共7页
实验(一)熟练掌握SQL语言实验目的.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《实验(一)熟练掌握SQL语言实验目的.pdf》由会员分享,可在线阅读,更多相关《实验(一)熟练掌握SQL语言实验目的.pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验(一):熟练掌握 SQL 语言 实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。实验内容:具体包括如下三部分。一、熟悉上机环境。客户/服务器结构,数据库服务器在一台 NT 服务器上,同学们通过客户机(操作系统为 Windows 2000)上安装的 SQL Server 客户端程序,使用 SQL Server 数据库服务器。具体包括:1.了解 SQL Server 环境。鼠标点击开始,进入“Microsoft SQL Server 企业管理器”,点击 SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)),可

2、以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。因为,数据库服务器上建有许多数据库,每个数据库都有一些合法的用户。2.鼠标点击开始,进入“Microsoft SQL Server 查询分析器”,输入用户名和口令,进入 SQL 查询分析器。如:你登录的客户机为 27 号,那么请以用户名 user27,口令为 user27 登录,登录后缺省连到数据库 user27 上,user27/user27 是数据库 user27 的创建者,

3、因此用户 user27/user27 具有在数据库 user27 上创建表等一切权力。3.在 SQL 查询分析器环境下,你就可进行 SQL 命令语句操作了。二、在数据库 useri 上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。1.描述学生、课程情况的 E-R 图如下,请将其转化为用关系数据模型描述的关系模式 2.在数据库中定义这些关系模式 3.插入相应的数据,试着插入重复的元组,结果如何?4.在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于 14 岁,不大于 35 岁),如果约束不能建立,请分析原因,修改后建立上述约束。5.如果

4、约束建立后,请试着插入重复元组,结果如何?学生课程选修学号姓名年龄所在系成绩课号课程名学时学分先行课号实验(二):熟练掌握 SQL 语言 用 SQL 完成下列查询 1.求选修了课程的学生的学号,要求:(1)不用 distinct 消除重复元组,写出其 SQL 语句(2)用 distinct 消除重复元组,写出其 SQL 语句(3)如果该查询写成:select Students.Sno from Students,SC where Students.Sno=SC.Sno 请问该查询结果和上面哪个结果是相同的?2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名 3.求计算机系和数学

5、系的学生学号、姓名和年龄 4.求不是数学系、计算机系的学生的情况,要求 select 后写*代替列出所有的列名 5.求全体学生的信息,要求按年龄升序排列 6.求计算机系年龄在 1820 岁之间的学生姓名和年龄 7.求姓名时以 D 开头的数学系学生 8.求选修了 C2 课程的学生的学号、姓名、成绩 9.求学号为 95 开头的学生的学号和所选修的课程的学分 10.求选修 C1 课程且成绩为 80 分以上的学生的学号、姓名和成绩 11.求计算机系每个学生的姓名,选修的课程名和成绩 12.求每个学生的学号及平均成绩 13.求男学生每一年龄组中超过 50 人的年龄组及人数 14.求每一门课程的间接先行课

6、号 15.求选修了全部课程的学生的学号 实验(三):数据库的安全性和完整性 实验目的:了解和使用安全子系统;进行完整性定义和检查。实验内容:具体包括如下三部分。一 熟练掌握 SQL(续)1.修改表 Students,在其中加入一个字段性别 sex char(1)2.创建索引:在 Students 表的 Sno 上创建唯一聚簇索引,在 SC 表的(Sno,Cno)上创建唯一索引.查询Students表的内容,记录的顺序有变化吗?查询SC表的内容,记录的顺序有变化吗?3.创建视图 创建计算机系学生视图 CS_Students,其中包括学号、年龄和性别。带 with check opition 子句

7、 不带 with check opition 子句 时各插入一计算机系学生记录,通过视图查询插入的记录,结果如何?通过表 Students 查询插入的记录,查看所在系字段上的值?创建一视图,表示学生的平均成绩,其中包括 Sno,avgGrade。通过该视图插入一学生姓名和平均成绩,结果如何?通过该视图查找平均成绩在 90 分以上的学生的学号和平均成绩,结果又如何?二 了解和使用安全子系统 1、将 sql server 的一合法帐户(user60)加入到你的数据库当中来,并给其授权,使之:具有创建表的权限 具有对 Students 表查询的权限 具有对 Studetns 表的年龄字段修改的权限

8、2、用 user60/user60 进入系统,完成权限验证:创建表 dept(sd,mn,addr)创建视图 s_view(Sno,Sage)在 Students 表上,实现 select*from Students 在 course 表上,实现 select*from course update Studetns set Sage=Sage+1 update Students set Sdept=CS 3、你是数据库的 dbo,你来查看 dept 表,结果如何?使用 set user 命令使自己成为 user60 后,查看 dept 表,结果如何?三 完整性定义和检查 1、创建表 Stude

9、tns,要求学生的年龄在 16 和 25 岁之间,并且所在系的缺省取值为CS 在 Studetns 表上插入一学生记录(9921,cccc,MA,23,f)在 Studetns 表上插入一学生记录(9922,ddd,MA,27,m)在 Studetns 表上插入一学生记录(9923,eeeee,21,m)在 Studetns 表上插入一学生记录(9922,ddd,MA,23,m)2、创建表 course,要求课号作为主键 在 course 表上插入一课程记录(c9,40,cname1,1)在 course 表上插入一课程记录(c9,40,cname2,1)在 course 表上插入一课程记录(

10、null,25,canme3,2)结果如何?3、修改表 Studetns,指定学号为主键,然后 插入一记录(9908,shang,CI,20)插入一记录(9908,shang,CI,20)插入一记录(,liang,CS,18)插入一记录(,an,CS,19)结果如何?4、创建 sc 表,要求表 sc 中的学号参照表 Studetns 中的学号,sc 中的课号参照course 中的课号。参照约束创建完成后,向这三个表插入数据。先在 sc 表插入一个选课记录,看看有什么情况发生?先删除 sc 中的某个记录,看看有什么情况发生?将 Studetns 表中的学号 9906 改为 9907,看看有什么情

11、况发生?实验(四):事务的并发控制 实验目的:通过实验了解实际系统中,三级封锁协议的实现方法和使用方法,体会加锁操作、死锁检测与解除。实验内容:具体分如下五部分。说明:(1)Set transaction isolation level read uncommitted read committed repeatable read serializable 分别对应隔离级 0,1,2,3。(2)要求两人一组。1、隔离级 1(缺省)方式下体会两事务的并发执行结果。具体步骤如下(以 user1 和user2 为例):z user1 首先将 user2 接纳为自己数据库的用户,并授权 user2 可

12、以查询学生表 students z user1 输入并执行下列语句 begin transaction update table students set age=20+1 where sno=95001 z user2 输入并执行下列语句 begin transaction select*from students where sno=95001 1)观察发生的现象,user2 的语句可以执行吗(是否可以读到别人没有提交的数据)?z user1 输入并执行下列语句 commit 2)观察发生的现象,user2 的语句执行了吗?3)加锁和解锁操作的完成者是数据库用户吗?z user2 输入并执

13、行下列语句 commit 2、隔离级 1(缺省)方式下体会两事务的并发执行结果。具体步骤如下(以 user1 和user2 为例):z user1 首先将 user2 接纳为自己数据库的用户,并授权 user2 可以查询学生表 students z user2 输入并执行下列语句 begin transaction select age from students where sno=95001 z user1 输入并执行下列语句 begin transaction update table students set age=20+1 where sno=95001 1)观察发生的现象,use

14、r1的语句可以执行吗(是否可以修改别人正在读的数据)?z user2 输入并执行下列语句 select age from students where sno=95001 2)观察发生的现象,user2 的语句执行了吗?结果如何(是否可重复读)?z user2 输入并执行下列语句 commit z user1 输入并执行下列语句 commit 3、在隔离级 0 方式下体会两事务的并发执行结果。具体步骤如下(以 user1 和user2 为例):z user1 首先将 user2 接纳为自己数据库的用户,并授权 user2 可以查询学生表 students z user1 输入并执行下列语句 b

15、egin transaction update table students set age=20+1 where sno=95001 z user2 输入并执行下列语句 begin transaction set transaction isolation level Read Uncommitted select*from students where sno=95001 1)观察发生的现象,user2 的语句可以执行吗(是否可以读到别人没有提交的数据)?z user1 输入并执行下列语句 commit z user2 输入并执行下列语句 commit 4、在隔离级 1(缺省)方式下体会两

16、事务的并发执行死锁情况。具体步骤如下(以user1 和 user2 为例):z user1 首先将 user2 接纳为自己数据库的用户,并授权 user2 可以修改学生表 students 和学生选课表 sc z user1 输入并执行下列语句 begin transaction update table students set age=age+1 z user2 输入并执行下列语句 begin transaction update table sc set grade=grade+5 z user1 输入并执行下列语句 update table sc set grade=grade+5 1

17、)观察发生的现象,user1 的语句可以执行吗?z user2 输入并执行下列语句 update table students set age=age+1 2)观察发生的现象,user2 的语句执行了吗?结果如何?z 在成功执行的窗口输入并执行下列语句 commit 5、在隔离级 1(缺省)方式下体会两事务并发执行锁的粒度(锁数据所在页)。具体步骤如下(以 user1 和 user2 为例):z user1 首先将 user2 接纳为自己数据库的用户,并授权 user2 可以查询学生表 students(该实验要求表中元组数要足够多,要求指定关键字约束)z user1 输入并执行下列语句 begin transaction update table students set age=age+1 where sno=95001 z user2 输入并执行下列语句 begin transaction select*from students where sno=95201 1)观察发生的现象,user2 的语句可以执行吗?z user2 输入并执行下列语句 commit z user1 输入并执行下列语句 commit

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com