数据库重点语句附答案.docx

上传人:b****9 文档编号:25568864 上传时间:2023-06-09 格式:DOCX 页数:13 大小:19.79KB
下载 相关 举报
数据库重点语句附答案.docx_第1页
第1页 / 共13页
数据库重点语句附答案.docx_第2页
第2页 / 共13页
数据库重点语句附答案.docx_第3页
第3页 / 共13页
数据库重点语句附答案.docx_第4页
第4页 / 共13页
数据库重点语句附答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据库重点语句附答案.docx

《数据库重点语句附答案.docx》由会员分享,可在线阅读,更多相关《数据库重点语句附答案.docx(13页珍藏版)》请在冰豆网上搜索。

数据库重点语句附答案.docx

数据库重点语句附答案

实验素材

现教学数据库中有三个关系:

学生关系S(S#,SNAME,AGE,SEX)

学习关系SC(S#,C#,GRADE)

课程关系C(C#,CNAME,TEACHER)

1、三个表的结构是:

表1学生关系表S

列名

说明

数据类型

约束说明

S#

学号

定长字符串,长度为10

主键

SNAME

姓名

变长字符串,长度为12

非空

AGE

年龄

整数

空值

SEX

性别

定长字符串,长度为1

非空,取值F或M

SDEPT

系别

变长字符串,长度为20

默认为information

CreatetableS

S#char(10)primarykey,

SNAMEVARCHAR(12)NOTNULL,

AGEINT,

SEXCHAR

(1)NOTCHECK(SEX=’F’ORSEX=’M’),

SDEPTVARCHAR(20)DEFAULT‘information’

表2学习关系表SC

列名

说明

数据类型

约束说明

S#

学号

定长字符串,长度为10

外键,参照S的主键

C#

课程号

定长字符串,长度为8

外键,参照C的主键

GRADE

成绩

整数

空值

主键为(S#,C#)

CREATETABLESC

S#CHAR(10)FOREIGNKEY(S#)REFRENCESS(S#),

C#CHAR(8)FOREIGNKEY(C#)REFRENCESC(C#),

GRADEINTNULL,

CONSTRAINTPKPRIMARYKEY(S#,C#)

表3课程关系表C

列名

说明

数据类型

约束说明

C#

课程号

定长字符串,长度为8

主键

CNAME

课程名

变长字符串,长度为20

非空值

TEACHER

任课教师

定长字符串,长度为20

非空值

2、三个表中的数据

表4S表的数据

S#

SNAME

AGE

SEX

SDEPT

60833D01

Wanghui

18

F

Information

60833D02

Wangshan

17

M

Information

50921p02

Zhangming

19

M

Communication

50911P07

Liyong

20

F

Communication

90811P01

Limin

18

F

Computer

90811P02

Wujiang

19

F

Computer

90912P03

Lijian

18

M

Computer

表5C表的数据

C#

CNAME

TEACHER

C1

Database

Liujun

C2

Math

Zhanghong

C3

C

Liujun

C4

English

Lihua

表6SC表的数据

S#

C#

GRADE

60833D01

C1

89

60833D01

C2

91

60833D01

C3

96

60833D01

C4

74

60833D02

C2

78

50921p02

C4

76

50921p02

C1

89

50911P07

C2

88

90811P01

C1

88

90811P01

C2

Null

实验一用企业管理器建立数据库和表

实验目的:

熟悉上机环境;掌握如何启动、停止服务管理器和企业管理器的方法;掌握如何用企业管理器定义数据库、表、约束,如何向表中添加、修改、输出记录,如何查看表的内容等操作。

实验内容:

1启动服务管理器,观测服务管理器启动后的图标。

2使用企业管理器,创建“教学”数据库。

3使用企业管理器,在“教学”数据库中定义3个表S、C、SC这3个表的要求见表1、表2和表3。

注意必须按表的要求定义各种约束。

4使用企业管理器,向“教学”数据库的3个表中输入若干个记录。

这3个表的内容见表4、表5和表6.

5使用企业管理器,查看已创建的教学数据库和3个表的内容。

6验证实体完整性和参照完整性。

7停止企业管理器、服务管理器。

实验的操作步骤:

 

实验小结:

实验二用SQLDDL创建数据库和表

实验目的:

熟悉查询分析器界面;掌握如何在查询分析器中,用DDL语言定义数据库、表、约束。

实验内容:

1)启动服务管理器。

2)使用查询分析器,用DDL建立“教学”数据库。

3)使用查询分析器,用DDL在“教学”数据库中定义3个表S、C和SC。

表的要求见表1~3,必须按表的要求定义各种约束。

4)停止查询分析器、服务管理器。

实验的操作步骤:

 

实验小结:

 

实验三数据库的简单查询

(一)

实验目的:

继续熟练查询分析器的使用方法;掌握单表查询的SELECT、FROM、WHERE子句的用法,特别要求掌握比较运算符、逻辑运算符的使用。

实验内容:

在已建立“教学”数据库和3个表S、C、SC的基础上,用SELECT

语句完成下列查询(具体数据参照表3~6):

(1)查询全体学生的学号与姓名

Selects#,snamefromS

(2)查询全体学生的学号、姓名、性别、年龄及所在系

Selects#,sname,sex,age,sdeptfromS

(3)查询全体学生的选课情况,即学号、课程号、成绩,并且成绩列值都加5

SelectS#,C#,GRADE+5fromSC

(4)查询全体学生的学号与姓名,并分别将这两列分别设置为中文别名“学号”和“姓名”

Selects#AS‘学号’,snameas‘姓名’fromS

(5)显示所有选课学生的学号,并去掉重复行

Selectdistinct(s#)fromSC

(6)查询学生选课成绩大于80分的学生学号、课程号、成绩

SelectS#,C#,GRADEfromSCwhereGRADE>80

(7)检索年龄大于23岁的男学生的学号和姓名.

Selects#,snamefromSwheressex=Mandage>23

(8)检索Liujun老师所授课程的课程号和课程名.

SelectC#,CnamefromCwhereTeacher=’Liujun’

(9)查询information系全体学生的学号、姓名

SelectS#,SnamefromSwheresdept=’information’

(10)查询学生选课成绩在80-90分之间的学号、课程号、成绩

SelectS#,C#,GradefromSCwhereGradebetween80And90

(11)查询学生年龄不在19-25之间的学生学号、姓名、所在系

SelectS#,Sname,SdeptfromSwhereAgenotbetween19And25

(12)查询information、computer系的学生学号、姓名

SelectS#,SnamefromSwheresdeptin(‘information’,’computer’)

(13)查询不是information、computer系的学生学号、姓名

SelectS#,SnamefromSwheresdeptNOTIN(‘information’,’computer’)

(14)查找姓名的第二个字符是i并且只有5个字符的学生学号、姓名

SelectS#,SnamefromSwhereSnamelike‘_i___’

(15)查找姓名以W开头的所有学生的学号、姓名

SelectS#,SnamefromSwhereSnamelike‘w%’

(16)查找姓名以w、c或l开头的所有学生的学号、姓名

SelectS#,SnamefromSwhereSnamelike‘[wcl]%’

(17)查找姓名不是以w、c或l开头的所有学生的学号、姓名

SelectS#,SnamefromSwhereSnamelike‘[^wcl]%’

(18)查询无考试成绩的学生的学号和相应的课程号

SelectC#,CnamefromSCwhereGradeIsnull

(19)查询有考试成绩的学生的学号和相应的课程号

SelectC#,S#fromSCwhereGradeIsnotnull

实验的操作步骤及结果(注:

答案及结果写在各题的下面):

 

实验小结:

 

实验四数据库的简单查询

(二)

实验目的:

继续熟练查询分析器的使用方法;掌握单表查询的SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY子句的用法,特别要求掌握比较运算符、逻辑运算符的使用。

实验内容:

在已建立“教学”数据库和3个表S、C、SC的基础上,用SELECT

语句完成下列查询(具体数据参照表3~6):

实验内容:

(1)查询计算机系年龄在18岁以上的学生的学号、姓名

SelectS#,SnamefromSwhereAge>18andSdept=’computer’

(2)检索“Liujun”老师所授课程的课程号(C#)和课程名(CName);

SelectC#,CnamefromSCwhereTeacher=’Liujun’

(3)求选修了C2课程或C4课程的学生学号、成绩

SelectS#,GradefromSCwhereC#IN(’C2’,’C4’)

(4)求学生的总人数

Selectcount(sno)fromS

(5)求选修了课程的学生人数

Selectcount(distinct(sno))fromSC

(6)求选修了C1课程的学生的平均成绩

SelectAVG(Grade)fromSCwhereC#=’C1’

(7)求60833D01的学生的考试总成绩之和

(8)SelectSUM(Grade)fromSCwhereS#=’60831D01’

(9)求选修了C1课程的学生的最高分和最低分

Selectmax(Grade),min(Grade)fromSCwhereC#=’C1’

(10)求选修每门课的学生人数

Selectcount(sno)fromSCgroupbyC#

(11)求每个学生的学号和各门课程的总成绩

SelectS#,SUM(Grade)fromSCGROUPBYS#

(12)求选修课程超过2门课的学生的学号、平均成绩、选修的门数

SelectS#,AVG(Grade),COUNT(C#)fromSCGROUPBYS#

HAVINGCOUNT(C#)>2

(13)查询所有学生的行,并按学生年龄值从小到大排序

Select*fromSORDERBYAGE

(14)查询选修了C1课程的学生的学号和成绩,查询结果按成绩降序排列

SelectS#,GradefromSCwhereC#=’C1’ORDERBYGRADEDESC

(15)查询全体学生信息,查询结果按所在系的系名升序(ASC可不写默认存在)排列,同一系的学生按年龄降序排列

Select*fromSORDERBYSDEPT,AGEDESC

(16)求选修课程超过2门课的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。

SelectS#,AVG(Grade),COUNT(C#)fromSCGROUPBYS#

HAVINGCOUNT(C#)>2ORDERBYGRADEDESC

实验的操作步骤及结果(注:

答案及结果写在各题的下面):

 

实验小结:

 

实验五数据库的多表内连接查询实验

实验目的:

继续熟练查询分析器的使用方法;理解多表查询的概念;掌握多表查询的SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY子句的用法,特别要求掌握内链接的使用及查看相应的结果。

实验内容:

在已建立“教学”数据库和3个表S、C、SC的基础上,用SELECT

语句完成下列查询(具体数据参照表3~6):

(1)查询每个学生的学号、姓名、选修的课程名、成绩

SelectSC.S#,SNAME,CNAME,GRADEFROMS,SCWHERES.S#=SC.S#

(2)查询选修了C2且成绩大于90分的学生的学号、姓名、成绩

SelectSC.S#,SNAME,GRADEFROMS,SCWHERES.S#=SC.S#ANDC#=’C2’ANDGRADE>90

(3)求各个课程号及相应的选课人数;

SelectC#,COUNT(S#)FROMSCGROUPBYC#

(4)检索选修课程名为MATHS的学生学号与姓名;

SelectSC.S#,SNAMEFROMS,C,SCWHERES.S#=SC.S#ANDC.C#=SC.C#ANDCNAME=’MATHS’

(5)检索至少选修LIU老师所授课程中一门课程的女学生姓名.

SelectSNAMEFROMS,C,SCWHERES.S#=SC.S#ANDC.C#=SC.C#ANDTEACHERLIKE‘LIU%’ANDSEX=’F’

(6)检索至少选修两门课程的学生学号.

SelectS#FROMSCGROUPBYS#HAVINGCOUNT(C#)>=2

(7)求选修C4课程的学生的平均年龄.

SelectAVG(AGE)FROMSC,SWHERES.S#=SC.S#ANDC#=’C4’

(8)求LIU老师所授课程的每门课程的学生平均成绩.

(9)SelectSC.C#,AVG(GRADE)FROMC,SCWHEREC.C#=SC.C#ANDTEACHER=’LIU%’GROUPBYC.C#

(10)求information系选修课程超过2门课的学生的学号、姓名、平均成绩,并按平均成绩降序排列

SelectSC.S#,SNAME,AVG(GRADE)FROMS,SCWHERES.S#=SC.S#ANDSDEPT=’information’GROUPBYSC.S#HAVINGCOUNT(C#)>2ORDERBYAVG(GRADE)DESC

(11)查询与Wanghui在同一个系学习的所有学生的学号和姓名

SelectS2.S#,S2.SNAMEFROMSASS1,SASS2WHERES1.SDEPT=S2.SDEPTANDS1.SNAME=’Wanghui’

实验七数据库的非相关子查询实验

实验目的:

继续熟练查询分析器的使用方法;掌握非相关子查询的用法,理解他的执行过程;掌握多表连接查询和子查询写法中的相互转换。

实验内容:

在已建立“教学”数据库和3个表S、C、SC的基础上,用非相关子查询完成下列查询(具体数据参照表3~6):

(1)查询每个学生的基本信息及其选课情况

(2)检索选修课程名为MATH的学生学号与姓名;

SELECTS#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREC#IN(SELECTC#FROMCWHERECNAME=’MATH’))

(3)求选修C4课程的学生的平均年龄.

SELECTAVG(GRADE)FROMSWHERES#IN(SELECTS#FROMSCWHEREC#=’C4’)

(4)查询与Wanghui在同一个系学习的所有学生的学号和姓名

SELECTS#,SNAMEFROMSWHERESDEPT=(SELECTSDEPTFROMSWHERESNAME=’Wanghui’)

(5)查询其他系中比计算机系某一学生年龄小的学生基本情况

SELECT*FROMSWHEREAGE

=’COMPUTER’

(6)查询成绩大于80分的学生的学号、姓名

SELECTS#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREGRADE>80)

(7)查询选修了C4课程的学生学号、姓名。

(8)SELECTS#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREC#=’C4’)

(9)求LIU老师所授课程的每门课程的学生平均成绩.

SELECTC#,AVG(GRADE)FROMSCWHEREC#IN(SELECTC#FROMCWHERETEACHERLIKE‘LIU%’)

(10)查询选修了C2且成绩大于90分的学生的学号、姓名、成绩

(11)查询选修了Liujun老师的课程并且成绩大于80分的学生学号、姓

名。

SELECTS#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREGRADE>80ANDC#IN(SELECTC#FROMCWHERETEACHER=’Liujun’))

实验八数据库的相关子查询和组合查询实验

实验目的:

继续熟练查询分析器的使用方法;掌握相关子查询及组合查询的用法,理解他的执行过程。

实验内容:

在已建立“教学”数据库和3个表S、C、SC的基础上,用相关子查询或组合查询完成下列查询(具体数据参照表3~6):

(1)查询每个学生的基本信息及其选课情况

(2)查询选修了C4课程的学生学号、姓名。

(3)查询成绩大于80分的学生学号和姓名

(4)查询没有选修C4课程的学生学号、姓名。

(5)检索选修课程名为MATH的学生学号与姓名

(6)查询选修了C1课程或C2课程的学生学号

(7)查询既选修了C1课程又选修了C2课程的学生学号

实验的操作步骤及结果(注:

答案及结果写在各题的下面):

 

实验小结

 

实验九数据更新及视图操作

1.在S表中插入学号为60921P01,姓名为wangjuan,年龄17,性别为女,系别为information的学生记录。

InsertintoSvalues(‘60921P01’,’wangjuan’,17,’F’,’information’)

2.在SC表中插入学号为60921P01,课程代码为C1的记录。

InsertintoSC(S#,C#)values(‘60921P01’,’C1’)

3.把姓名为wanghui的学生的所有成绩加2.

UPDATESSETGRADE=GRADE+2WHERESNAME=’wanghui’

4.删除学号为60921P01的选修记录。

DELETEFROMSWHERES#=’60921P01’

5.建立一个视图名为Male23,列名为学号和姓名,包含所有年龄大于23岁的男学生的学号和姓名。

CREATEVIEWMale23(学号,姓名)AS

(SELECTS#,SNAMEFROMSWHEREAGE>23)

6.建立数学系选修了课程名为Math的学生的视图,视图名为:

MathStudentView,该视图的列名为学号、姓名、成绩。

CREATEVIEWMathStudentView(学号,姓名,成绩)AS

(SELECTSC.S#,SNAME,GRADEFROMS,SC,CWHERES.S#=SC.S#ANDC.C#=SC.C#ANDSDEPT=’数学系’ANDCNAME=’MATH’)

7.建立数学系学生选修了课程名为Math并且成绩大于90分的学生视图,视图名为:

MathStudentView1。

该视图的列名为学号、姓名、成绩。

CREATEVIEWMathStudentView1AS

(SELECT*FROMMathStudentviewWHERE成绩>90)

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

当前位置:首页 > 工程科技 > 建筑土木

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

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