东北大学数据库实验Word下载.docx

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

东北大学数据库实验Word下载.docx

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

东北大学数据库实验Word下载.docx

 

2.在数据库中定义这些关系模式,并向基本表中插入如下数据:

CREATEtableStudents

(Snochar(11)primarykey,

Snamechar(20),

Sageint,

sdeptchar(20))

createtableCourses

(Cnochar(4),

Cnamechar(40),

Ccreditint,

Ctimeint,

Cpnochar(4),

primarykey(cno),

Foreignkey(Cpno)referencesCourses(Cno))

createtableSC

(Snochar(11),

Cnochar(4),

Gradeint,

primarykey(Sno,Cno),

foreignkey(Sno)referencesStudents(Sno),

foreignkey(Cno)referencesStudents(Cno))

insertintoStudentsvalues('

20123841'

'

赵一'

21,'

计算机'

20123842'

赵二'

22,'

电子'

20123843'

赵三'

23,'

通信'

20123844'

赵四'

24,'

自动化'

20123845'

赵五'

25,'

软件'

20123846'

赵六'

26,'

数学'

20123847'

赵七'

27,'

物联网'

20123848'

赵八'

28,'

生物'

20123849'

赵九'

29,'

20123840'

赵十'

20,'

机械'

insertintoCoursesvalues('

0000'

数据库'

4,60,null)

0001'

C语言'

0002'

C++语言'

0003'

JAVA'

0004'

数据结构'

0005'

高数'

0006'

离散数学'

0007'

计算原理'

4,60,'

0008'

算法设计'

0009'

文本'

0010'

信息安全'

insertintoSCvalues('

1)

2)

3)

4)

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

输入重复数据:

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

altertableStudentsaddcheck(Sage>

=14andSage<

=35)

altertableStudentsaddprimarykey(Sno)不能建立

原因:

数据库中已存在学号相同的多个数据

解决:

deletefromStudentswhereStudents.Sno='

altertableStudentsaddprimarykey(Sno)

altertableCoursesaddprimarykey(Cno)

deletefromCourseswhereCourses.Cno='

altertableCoursesaddForeignkey(Cpno)referencesCourses(Cno)

altertableSCaddForeignkey(Sno)referencesStudents(Sno)

altertableSCaddForeignkey(Cno)referencesCourses(Cno)

altertableSCaddprimarykey(Sno,Cno)

设想原因:

SC表中已存在相同学号和课程的多个数据

deletefromSCwhereSC.Cno='

andSC.Sno='

还是未能创建约束。

重新建表,直接在表中创建约束。

foreignkey(Cno)referencesCourses(Cno))

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

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

违反了PRIMARYKEY约束'

PK__Students__4D2CD54C'

不能在对象'

Students'

中插入重复键。

语句已终止。

服务器:

消息547,级别16,状态1,行1

INSERT语句与COLUMNFOREIGNKEYSAMETABLE约束'

FK__Courses__Cpno__716A35C2'

冲突。

该冲突发生于数据库'

db45'

,表'

Courses'

column'

Cno'

INSERT语句与COLUMNFOREIGNKEY约束'

FK__SC__Cno__70761189'

实验

(二):

用SQL完成下列查询

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

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

SelectSnofromSC

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

selectdistinctSnofromSC

(3)如果该查询写成:

selectStudent.SnofromStudent,SCwhereStudent.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.求选修了C2课程的学生的学号、姓名、成绩。

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

C2'

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='

C1'

andSC.Grade>

80

11.求计算机系每个学生的姓名,选修的

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

当前位置:首页 > 高等教育 > 农学

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

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