logo资料库

东北大学数据库原理实验报告.doc

第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
资料共42页,剩余部分请下载后查看
9.求学号为20开头的学生的学号和所选修的课程的学分。
select Student.Sno, Course.Cname,SC.Grade
from Student,SC,Course
where Student.Sno=SC.Sno and Course.Cno=SC.Cno and
10.求选修C2课程且成绩为80分以上的学生的学号、姓名和成绩。
select Student.Sno,Student.Sname,SC.Grade
from Student,SC
where Student.Sno=SC.Sno and SC.Cno=’2’ and SC.Gra
11.求计算机系每个学生的姓名,选修的课程名和成绩。
12.求每个学生的学号及平均成绩。
13.求男学生每一年龄组中超过1人的年龄组及人数。
14.求每一门课程的间接先行课号。
15.求选修了全部课程的学生的学号。
答:在Students表的Sno上创建唯一聚簇索引不可以建,因为Sno是主键。
二 了解和使用安全子系统
1、创建两个新用户user1和user2,user1创建数据库USER1,USER1中有表Student
3、使用user1用户在USER1数据库中执行下面操作,将sql server的一个合法帐户(user2
并给其授权,使之:
3、用user2进入user1的数据库USER1系统,完成权限验证:
三 完整性定义和检查
1、创建表Students,要求学生的年龄在16和25岁之间,并且所在系的缺省取值为‘CS’
2、创建表course,要求课号作为主键
3、修改表Students,指定学号为主键,然后插入一记录(’9908’,’shang’,’CI’
4、创建sc表,要求表sc中的学号参照表Students中的学号,sc中的课号参照course中的课号。
foreign key(cno)references course(cno));
实验(四):事务的并发控制
1、隔离级1(缺省)方式下体会两事务的并发执行结果。具体步骤如下(以user1和user2为例):
2、隔离级1(缺省)方式下体会两事务的并发执行结果。具体步骤如下(以user1和user2为例):
3、在隔离级0方式下体会两事务的并发执行结果。具体步骤如下(以user1和user2为例):
4、在隔离级1(缺省)方式下体会两事务的并发执行死锁情况。具体步骤如下(以user54和user55为例
5、在隔离级1(缺省)方式下体会两事务并发执行锁的粒度(锁数据所在页)。具体步骤如下(以user1和us
数据库实验报告 班级:计算机 1404 班 学号:20143701 姓名:孟李 时间:2017 年 6 月 9 日
实验(一): 熟练掌握 SQL 语言 实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据, 进行相应的查询操作。 实验内容:具体包括如下三部分。 一、熟悉上机环境。 客户/服务器结构,数据库服务器在一台 NT 服务器上,同学们通过 客户机(操作系统为 Windows 2000)上安装的 SQL Server 客户端程序, 使用 SQL Server 数据库服务器。具体包括: 1. 了解 SQL Server 环境。鼠标点击开始,进入“Microsoft SQL Server企业管理器”,点击 SQL Server 组下的数据库服务器 (服务器名称为 NEUC-201S(Windows NT)), 可以看到服务器 上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。 点击服务器(NEUC-201S(Windows NT))下的数据库,可以看 到服务器上已建立的数据库,你可访问你有权访问的数据库, 并进行相应的操作功能。因为,数据库服务器上建有许多数据 库, 每个数据库都有一些合法的用户。 2. 鼠标点击开始,进入“Microsoft SQL Server查询分析器”, 输入用户名和口令,进入 SQL 查询分析器。如:你登录的客户 机为 27 号,那么请以用户名 user27,口令为 user27 登录,登录 后缺省连到数据库 user27 上,user27/user27 是数据库 user27 的 创建者,因此用户 user27/ user27 具有在数据库 user27 上创建表 等一切权力。 3. 在 SQL 查询分析器环境下,你就可进行 SQL 命令语句操作了。
二、 在数据库 useri 上创建学生选课有关关系模式,并插入相应的 数据,实现有关查询。 1. 描述学生、课程情况的 E-R 图如下,请将其转化为用关系数据模 型 描 述 的关系模式 学号 姓名 年龄 学生 选修 课程 所在系 先行课号 学分 课程名 学时 成绩 课号 根据 E-R 图按如下代码建立三个表: CREATE TABLE Student (Sno CHAR(8) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR (2), Sage SMALLINT, Sdept CHAR(20) ); CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4), Credit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) ); CREATE TABLE SC (Sno CHAR(8), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) ); 在 Course 表中插入学时字段 alter table Course add Ctime smallint NULL
运行后建表成功。 2.在数据库中定义这些关系模式,并向基本表中插入如下数据: INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201100001','张一','男','IS',18); INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201100002','张二','女','IS',18); INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201100003','张三','男','IS',18); INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201100004','张四','女','IS',18); INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201100005','张五','男','IS',18); INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201100006','张六','女','IS',18); INSERT INTO Course(Cno,Cname,Cpno,Credit) VALUES('1','数据库原理',NULL,2); INSERT INTO Course(Cno,Cname,Cpno,Credit) VALUES('2','数据结构',NULL,2); INSERT INTO Course(Cno,Cname,Cpno,Credit) VALUES('3','C 语言',NULL,2); INSERT INTO Course(Cno,Cname,Cpno,Credit)
VALUES('4','算法',NULL,2); INSERT INTO Course(Cno,Cname,Cpno,Credit) VALUES('5','高等数学',NULL,2); INSERT INTO SC(Sno,Cno) VALUES('201100001','1'); INSERT INTO SC(Sno,Cno) VALUES('201100002','2'); INSERT INTO SC(Sno,Cno) VALUES('201100003','3'); INSERT INTO SC(Sno,Cno) VALUES('201100004','4'); INSERT INTO SC(Sno,Cno) VALUES('201100005','5'); 3. 插入相应的数据,试着插入重复的元组,结果如何? INSERT INTO SC(Sno,Cno) VALUES('20140005','5');
4. 在已建立的关系模式之上(已插入一些数据)建立主键约束,参 照约束和用户定义的约束(要求学生年龄不小于 14 岁,不大于 35 岁),如果约束不能建立,请分析原因,修改后建立上述约 束。 alter table student add check (Sage between 14 and 35) 在建立主键约束前如果存在数据不满足将要建立的主键约束条件,则不能建立主键约 束。先将相关数据修改为满足主键约束条件再建立主键约束则操作成功。 5. 如果约束建立后,请试着插入重复元组,结果如何? 试着插入重复元组,无法插入: INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES('20140005','Bob5','m',18,'IS');
实验(二): 熟练掌握 SQL 语言 用 SQL 完成下列查询 1. 求选修了课程的学生的学号,要求: (1) 不使用 distinct 语句,写出其 SQL 语句 Select Sno from SC (2) 使用 distinct 语句,消除重复元组,写出其 SQL 语句 select distinct Sno from SC
(3) 如果该查询写成: select Student.Sno from Student, SC where Student.Sno=SC.Sno 请问该查询结果和上面哪个结果是相同的? 和(1)的结果相同 2. 求开设的课程号、课程名、学时和学分,要求对查询结果 的列重新命名。 select MyCredict from Course MyCno Cno ,Cname MyCname,Ctime MyCtime,Credit
分享到:
收藏