SQL习题Word文件下载.docx

上传人:b****5 文档编号:17545715 上传时间:2022-12-07 格式:DOCX 页数:74 大小:73.15KB
下载 相关 举报
SQL习题Word文件下载.docx_第1页
第1页 / 共74页
SQL习题Word文件下载.docx_第2页
第2页 / 共74页
SQL习题Word文件下载.docx_第3页
第3页 / 共74页
SQL习题Word文件下载.docx_第4页
第4页 / 共74页
SQL习题Word文件下载.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

SQL习题Word文件下载.docx

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

SQL习题Word文件下载.docx

基本表:

在SQL中,把传统的关系模型中的关系模式称为基本表(BaseTable).基本表是实际存储在数据库中的表,对应一个关系.

视图:

在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表.

相关子查询:

在嵌套查询中出现的符合以下特征的子查询:

子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用.

联接查询:

查询时先对表进行笛卡尔积操作,然后再做等值联接,选择,投影等操作.联接查询的效率比嵌套查询低.

嵌入式SQL:

嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL.

游标:

游标是与某一查询结果相联系的符号名,用于把集合操作转换成单记录处理方式.

2,对于教学数据库的三个基本表

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

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

课程C(C#,CNAME,TEACHER)

试用SQL的查询语句表达下列查询:

(1)检索LIU老师所授课程的课程号和课程名.

SELECTC#,CNAME

FROMC

WHERETEACHER='

LIU'

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

SELECTS#,SNAME

FROMS

WHERE(AGE>

23)AND(SEX='

M'

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

SELECTSNAME

WHERESEX='

F'

ANDS#IN

(SELECTS#

FROMSC

WHEREC#IN

(SELECTC#

FROMC

WHERETEACHER='

NOTICE:

有多种写法,比如联接查询写法:

SELECTSNAME

FROMS,SC,C

WHERESEX='

ANDSC.S#=S.S#

ANDSC.C#=C.C#

ANDTEACHER='

但上一种写法更好一些.

(4)检索WANG同学不学的课程的课程号.

SELECTC#

WHEREC#NOTIN

WHERES#IN

FROMS

WHERESNAME='

WANG'

))

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

SELECTDISTINCT(自连接)X.s###

GROUPBYX.s#

HAVINGcount(x.s#)>

=2;

Notice:

对表SC进行自连接,X,Y是SC的两个别名.

(6)检索全部学生都选修的课程的课程号与课程名.

WHERENOTEXISTS

(SELECT*

WHERES#NOTIN

WHERESC.C#=C.C#))

要从语义上分解:

(1)选择课程的课程号与课程名,不存在不选这门课的同学.

其中,"

不选这门课的同学"

可以表示为:

SELECT*

WHERES#NOTIN

(SELECT*

FROMSC

WHERESC.C#=C.C#)

或者

WHERES.S#=C.S#AND

SC.C#=C.C#)

(7)检索选修课程包含LIU老师所授课的学生学号.

SELECTDISTINCTS#

WHEREC#IN

3,设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:

(1)R∪S

(2)R∩S(3)R-S(4)πA,B(R)πB,C(S)

3,

(1)SELECTA,B,C

FROMR

UNION

SELECTA,B,C

(2)SELECTA,B,C

INTERSECT

4,试用SQL查询语句表达下列对教学数据库中三个基本表S,SC,C的查询:

(1)统计有学生选修的课程门数.

SELECTCOUNT(DISTINCTC#)

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

SELECTAVG(AGE)

FROMS

WHERES#IN(SELECTS#

WHEREC#='

C4'

);

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

SELECTAVG(GRADE)

FROMSC

WHEREC#=(SELECTC#

FROMC

WHEREC.TEACHER=’LIU’)

GROUPBYC#;

SELECTCNAME,AVG(GRADE)

FROMSC,C

WHERESC.C#=C.C#ANDTEACHER='

GROUPBYC#

(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列.

SELECTDISTINCTC#,COUNT(S#)

GROUPBYC#

HAVINGCOUNT(S#)>

10

ORDERBY2DESC,C#ASC

(5)检索学号比WANG同学大,而年龄比他小的学生姓名.

SELECTSname

WHERES#>

(SELECTS#

WHERES.Sname=’WANG’)

ANDAGE<

(SELECTAGE

WHERES.AGE=’WANG’);

(6)检索姓名以WANG打头的所有学生的姓名和年龄.

SELECTSname,age

WHERESnamelike‘WANG%’;

(7)在SC中检索成绩为空值的学生学号和课程号.

SELECTS#,C#

WHEREgrade=NULL;

(8)求年龄大于女同学平均年龄的男学生姓名和年龄.

SELECTSNAME,AGE

FROMS

WHEREAGE>

(SELECTAVG(AGE)

FROMS

WHERESEX='

ANDSEX=’M’;

5,试用SQL更新语句表达对教学数据库中三个基本表S,SC,C的各个更新操作:

(1)往基本表S中插入一个学生元组('

S9'

'

WU'

18).

(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号,姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX).

(3)在基本表SC中删除尚无成绩的选课元组.

(4)把WANG同学的学习选课和成绩全部删去

(5)把选修MATHS课不及格的成绩全改为空值.

(6)把低于总平均成绩的女同学成绩提高5%.

(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现).

6,在宿主语言的程序中使用SQL语句有哪些规定

7,嵌入式SQL语句何时不必涉及到游标何时必须涉及到游标

答案:

一,1,B2,C3,D4,C5,B6,D

二,1,嵌入式交互式2,选择

3,基本表导出的表4,数据查询数据更新数据插入数据删除

5,视图或部分基本表基本表存储文件

6,GROUPBY

三,

1,名词解释

游标是与某一查询结果相联系的符号名,用于把集合操作转换成单记录处理方式.

2,

(1)检索LIU老师所授课程的课程号和课程名.

(SELECTS#

(SELECTC#

FROMS,SC,C

ANDSC.S#=S.S#

ANDSC.C#=C.C#

ANDTEACHER='

WHERES#IN

WHERESNAME='

SELECTDISTINCTX.SNO

FROMSCX,SCY

WHEREX.SNO=Y.SNOANDX.CNOY.CNO

WHERESC.C#=C.C#))

WHER,S.C

FROMR,S

WHERER.B=S.B

4,

(1)统计有学生选修的课程门数.

SELECTCOUNT(DISTINCTC#)FROMSC

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

SELECTAVG(AGE)

或者,

FROMS,SC

WHERES.S#=SC.S#ANDC#='

004'

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

(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列.

ORDERBY2DESC,C#ASC

(5)检索学号比WANG同学大,而年龄比他小的学生姓名.

SELECTX.SNAME

FROMSASX,SASY

WHEREY.SNAME='

ANDX.S#>

Y.S#ANDX.AGE(SELECTAVG(AGE)FROMSASYWHEREY.SEX='

女'

5,

(1)往基本表S中插入一个学生元组('

18).

INSERTINTOS(S#,SNAME,AGE)VALUES('

59'

18)

(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号,姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX).

INSERTINTOSTUDENT(S#,SNAME,SEX)

SELECTS#,SNAME,SEX

FROMSWHERENOTEXISTS

(SELECT*FROMSCWHERE

GRADE<

80ANDS.S#=SC.S#)

(3)在基本表SC中删除尚无成绩的选课元组.

DELETEFROMSC

WHEREGRADEISNULL

(4)把WANG同学的学习选课和成绩全部删去.

(5)把选修MATHS课不及格的成绩全改为空值.

UPDATESC

SETGRADE=NULL

WHEREGRADE<

60ANDC#IN

WHERECNAME='

MATHS'

6)把低于总平均成绩的女同学成绩提高5%.

SETGRADE=GRADE*1.05

(SELECTAVG(GRADE)FROMSC)ANDS#IN(SELECTS#FROMSWHERESEX='

ANDGRADE75

6,在宿主语言的程序中使用SLQ语句有以下规定:

(1)在程序中要区分SQL语句与宿主语言语句

(2)允许嵌入的SQL语句引用宿主语言的程序变量(称为共享变量),但有两条规定:

1)引用时,这些变量前必须加"

:

"

作为前缀标识,以示与数据库中变量有区别.

2)这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明.

(3)SQL的集合处理方式与宿主语言单记录处理方式之间要协调.需要采用游标机制,把集合操作转换成单记录处理方式.

7,

(1)INSERT,DELETE,UPDATE语句,查询结果肯定是单元组时的SELECT语句,都可直接嵌入在主程序中使用,不必涉及到游标.

(2)当SELECT语句查询结果是多个元组时,此时宿主语言程序无法使用,一定要用游标机制把多个元组一次一个地传送给宿主语言处理.

Oracle面试题库-PL/SQL

1PL/SQL代表

APROCEDURALLANGUAGE/SQL

BPROGRAMLANGUAGESQL

CPOWERLANGUAGESQL

D都不对

2_____引擎执行PL/SQL块

ASQL

BPL/SQL

CORACLE

3一个对象可以呈现多种形式的能力称为

A多态

B继承

C封装

D以上都不对

4PLSQL块是由哪几个部分组成

ADECLAREBEGINEND

BBEGINEND

CEXCEPTIONBEGINEND

DDECLAREBEGINEXCEPTIONEND

5看下面代码,正确的是

ADECLARE

DBMS_OUTPUT.PUT_LINE(‘定义部分’);

BEGIN

DBMS_OUTPUT.PUT_LINE(‘语句部分’);

END;

BBEGIN

NUMNUMBER:

=100;

DBMS_OUTPUT.PUT_LINE(‘NUM的值为:

’||NUM);

CDECLARE

NUM:

=NUM+NUM/2;

DBEGIN

DECLARE

6看下面语句正确的是

AIF(N%M=0)THEN

DBMS_OUTPUT.PUT_LINE(‘这是一个偶数’);

ELSEIF(N%M=1)THEN

DBMS_OUTPUT.PUT_LINE(‘这是一个奇数’);

ENDIF;

BDECLARE

VARNUMBER:

=0;

VAR:

=&

V;

CASE

WHENVAR=1THEN

DBMS_OUTPUT.PUT_LINE(‘A’);

WHENVAR=2THEN

DBMS_OUTPUT.PUT_LINE(‘B’);

ELSE

DBMS_OUTPUT.PUT_LINE(‘O’);

ENDCASE;

INUMBER:

FORIIN10..20LOOP

DBMS_OUTPUT.PUT_LINE(I);

ENDLOOP;

DLOOP

7.当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗?

如果产生,是什么异常?

A不会有异常,只不过没有结果而已

B有异常,异常为No_data_found

C有异常,异常为Value_erro

D编译都不通过

8.在PLSQL块中处理异常的语句是

AEXCEPTION

IFEXCEPTION_NAMETHEN

DBMS_OUTPUT.PUT_LINE();

BEXCEPTION

WHENEXCEPTION_NAMETHEN

ENDEXCEPTION;

CWHENEXCEPTION_NAMETHEN

NULL;

EXCEPTION

END;

9.当用户在PLSQL块中,像抛出自定义异常或者是系统异常时,所使用的关键字是

ATHROW

BRAISE

CRAISE_APPLICATION_ERROR

DEXCEPTION

10.在自定义异常中,用户可用的错误号范围在

A20000~29999

B-20000~-20999

C1~65535

D没有限制

11.阅读代码

DBMS_OUTPUT.PUT_LINE(‘外不快’);

MYEXCEEXCEPTION;

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

当前位置:首页 > 求职职场 > 笔试

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

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