1
数据库技术及应用
1.8.4 习 题 5

习 题 5

一、选择题

1.要从一个表中查询全部字段,在SELECT子句中可以使用( )。

A.* B._ C.? D.%

2.SQL Server提供了4种通配符,分别是?、%、[]和[]。若要表示一个5位的字符串,该字符串以T开头,后四位是1到5的数字,正确的表示方法是( )。

A.'T????' B.'T%'

C.'T[l—5][1—5][1—5][1—5]' D.'T[12345]'

3.与WHEREGBETWEEN20AND30子句等价的子句是( )。

A.WHEREG>20ANDG<30 B.WHEREG>=20ANDG<30

C.WHEREG>20ANDG<=30 D.WHEREG>=20ANDG<=30

4.在TransacT-SQL中,查询时将Student表的Sid列标题命名为“编号”的正确操作是( )。

A.SELECTSid编号FROMStudent B.SELECT编号Sid FROMStudent

C.SELECTSid=编号FROMStudent D.SELECT编号ASSid FROMStudent

5.查询学生成绩信息时,结果按成绩降序排列,正确的是( )。

A.ORDERBY成绩 B.ORDERBY成绩DESC

C.ORDERBY成绩ASC D.ORDERBY成绩DISTINCT

第6~9题基于这样的3个表,即学生表S、课程表C和学生选课表SC,它们的结构如下:

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。

6.查询所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是( )。

A.SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEFROMS WHERESN='王华')

B.SELECTSN,AGE,SEXFROMSWHEREAGE>ANY(SELECTAGEFROM SWHERESN='王华')

C.SELECTSN,AGE,SEXFROMSWHEREAGE>ALL(SELECTAGEFROM SWHERESN='王华')

D.SELECTSN,AGE,SEXFROMSWHEREAGE>SOME(SELECTAGE FROMSWHERESN='王华')

7.查询选修了课程号为01006的学生中成绩最高的学生的学号,正确的SELECT语句是( )。

A.SELECTS#FROMSCWHEREC#='01006' ANDGRADE>=ALL (SELECTGRADEFROMSCWHEREC#='01006')

B.SELECTS#FROMSCWHEREC#='01006'ANDGRADEIN(SELECT MAX(GRADE)FROMSCWHEREC#='01006')

C.SELECTS#FROMSCWHEREC#='01006'ANDGRADE=(SELECT MAX(GRADE)FROMSCWHEREC#='01006')

D.SELECTS#FROMSCWHEREC#='01006' ANDGRADE>=ANY (SELECTGRADEFROMSCWHEREC#='01006')

8.查询至少选修了两门课程的学生的姓名,正确的SELECT语句是( )。

A.SELECTS.SNFROMSJOINSCONS.S#=SC.S#GROUPBYS.S#HAVINGCOUNT(*)>=2

B.SELECTS.SNFROMSWHEREEXISTS(SELECTS#FROMSCGROUP BYS#HAVINGCOUNT(*)>2)

C.SELECTS.SNFROMSJOINSCSl ONS.S#=SC.S#JOINSCS20NSl.S#=S2.S#WHERESi.C#!=S2.C#

D.SELECTS.SNFROMSWHERES#IN(SELECTS#FROMSCGROUPBY S#HAVINGCOUNT(*)>2)

9.查询所有没有被学生选过的课程的名称,正确的SELECT语句是( )。

A.SELECTC.CNFROMCJOINSCONSC.C#=C.C#WHEREC.C#ISNULL

B.SELECTC.CNFROMCLEFTJOINSCONSC.C#=C.C#WHERESC.C#ISNULL

C.SELECTC.CNFROMSCLEFTJOINCONSC.C#=C.C#WHERESC.C#ISNULL

D.SELECTC.CNFROMSCRIGHTJOINCONSC.C#=C.C#WHERESC.C#ISNULL

二、填空题

1.SQL Server2008使用了_______ 关键字,用于查询时只显示前面几行数据。

2.TransacT-SQL提供了连接操作符_______ ,用于从两张或多张数据表的连接中获取数据。

3.TransacT-SQL允许用户使用SELECT语句查询得到的结果记录来创建一个新数据表,创建新表使用_______ 子句。

4.如果要删除查询结果集中的重复记录行,需要使用关键字_______ 。

5.用SELECT进行模糊查询时,可以使用LIKE或NOTLIKE关键字,并要在条件值中使用[]、[]、_______ 或_______ 等通配符来配合查询。模糊查询只能针对_______类型字段查询。

6.检索某表“姓名”字段中含有“国”的表达式为“姓名like_______ ”。

三、简答题

1.查询条件表达式中包含的运算符有哪些?各有什么作用?

2.如何使用列别名来改善查询结果的显示效果?

3.模糊查询中使用的通配符有哪几种?各代表什么含义?

4.外连接有几种?各自的特点是什么?

5.如果想在一个查询中连接多个表(假设是N个),共需要几个连接条件?

四、实训题

在SQL Server2008查询分析器中书写T-SQL语句对Book数据库完成以下操作:

(1)查询超期欠款超过10元的读者姓名。

(2)查询归还图书日期为08012013的读者姓名。

(3)查询姓名为“张三”的读者的已借图书数量。

(4)查询清华大学出版社出版的所有计算机类图书,结果按出版日期降序排列,并列出其书名、作者、出版日期和出版社。

(5)将第1~4题中的脚本保存为文本文件,并上交以备教师检查。