数据库上机题汇总文档格式.docx

上传人:b****8 文档编号:22482217 上传时间:2023-02-04 格式:DOCX 页数:18 大小:20.07KB
下载 相关 举报
数据库上机题汇总文档格式.docx_第1页
第1页 / 共18页
数据库上机题汇总文档格式.docx_第2页
第2页 / 共18页
数据库上机题汇总文档格式.docx_第3页
第3页 / 共18页
数据库上机题汇总文档格式.docx_第4页
第4页 / 共18页
数据库上机题汇总文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据库上机题汇总文档格式.docx

《数据库上机题汇总文档格式.docx》由会员分享,可在线阅读,更多相关《数据库上机题汇总文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

数据库上机题汇总文档格式.docx

CreateTableStudent

(SnoCHAR(5)NOTNULLPRIMARYKEY(Sno),

SnameVARCHAR(20)constraintuq_snameunique,

SageSMALLINT,

SsexCHAR

(2)DEFAULT'

男'

CHECK(Ssex='

ORSsex='

女'

),

SdeptCHAR

(2));

●课程表Course,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:

Course(Cno,Cname,Cpno,Ccredit),

其中主码为Cno。

Cname取值唯一,Cpno参照cno。

CreateTableCourse

(CnoCHAR

(2)NOTNULLPRIMARYKEY(Cno),

CnameVARCHAR(20)UNIQUE,

CpnoCHAR

(2)referencescourse(cno),

CcreditSMALLINT);

●学生SC,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:

SC(Sno,Cno,Grade)

其中主码为(SNO,CNO),sno参照student表的sno列,cno参照course表的cno列。

grade取值范围0-100。

CreateTableSC

(SnoCHAR(5)NOTNULLCONSTRAINTS_FFOREIGNKEYREFERENCESStudent(Sno),

CnoCHAR

(2)NOTNULLConstraintfk_cnoFOREIGNKEY(Cno)REFERENCESCourse(Cno),

GradeSMALLINTCHECK((GradeISNULL)OR(GradeBETWEEN0AND100)),

PRIMARYKEY(Sno,Cno),

);

3、向Student表增加“入学时间”列,其数据类型为日期型。

Altertablestudent

Add入学时间smalldatetime

4、将年龄的数据类型改为smallint。

Altercolumnsagesmallint

5、删除学生姓名必须取唯一值的约束。

Dropuq_sname

6、向course表中增加一个约束,以限制Ccredit的取值范围为1-4。

Altertablecourse

Addconstraintck_ccreditcheck(Ccreditbetween1and4)

7、向student表中插入值(‘98006’,‘欧阳姗姗’,18,‘女’,‘CS’)。

INSERTINTOstudentVAlues('

98006'

'

欧阳姗姗'

18,'

,'

CS'

8、从student表中删除姓名为’李四’的学生。

Deletefromstudent

Wheresname=’李四’

9、在SC表中将‘2’号课程的成绩加5。

Updatesc

Setgrade=grade+5

Wherecno=‘2’

10、在SC表中将’2’号课程的成绩减5。

Setgrade=grade-5

实验三单表查询

(一)

学号姓名成绩:

1、掌握投影查询。

2、掌握选择查询。

对JXGL数据库进行查询。

1、查询全体学生的学号与姓名。

selectsno,sname

fromstudent

2、查询全体学生的姓名、学号、所在系。

selectsname,sno,sdept

3、查询全体学生的详细记录。

select*

4、查全体学生的姓名及其出生年份。

selectsname,year(getdate())-sage'

出生年份'

5、查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名。

lower(sdept)'

sdept'

6、查询选修了课程的学生学号。

selectdistinctsno

fromsc

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

selectsname,sage

wheresage<

20

8、查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。

Selectsname,sdept,sage

Fromstudent

Wheresagebetween20and23

9、查询年龄不在20~23岁之间的学生姓名、系别和年龄。

Wheresagenotbetween20and23

10、查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

Selectsname,ssex

Wheresdeptin(‘IS’,’MA’,’CS’)

11、查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

WheresdeptNOTin(‘IS’,’MA’,’CS’)

12、查询学号为98001的学生的详细情况。

Select*

Wheresno=’98001’

13、查考试成绩大于等于90的学生的学号。

Selectsno

Fromsc

Wheregrade>

=90

14、查询所有姓刘学生的姓名、学号和性别。

Selectsname,sno,ssex

Wheresnamelike‘刘%’

15、查询姓"

欧阳"

且全名为三个汉字的学生的姓名。

Selectsname

Wheresnamelike‘欧阳_’

16、查询名字中第2个字为"

阳"

字的学生的姓名和学号。

Selectsname,sno

Wheresnamelike‘_阳%’

17、查询所有不姓刘的学生姓名。

Wheresnamenotlike‘刘%’

18、某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

查询缺少成绩的学生的学号和相应的课程号。

Selectsno,cno

Fromsc

Wheregradeisnull

19、查所有有成绩的学生学号和课程号。

Wheregradeisnotnull

实验四单表查询

(二)

3、掌握使用集函数的单表查询。

4、掌握对查询结果排序与分组。

1、查询学生总人数。

selectcount(*)'

总人数'

2、查询选修了课程的学生人数。

selectcount(distinctsno)'

人数'

3、计算1号课程的学生平均成绩。

selectavg(grade)'

平均分'

wherecno='

1'

4、查询选修1号课程的学生最高分数。

selectmax(grade)'

最高分'

5、计算选修1号课程的学生人数、最高成绩、最低成绩及平均成绩。

max(grade)'

min(grade)'

最低分'

avg(grade)'

6、求各个课程号及相应的选课人数。

selectcno,count(*)'

选课人数'

groupbycno

7、查询选修了3门以上课程的学生学号。

selectsno

groupbysno

havingcount(*)>

3

8、查询有3门以上课程是90分以上的学生的学号。

wheregrade>

90

9、查询各专业的专业名及学生人数。

selectsdept,COUNT(*)'

学生人数'

groupbysdept

10、查询平均成绩在80分以上的学生的学号及平均成绩

selectsno,AVG(grade)as'

平均成绩'

havingAVG(grade)>

80

11、查询至少有2个人选修的课程的课程号,选课人数。

selectcno,COUNT(*)'

havingCOUNT(*)>

=2

12、查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

selectsno,grade

3'

orderbygradedesc

13、查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。

orderbysdeptasc,sagedesc

实验五多表查询

(一)

系名专业及班级

5、掌握连接查询的一般格式。

6、熟练掌握连接查询的各种方法。

1.查询选修2号课程的学生名字。

selectsname

fromstudent,sc

wherestudent.sno=sc.snoandcno='

2'

2.查询选修了这样课程的学生学号,其直接先行课是5号课程。

fromsc,course

whereo=oandcpno='

5'

3.查询选修的课程成绩为90分以上的学生姓名与课程名和成绩。

selectsname,cname,grade

fromstudent,sc,course

wherestudent.sno=sc.snoando=o

andgrade>

4.查询每一门课的间接先修课(即先修课的先修课)

selecto,b.cpno

fromcoursea,courseb

wherea.cpno=o

5.查询选修2号课程且成绩在90分以上的所有学生的学号、姓名。

selectstudent.sno,sname

6.查询每个学生的学号、姓名、选修的课程名及成绩。

selectstudent.sno,sname,cname,grade

7.查询性别为男、课程成绩及格的学生信息及课程号、成绩。

selectstudent.*,cno,grade

wherestudent.sno=sc.snoandgrade>

=60andssex='

8.查询平均成绩大于85分的学号、姓名、平均成绩。

selectstudent.sno,sname,avg(grade)'

wherestudent.sno=sc.sno

groupbystudent.sno,sname

havingavg(grade)>

85

9.查询选修了数据库系统的学生的姓名及成绩。

selectsname,grade

fromstudent,course,sc

wherestudent.sno=sc.snoando=oandcname='

数据库系统'

10.查询每个系的学生选修的1号课程的平均成绩,最高分,最低分,选课人数。

count(*)'

实验六多表查询

(二)

7、掌握子查询语句的一般格式。

8、熟练掌握子查询的各种方法。

11.查询不选1号课程的学生名字。

wheresnonotin(selectsnofromscwherecno='

12.查询至少被2个学生选修的课程的课程名。

selectcname

fromcourse

wherecnoin

(selectcno

fromsc

groupbycno

havingcount(*)>

=2)

13.查询计算机系(CS)选修了2门及以上课程的学生的学号。

wheresnoin(selectsnofromstudentwheresdept='

14.查询与“钱横”在同一个系学习的学生信息。

wheresname!

='

钱横'

andsdept=

(selectsdept

fromstudent

wheresname='

15.查询选修了课程名为“数学分析”的学生学号、姓名和所在系。

selectsno,sname,sdept

wheresnoin(selectsno

fromsc

wherecnoin(selectcno

fromcourse

wherecname='

数学分析'

))

16.查询同时选修了“1”课程和“2”课程的学生的姓名。

wheresnoin

(selectsno

wherecno='

andsnoin

(selectsno

fromsc

wherecno='

17.查询至少选修了3门课程的学生的姓名。

groupbysno

=3)

18.查询平均成绩在80分以上的学生的姓名。

havingavg(grade)>

80)

实验七视图

1.掌握视图定义方法和使用方法。

2.掌握对视图数据的增,删,改操作。

19.创建计算机系(CS)的学生信息视图V_1。

createviewv_1

as

wheresdept='

20.建立计算机系(CS)选修了1号课程的学生信息视图V_2。

createviewv_2

ANDSNOIN(SELECTSNOFROMSCWHERECNO='

21.建立计算机系选修了1号课程且成绩在90分以上的学生的视图V_3。

createviewv_3

ANDSNOIN

(SELECTSNOFROMSCWHERECNO='

ANDGRADE>

90)

22.定义一个反映学生学号,姓名,出生年份的视图V_4。

CREATEVIEWV_4(学号,姓名,出生年份)

AS

SELECTSNO,SNAME,YEAR(GETDATE())-SAGE

FROMSTUDENT

23.将学生的学号及其平均成绩定义为一个视图V_5。

CREATEVIEWV_5(学号,平均成绩)

SELECTSNO,AVG(GRADE)

FROMSC

GROUPBYSNO

24.创建计算机专业(CS)学生的平均成绩视图V_6,包括学号和平均成绩.

CREATEVIEWV_6(学号,平均成绩)

WHERESNOIN(SELECTSNOFROMSTUDENTWHERESDEPT='

25.通过V_2视图查询计算机系选修了1号课程的学生姓名,性别,年龄。

SELECTSNO,SNAME,SAGE

FROMV_2

26.在V_5视图中查询平均成绩在90分以上的学生学号和平均成绩。

SELECT学号,平均成绩

FROMV_5

WHERE平均成绩>

27.将计算机系学生视图V_1中学号98002的学生姓名改为“刘辰”。

UPDATEV_1

SETSNAME='

刘辰'

WHERESNO='

98002'

28.向计算机系学生视图V_1中插入一个新的学生记录:

95029,赵新,20岁

INSERTINTOV_1(SNO,SNAME,SAGE,SDEPT)

VALUES('

95029'

赵新'

20,'

29.删除视图V_1中学号为95029的记录。

DELETEV_1

实验八索引

9、掌握索引的类型

10、掌握使用界面方式和SQL语句创建索引,查看索引,删除索引的方法。

分别使用界面方式和SQL语句完成下面题。

1、为student表的sname列创建索引。

Createindexind_snameonstudent(sname)

2、为student表按sname的升序,sage的降序建立索引。

Createindexind_studentonstudent(snameasc,sgaedesc)

3、根据course表的cname列降序创建唯一索引。

Createuniqueindexind_cnameoncourse(cname)

4、根据student表中sno列创建唯一聚集索引。

Createuniqueclusteredindexind_snoonstudent(sno)

5、删除course表cname列上的索引。

Dropindexame

6、使用存储过程查看student表上所有的索引。

ExecSp_helpindexstudent

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

当前位置:首页 > 初中教育 > 科学

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

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