综合练习二习题Word下载.docx

上传人:b****4 文档编号:16009589 上传时间:2022-11-17 格式:DOCX 页数:11 大小:19.63KB
下载 相关 举报
综合练习二习题Word下载.docx_第1页
第1页 / 共11页
综合练习二习题Word下载.docx_第2页
第2页 / 共11页
综合练习二习题Word下载.docx_第3页
第3页 / 共11页
综合练习二习题Word下载.docx_第4页
第4页 / 共11页
综合练习二习题Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

综合练习二习题Word下载.docx

《综合练习二习题Word下载.docx》由会员分享,可在线阅读,更多相关《综合练习二习题Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

综合练习二习题Word下载.docx

取‘男’或‘女’

sage

年龄

整数

取值15~45

sdept

所在系

字符串,长度为20

默认为‘计算机系’

Course表结构

cno

课程号

cname

课程名

ccredit

学分

取值大于0

semster

学期

period

学时

SC表结构

sno

主键,引用Student的外键

主键,引用Course的外键

grade

成绩

取值0~100

答案:

一、Student表

CREATETABLEStudent(

snoVARCHAR2(7)PRIMARYKEY,

snameVARCHAR2(10)NOTNULL,

ssexVARCHAR2

(2)CHECK(ssex=‘男’ORssex=‘女’),

sageNUMBER

(2)CHECK(sage>

=15ANDsage<

=45),

sdeptVARCHAR2(20)DEFAULT‘运算机系’

二、Course表

CREATETABLECourse(

cnoVARCHAR2(10)NOTNULL,

cnameVARCHAR2(20)NOTNULL,

ccreditNUMBER

(2)CHECK(ccredit>

0),

semesterNUMBER

(2)CHECK(semester>

periodNUMBER(3)CHECK(period>

CONTRAINTcourse_cno_pkPRIMARYKEY(cno)

3、SC表

CREATETABLESC(

snochar(7)NOTNULL,

cnochar(10)NOTNULL,

gradetinyintCHECK(grade>

=0ANDgrade<

=100),

CONTRAINTsc_sno_cno_pkPRIMARYKEY(sno,cno),

CONTRAINTstudent_sno_fkFOREIGNKEY(sno)REFERENCEStudent(sno),

CONTRAINTcourse_cno_fkFOREIGNKEY(cno)REFERENCECourse(cno)

 

二、利用SQL语句别离向Student、Course、SC表中加入如下数据:

Student表数据

Sname

9512101

李勇

19

计算机系

9512102

刘晨

20

9512103

王敏

9512104

张立

22

信息系

9512105

钱小平

21

9512106

吴宾

数学系

9512107

王大力

Course表数据

semester

c01

计算机文化学

3

1

c02

Java

8

5

c03

计算机网络

4

c04

数据库基础

6

c05

高等数学

2

c06

数据结构

7

C07

VB

SC表数据

90

<

NULL>

78

66

82

75

三、完成如下查询

一、查询全部学生的学号和姓名

SELECTsno,snamefromStudent

二、查询全部学生的姓名、学号和所在系

SELECTsname,sno,sdeptfromStudent

3、查询全部学生的姓名及其诞生年份

分析:

由于Student表中只记录了学生的年龄,而没有记录学生的诞生年份,所以需要通过计算取得学生的诞生年份,即用当前年减去年龄,取得诞生年份。

SELECTsname,2011–sageFROMStudent

―或―

SELECTsname,to_number(to_char(sysdate,’yyyy’))–sageFROMStudent

4、查询全部学生的姓名和诞生年份,并在诞生年份列前加入一个列,此列的每行数据均为“YearofBirth”常量值

SELECTsnamem,‘YearofBirth’,to_number(to_char(sysdate,’yyyy’))–sageFROMStudent

五、在选课表(SC)中查询有哪些学生选修了课程,并列出学生的学号

SELECTsnoFROMSC

在结果集中会有许多重复的行(实际上一个学生选修了多少门课程,其学号就会在结果集中重复出现多少次)。

利用DISTINCT关键字就可以够去掉结果集中的重复行。

去掉结果集中的重复行

SELECTDISTINCTsnoFROMSC

六、查询运算机系全部学生的姓名

SELECTsnameFROMStudentWHEERsdept=‘运算机系’

7、查询所有年龄在20岁以下的学生的姓名及年龄

SELECTsname,sageFROMStudentWHEERsage<

八、查询考试成绩不合格的学生的学号

当一个学生有多门不极格课程时,只列出一个学号。

SELECTDISTINCTsnoFROMSCWHEREgrade<

60andgradeisnotnull

九、查询年龄在20~23岁之间的学生的姓名、所在系和年龄

SELECTsname,sdept,sage

FROMStudent

WHEREsageBETWEEN20AND23

10、查询年龄不在20~23之间的学生的姓名、所在系和年龄

WHEREsageNOTBETWEEN20AND23

1一、查询信息系、数学系、和运算机系学生的姓名和性别

SELECTsname,ssex,

FROMStudent

WHEREsdeptIN(‘信息系’,’数学系’,’运算机系’)

1二、查询既不属于信息系、数学系、也不属于运算机系学生的姓名和性别

WHEREsdeptNOTIN(‘信息系’,’数学系’,’运算机系’)

13、查询姓“张”的学生的详细信息

SELECT*FROMStudentWHEREsnameLIKE‘张%’

14、查询学生表中姓“张”、姓“李”、姓“刘”的学生的情形

SELECT*FROMStudentWHEREsnameLIKE‘张%’ORsnameLIKE‘李%’ORsnameLIKE‘刘%’

1五、查询名字中第2个字为“小”或“大”字的学生姓名和学号

SELECTsname,sno

WHEREsnameLIKE‘_小%’ORsnameLIKE‘_大%’

1六、查询所有不姓“刘”的学生

WHEREsnameNOTLIKE‘刘%’

17、从学生表中查询学号的最后一名不是2、3、5的学生的情形

SELECT*

WHEREsnoNOTLIKE‘%2’ANDNOTLIKE‘%3’

ANDNOTLIKE‘%5’

1八、查询无考试成绩的学生的学号和相应的课程号

SELECTsno,cno

FROMSC

WHEREgradeISNULL

1九、查询所有有考试成绩的学生的学号和课程号

WHEREgradeISNOTNULL

20、查询运算机系年龄在20岁以下的学生的姓名

SELECTsname

WHEREsdept=‘运算机系’ANDsage<

20

2一、查询选修了课程“c02”的学生的学号及其成绩,查询结果按成绩降序排列

SELECTsno,gradeFROMSCWHEREcno=‘c02’

ORDERBYgradeDESC

2二、查询全部学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列

SELECT*FROMStudent

ORDERBYsdept,sageDESC

23、统计学生总人数

SELECTCOUNT(sno)FROMStudent

24、统计选修了课程的学生的人数

由于一个学生能够选多门课程,应利用DISTINCT关键字去掉重复值。

SELECTCOUNT(DISTINCTsno)FROMSC

2五、计算学号为9512101的学生的考试总成绩之和

SELECTSUM(grade)FROMSCWHEREsno=‘9512101’

2六、计算课程“c01”的学生的考试平均成绩

SELECTAVG(grade)FROMSCWHEREcno=‘c01’

27、查询选修了课程“c01”的学生的最高分和最低分

SELECTMAX(grade),MIN(grade)FROMSCWHEREcno=‘c01’

2八、查询年龄最大的学生的姓名

SELECTsnameFROMStudent

WHEREsage=(SELECTMAX(sage)FROMStudent)

2九、统计每门课程的选课人数,列出课程号和人数

该语句第一将查询结果按cno的值分组,所有cno值相同的记录归为一组,然后再用COUNT函数对每一组进行计算,求得每组的学生人数。

SELECTcnoas课程号,COUNT(sno)as选课人数

FROMSC

GROUPBYcno

30、查询每名学生的选课门数和平均值

SELECTsno学号,COUNT(cno)选

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

当前位置:首页 > 高等教育 > 其它

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

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