东北大学数据库实验报告Word文件下载.docx

上传人:b****6 文档编号:16213781 上传时间:2022-11-21 格式:DOCX 页数:46 大小:3.56MB
下载 相关 举报
东北大学数据库实验报告Word文件下载.docx_第1页
第1页 / 共46页
东北大学数据库实验报告Word文件下载.docx_第2页
第2页 / 共46页
东北大学数据库实验报告Word文件下载.docx_第3页
第3页 / 共46页
东北大学数据库实验报告Word文件下载.docx_第4页
第4页 / 共46页
东北大学数据库实验报告Word文件下载.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

东北大学数据库实验报告Word文件下载.docx

《东北大学数据库实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《东北大学数据库实验报告Word文件下载.docx(46页珍藏版)》请在冰豆网上搜索。

东北大学数据库实验报告Word文件下载.docx

(Cnochar(4),

Cnamechar(40),

Ccreditint,

Ctimeint,

Cpnochar(4),

primarykey(cno),

Foreignkey(Cpno)referencesCourses(Cno))

createtableSC

(Snochar(10),

Cnochar(4),

Gradeint,

primarykey(Sno,Cno),

foreignkey(Sno)referencesStudents(Sno),

foreignkey(Cno)referencesCourses(Cno))

insertintoStudentsvalues('

20133901'

'

陈一'

21,'

计算机'

20133902'

陈二'

22,'

电子'

20133903'

陈三'

23,'

通信'

20133904'

陈四'

20,'

自动化'

20133905'

陈五'

软件'

20133906'

陈六'

数学'

20133907'

陈七'

物联网'

20133908'

陈八'

生物'

20133909'

陈九'

20133910'

陈十'

机械'

insertintoCoursesvalues('

0001'

C语言'

4,60,null)

0002'

C++语言'

0003'

JAVA'

0004'

数据结构'

0005'

高数'

0006'

离散数学'

0007'

计算原理'

4,60,'

0008'

算法设计'

0009'

文本'

0010'

信息安全'

insertintoSCvalues('

2)

3)

4)

1)

3.插入相应的数据,试着插入重复的元组,结果如何?

插入相同数据

不能插入重复数据

4.在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。

altertableStudentsaddcheck(Sage>

=14andSage<

=35)

altertableStudentsaddprimarykey(Sno)不能建立

5.如果约束建立后,请试着插入重复元组,结果如何?

试着插入重复元组,无法插入:

实验

(二):

赵一'

95133902'

赵二'

18,'

赵三'

赵四'

24,'

95133905'

赵五'

25,'

赵六'

26,'

赵七'

27,'

95133908'

赵八'

28,'

老九'

19,'

95133910'

老十'

17,'

95133941'

老一'

95133943'

老二'

15,'

0000'

C1'

C++'

离散'

数据库'

文本智能处理'

0011'

C2'

null'

70)

20133941'

82)

90)

95133901'

95133903'

95133843'

用SQL完成下列查询

1.求选修了课程的学生的学号,要求:

(1)不使用distinct语句,消除重复元组,写出其SQL语句

SelectSnofromSC

(2)使用distinct语句,消除重复元组,写出其SQL语句

selectdistinctSnofromSC

(3)如果该查询写成:

selectStudents.SnofromStudents,SCwhereStudents.Sno=SC.Sno

请问该查询结果和上面哪个结果是相同的?

和1相同

2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名。

selectCnoMyCno,CnameMyCname,CtimeMyCtime,CCreditMyCredictfromCourses

3.求计算机系和数学系的学生学号、姓名和年龄。

selectSno,Sname,SagefromStudentswhereSdept='

orSdept='

4.求不是数学系、计算机系的学生的情况,要求select后写*代替列出所有的列名。

select*fromStudentswhereStudents.Sdept!

='

andStudents.Sdept!

5.求全体学生的信息,要求按年龄升序排列。

select*fromStudentsorderbySageasc

6.求计算机系年龄在18~20岁之间的学生姓名和年龄

selectSname,SagefromStudentswhereSage>

=18andSage<

=20andSdept='

7.求姓名是以老开头的计算机系学生。

select*fromStudentswhereSnamelike'

老%'

andSdept='

8.求选修了C1课程的学生的学号、姓名、成绩。

selectStudents.Sno,Students.Sname,SC.GradefromStudents,SC,CourseswhereSC.Sno=Students.SnoandSC.Cno=Courses.CnoandCourses.Cname='

9.求学号为95开头的学生的学号和所选修的课程的学分。

selectStudents.Sno,Courses.Cname,Courses.CCreditfromStudents,SC,CourseswhereStudents.Snolike'

95%'

andStudents.Sno=SC.SnoandSC.Cno=Courses.Cno

10.求选修C1课程且成绩为80分以上的学生的学号、姓名和成绩。

selectStudents.Sno,Students.Sname,SC.GradefromStudents,SC,CourseswhereStudents.Sno=SC.SnoandSC.Cno=Courses.CnoandCourses.Cname='

andSC.Grade>

80

11.求计算机系每个学生的姓名,选修的课程名和成绩。

selectStudents.Sname,Courses.Cname,SC.GradefromStudents,SC,CourseswhereStudents.Sdept='

12.求每个学生的学号及平均成绩。

selectSno,AVG(Grade)AvgGradefromSCgroupbySno

13.求男学生每一年龄组中超过1人的年龄组及人数。

selectSage,Count(Sno)countSnofromStudentsgroupbySagehavingCount(Sno)>

1

14.求每一门课程的间接先行课号。

selectC1.Cno,C2.CpnofromCoursesC1,CoursesC2whereC1.Cpno=C2.Cno

15.求选修了全部课程的学生的学号。

selectSnofromStudentswherenotexists(select*fromCourseswherenotexists(select*fromSCwhereSno=Students.SnoandCno=Courses.Cno));

实验(三):

数据库的安全性和完整性

了解和使用安全子系统;

进行完整性定义和检查。

一熟练掌握SQL(续)

1.修改表Students,在其中加入一个字段性别sexchar

(1)

altertableStudentsaddsexchar

(1);

2.创建索引:

在Students表的Sno上创建唯一聚簇索引,在SC表的(Sno,Cno)上创建唯一索引.查询Students表的内容,记录的顺序有变化吗?

查询SC表的内容,记录的顺序有变化吗?

CreateuniqueclusteredindexStudent_snoonStudents(Sno);

CreateuniqueindexSno_cnoonSC(Sno,Cno);

Students表的内容,记录的顺序有变化

SC表的内容,记录的顺序没有变化

3.创建视图

▪创建计算机系学生视图CS_Students,其中包括学号、年龄和性别。

带withcheckopition子句

不带withcheckopition子句

时各插入一计算机系学生记录,通过视图查询插入的记录,结果如何?

通过表Students查询插入的记录,查看所在系字段上的值?

createviewCS_students1asselectSno,Sage,sexfromStudentswhereSdept='

CS'

withcheckoption

INSERTINTOCS_students1

VALUES('

20133333'

m'

);

createviewCS_students2asselectSno,Sage,sexfromStudentswhereSdept='

INSERTINTOCS_students2

20138888'

▪创建一视图,表示学生的平均成绩,其中包括Sno,avgGrade。

通过该视图插入一学生姓名和平均成绩,结果如何?

通过该视图查找平均成绩在90分以上的学生的学号和平均成绩,结果又如何?

createviewStuavggrade(sno,avggrade)

asselectSno,avg(Grade)fromSCgroupbySC.sno

InsertintoStuavggrade

values('

88)

selectsno,avggrade

fromStuavggrade

whereavggrade>

=90

二了解和使用安全子系统

1、将sqlserver的一合法帐户(user60)加入到你的数据库当中来,并给其授权,

SP_grantdbaccess'

user63'

;

使之:

具有创建表的权限

grantCreatetabletouser63;

具有对Students表查询的权限

grantselectonStudentstouser63;

具有对Studetns表的年龄字段修改的权限

grantupdate(Sage)onStudentstouser63;

2、用user60/user60进入系统,完成权限验证:

在Students表上,实现select*fromStudents

select*fromdb63.user63.STUDENT

在course表上,实现select*fromcourse

select*fromdb63.user63.Course

updateStudetnssetSage=Sage+1

updatedb63.user63.STUDENTsetSage=Sage+1

updateStudentssetSdept=’CS’

updatedb63.user63.STUDENTsetSdept='

3、你是数据库的dbo,你来查看dept表,结果如何?

使用setuser命令使自己成为user60后,查看dept表,结果如何?

三完整性定义和检查

1、创建表Studetns,要求学生的年龄在16和25岁之间,并且所在系的缺省取值为‘CS’

CREATETABLEStudents

(SnoCHAR(9)notnull,

SnameCHAR(20),

Sdeptchar(20)default'

Sageintcheck(Sag

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1