SQL语言练习题和答案.docx

上传人:b****3 文档编号:3939573 上传时间:2022-11-26 格式:DOCX 页数:12 大小:28.08KB
下载 相关 举报
SQL语言练习题和答案.docx_第1页
第1页 / 共12页
SQL语言练习题和答案.docx_第2页
第2页 / 共12页
SQL语言练习题和答案.docx_第3页
第3页 / 共12页
SQL语言练习题和答案.docx_第4页
第4页 / 共12页
SQL语言练习题和答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

SQL语言练习题和答案.docx

《SQL语言练习题和答案.docx》由会员分享,可在线阅读,更多相关《SQL语言练习题和答案.docx(12页珍藏版)》请在冰豆网上搜索。

SQL语言练习题和答案.docx

SQL语言练习题和答案

第三章SQL语言

、选择题

1.SQL语言是(B)的语言,容易学习。

A.过程化B.非过程化

C.格式化D.导航式

2.SQL语言的数据操纵语句包括SELECT、INSERT、UPDAT、EDELETE等。

其中最重要的,也是使用最频繁的语句是(A)。

A.SELECTB.INSERT

C.UPDATED.DELETE

3.在视图上不能完成的操作是()。

A.更新视图B.查询

C.在视图上定义新的表D.在视图上定义新的视图

4.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREAT、E

DROP、ALTER语句是实现哪种功能()。

A.数据查询B.数据操纵

C.数据定义D.数据控制

5.SQL语言中,删除一个视图的命令是()。

6.在SQL语言中的视图VIEW是数据库的()。

A.外模式B.模式C.内模式D.存储模式

7.下列的SQL语句中,()不是数据定义语句。

A.CREATETABLEB.DROPVIEW

C.CREATEVIEWD.GRANT

8.若要撤销数据库中已经存在的表S,可用()。

A.DELETETABLESB.DELETES

C.DROPTABLESD.DROPS

9.若要在基本表S中增加一列CN(课程名),可用()。

TABLES(CNCHAR(8))

TABLESALTER(CNCHAR(8))

TABLESADD(CNCHAR(8))

TABLES(ADDCNCHA(R8))

10.学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。

要在表S中删除一个属性“年龄”,可选用的SQL语句是()。

A.DELETEAgefromS

B.ALTERTABLESDROPAge

C.UPDATESAge

D.ALTERTABLES‘Age'

11.有关系S(S#,SNAM,ESAGE),C(C#,CNAM)E,SC(S#,C#,GRAD)E。

其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄,C#是课程号,CNAME是课程名称。

要查询选修“ACCES”S课的年龄不小于20的全体学生姓名的SQL语句是SELECTSNAMEFROMS,C,SCWHERE子句。

这里的WHERE子句的内容是()。

A.#=#and#=#andSAGE>=20andCNAME=‘ACCES'S

B.#=#and#=#andSAGEin>=20andCNAMEin‘ACCES'S

C.SAGEin>=20andCNAMEin‘ACCES'S

D.SAGE>=20andCNAME'=ACCESS'

12.设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。

若要把“张二的化学

成绩80分”插入S中,则可用()。

A.ADD

INTOS

VALUES('张二','化学','80')

B.INSERT

80')

INTOS

VALUES('张二','化学',

C.ADD

INTOS

VALUES('张二','化学',80)

D.INSERT

INTOS

VALUES('张二','化学',80)

为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。

若要更正王二的化学成绩为85分,则可用()。

A.UPDATES

SETgrade=85

WHERESN='王二'ANDCN='化学'

B.UPDATES

SETgrade='85'

WHERESN='王二'ANDCN='化学'

C.UPDATEgrade=85

WHERESN='王二'ANDCN='化学'D.UPDATEgrade='85'

WHERESN='王二'ANDCN='化学'

14.在SQL语言中,子查询是()。

A.返回单表中数据子集的查询语言

B.选取多表中字段子集的查询语句

C.选取单表中字段子集的查询语句

D.嵌入到另一个查询语句之中的查询语句

15.SQL是一种()语言。

A.高级算法B.人工智能

C.关系数据库D.函数型

16.有关系S(S#,SNAM,ESEX),C(C#,CNAM)E,SC(S#,C#,GRAD)E。

其中S#是学生号,SNAME是学生姓名,SEX是性别,C#是课程号,CNAME是课程名称。

要查询选修“数据库”课的全体男生姓名的SQL语句是SELECTSNAMFEROMS,C,SCWHER子E句。

这里的WHERE子句的内容是()。

=#and#=#andSEX='男'andCNAME='数据库'

=#and#=#andSEXin'男'andCNAMEin'数据库'

'男'andCNAME'数据库'

男'andCNAME='数据库'

17.若用如下的SQL语句创建了一个表SC:

CREATETABLESC(S#CHAR(6)NOTNULL,C#CHAR(3)NOTNULL,SCOREINTEGER,NOTECHA(R20));向SC表插入如下行时,()行可以被插入。

A.('201009','111',60,必修)

B.('200823','101',NULL,NULL)

C.(NULL,'103',80,'选修')

D.('201132',NULL,86,'')

18.假设学生关系S(S#,SNAM,ESEX),课程关系C(C#,CNAM)E,学生选课关系SC(S#,C#,GRAD)E。

要查询选修“Computer”课的男生姓名,将涉及到关系()。

A.SB.S,SCC.C,SCD.S,C,SC

二、简答题

1.试述SQL语言的特点。

答:

(1)综合统一。

SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。

(2)高度非过程化。

用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。

(3)面向集合的操作方式。

SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

(4)以同一种语法结构提供两种使用方式。

SQL语言既是自含式语言,又是嵌入式语

言。

作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。

(5)语言简捷,易学易用。

2.试述SQL的定义功能。

答:

SQL的数据定义功能包括定义表、定义视图和定义索引。

SQL语言使用CREATETABLE语句定义建立基本表,;ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;建立索引使用CREATEINDEX语句建立索引,DROPINDEX语句删除索引表;SQL语言使用CREATEVIEW命令建立视图,DROPVIEW语句删除视图。

3.用SQL语句建立第3章习题3中的四个表。

答:

对于S表:

S(SNO,SNAM,ESTATUS,CITY);

建S表

CREATETABLES

(SNOCHAR(3),

SNAMECHAR(10),

STATUSCHAR

(2),

CITYCHAR(10));

P(PNO,PNAM,ECOLOR,WEIGHT;)

建P表

CREATETABLEP

(PNOCHAR(3),

PNAMECHAR(10),

COLORCHAR(4),

WEIGHTINT);

J(JNO,JNAME,CITY);建J表

CREATETABLEJ

(JNOCHAR(3),

JNAMECHAR(10),

CITYCHAR(10));

SPJ(SNO,PNO,JNO,QTY);

建SPJ表

CREATETABLESPJ

(SNOCHAR(3),

PNOCHAR(3),

JNOCHAR(3),

QTYINT);

4.针对上题中建立的四个表试用SQL语言完成第3章习题3中的查询。

答:

(1)求供应工程J1零件的供应商号码SNO;

SELECTSNO

FROMSPJ

WHEREJNO‘=J1';

(2)求供应工程J1零件P1的供应商号码SNO;

SELECTSNO

FROMSPJ

WHEREJNO‘=J1'

ANDPNO‘=P1';

(3)求供应工程J1零件为红色的供应商号码SNO;

SELECTSNO

FROMSPJ

WHEREJNO‘=J1'

ANDPNOIN

(SELECTPNO

FROMP

WHERECOLO‘R=红');

SELECTSNO

FROMSPJ,P

WHEREJNO‘=J1'

AND=

ANDCOLOR‘=红';

(4)求没有使用天津供应商生产的红色零件的工程号JNO;

解析:

用SQL语言表示如下:

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERE=

ANDSNOIN

(SELECTSNO

FROMS

WHERECITY‘=天津')

ANDPNOIN

(SELECTPNO

FROMP

WHERECOLO‘R红='));或

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*1

FROMSPJ,S,P

WHERE=

AND=

AND=

AND=‘天津'

ANDP.COLOR=‘红');

注意:

从J表入手,以包含那些尚未使用任何零件的工程

(5)

JNO。

求至少用了供应商S1所供应的全部零件的工程号解析:

用SQL语言表示如下:

SELECTDISTINCTJNO

FROMSPJSPJZ

WHERENOTEXISTS

(SELECT*

FROMSPJSPJX

WHERESNO='S1'

ANDNOTEXISTS

(SELECT*

FROMSPJSPJY

WHERE=

AND=

AND='S1'));

AND='S1'));

5.针对习题3中的四个表试用SQL语言完成以下各项操作:

(1)找出所有供应商的姓名和所在城市。

(2)找出所有零件的名称、颜色、重量。

(3)找出使用供应商S1所供应零件的工程号码。

(4)找出工程项目J2使用的各种零件的名称及其数量。

(5)找出上海厂商供应的所有零件号码。

(6)找出使用上海产的零件的工程名称。

(7)找出没有使用天津产的零件的工程号码。

(8)把全部红色零件的颜色改成蓝色。

(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。

(11)请将(S2,J6,P4,200)插入供应情况关系。

答:

(1)找出所有供应商的姓名和所在城市。

SELECTSNAME,CITY

FROMS;

(2)找出所有零件的名称、颜色、重量。

SELECTPNAME,COLOR,WEIGHT

FROMP;

(3)找出使用供应商S1所供应零件的工程号码。

SELECTJNO

FROMSPJ

WHERESN‘O=S1';

(4)找出工程项目J2使用的各种零件的名称及其数量。

SELECT,

FROMP,SPJ

WHERE=

AND='J2';

(5)找出上海厂商供应的所有零件号码。

SELECTDISTINCTPNO

FROMSPJ

WHERESNOIN

(SELECTSNO

FROMS

WHERECITY='上海');

(6)找出使用上海产的零件的工程名称。

SELECTJNAME

FROMJ,SPJ,S

WHEREJ.JNO=SPJ.JNO

ANDSPJ.SNO=

AND='上海';

SELECTJNAME

FROMJ

WHEREJNOIN

(SELECTJNO

FROMSPJ,S

WHERESPJ.SNO=

AND='上海');

(7)找出没有使用天津产的零件的工程号码。

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERE=ANDSNOIN

(SELECTSNO

FROMS

WHERECITY‘=天津'));或

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*1

FROMSPJ,S

WHERE=AND=AND‘=天津');

(8)把全部红色零件的颜色改成蓝色。

UPDATEP

SETCOLOR='蓝'

WHERECOLOR=红'';

(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。

UPDATESPJ

SETSNO='S3'

WHERESNO='S5'ANDJNO='J4'ANDPNO='P6';

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。

DELETE

FROMSPJ

WHERESNO='S2';或

DELETE

FROMS

WHERESNO='S2';

解析:

注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从

S表中删除S2。

(11)请将(S2,J6,P4,200)插入供应情况关系。

INSERTINTOSPJ(SNO,JNO,PNO,QTY)

VALUES(S2,J6,P4,200);或

INSERTINTOSPJ

VALUES(S2,P4,J6,200);

6.什么是基本表什么是视图两者的区别和联系是什么答:

基本表是本身独立存在的表,在SQL中一个关系就对应一个表。

视图是从一个或几个基本表导出的表。

视图本身不独立存储在数据库中,是一个虚表。

即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。

视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

7.试述视图的优点。

答:

(1)视图能够简化用户的操作。

(2)视图使用户能以多种角度看待同一数据。

(3)视图对重构数据库提供了一定程度的逻辑独立性。

(4)视图能够对机密数据提供安全保护。

8.所有的视图是否都可以更新为什么答:

不是。

视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。

因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不

是所有的视图都是可更新的。

如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩)CREATVIEWS_G(Sno,Gavg)ASSELECTSno,AVG(Grade)

FROMSCGROUPBYSno;要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。

9.哪类视图是可以更新的,哪类视图是不可更新的各举一例说明。

答:

基本表的行列子集视图一般是可更新的。

如《概论》3.5.3中的例1。

若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。

如《概论》3.5.3中的S_G视图。

10.试述某个你熟悉的实际系统中对视图更新的规定。

答:

(略)

解析:

不同的系统对视图更新的规定是不同的,读者必须了解你所用系统对视图更新的规定。

11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件

代码(PNO)、供应数量(QTY)。

针对该视图完成下列查询:

(1)找出三建工程项目使用的各种零件代码及其数量。

(2)找出供应商S1的供应情况。

答:

建视图:

CREATEVIEWV_SPJAS

SELECTSNO,PNO,QTY

FROMSPJWHEREJNO=(SELECTJNO

FROMJ

WHEREJNAME=三'建');

对该视图查询:

(1)找出三建工程项目使用的各种零件代码及其数量。

SELECTPNO,QTY

FROMV_SPJ;

(2)找出供应商S1的供应情况。

SELECTPNO,QTY/*S1供应三建工程的零件号和对应的数量*/FROMV_SPJ

WHERESNO='S1';

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

当前位置:首页 > 工程科技 > 能源化工

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

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