SQL语言综合课堂练习和习题.docx

上传人:b****8 文档编号:10717631 上传时间:2023-02-22 格式:DOCX 页数:30 大小:25KB
下载 相关 举报
SQL语言综合课堂练习和习题.docx_第1页
第1页 / 共30页
SQL语言综合课堂练习和习题.docx_第2页
第2页 / 共30页
SQL语言综合课堂练习和习题.docx_第3页
第3页 / 共30页
SQL语言综合课堂练习和习题.docx_第4页
第4页 / 共30页
SQL语言综合课堂练习和习题.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

SQL语言综合课堂练习和习题.docx

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

SQL语言综合课堂练习和习题.docx

SQL语言综合课堂练习和习题

SQL语言课堂练习和习题

一、选择题

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

A.过程化B.非过程化

C.格式化D.导航式

2.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE,DELETE等.其中最重要的,也是使用最频繁的语句是().

A.SELECTB.INSERT

C.UPDATED.DELETE

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

A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图

4.SQL语言集数据查询,数据操纵,数据定义和数据控制功能于一体,其中,CREATE,DROP,ALTER语句是实现哪种功能().

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

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

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

A.DELETEB.DROPC.CLEARD.REMOVE

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

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

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

A.CREATETABLEB.DROPVIEWC.CREATEVIEWD.GRANT

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

A.DELETETABLESB.DELETESC.DROPTABLESD.DROPS

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

A.ADDTABLES(CNCHAR(8))B.ADDTABLESALTER(CNCHAR(8))

C.ALTERTABLESADD(CNCHAR(8))D.ALTERTABLES(ADDCNCHAR(8))

10.学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号,,性别,年龄.要在表S中删除一个属性"年龄",可选用的SQL语句是().

A.DELETEAgefromSB.ALTERTABLESDROPAge

C.UPDATESAgeD.ALTERTABLES'Age'

11.有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE).其中S#是学生号,SNAME是学生,SAGE是学生年龄,C#是课程号,CNAME是课程名称.要查询选修"ACCESS"课的年龄不小于20的全体学生的SQL语句是SELECTSNAMEFROMS,C,SCWHERE子句.这里的WHERE子句的容是().

A.S.S#=SC.S#andC.C#=SC.C#andSAGE>=20andCNAME='ACCESS'

B.S.S#=SC.S#andC.C#=SC.C#andSAGEin>=20andCNAMEin'ACCESS'

C.SAGEin>=20andCNAMEin'ACCESS'

D.SAGE>=20andCNAME='ACCESS'

12.设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值围0-100.若要把"二的化学成绩80分"插入S中,则可用().

A.ADDINTOSVALUES('二','化学','80')

B.INSERTNTOSVALUES('二','化学','80')

C.ADDINTOSVALUES('二','化学',80)

D.INSERTINTOSVALUES('二','化学',80)

13.设关系数据库中一个表S的结构为:

S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值围0-100.若要更正王二的化学成绩为85分,则可用().

A.UPDATESSETgrade=85WHERESN='王二'ANDCN='化学'

B.UPDATESSETgrade='85'WHERESN='王二'ANDCN='化学'

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

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

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

A.返回单表中数据子集的查询语言B.选取多表中字段子集的查询语句

C.选取单表中字段子集的查询语句D.嵌入到另一个查询语句之中的查询语句

15.SQL是一种()语言.

A.高级算法B.人工智能C.关系数据库D.函数型

16.有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE).其中S#是学生号,SNAME是学生,SEX是性别,C#是课程号,CNAME是课程名称.要查询选修"数据库"课的全体男生的SQL语句是SELECTSNAMEFROMS,C,SCWHERE子句.这里的WHERE子句的容是().

A.S.S#=SC.S#andC.C#=SC.C#andSEX='男'andCNAME='数据库'

B.S.S#=SC.S#andC.C#=SC.C#andSEXin'男'andCNAMEin'数据库'

C.SEX'男'andCNAME'数据库'

D.S.SEX='男'andCNAME='数据库'

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

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

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

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

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

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

18.假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC(S#,C#,GRADE).要查询选修"Computer"课的男生,将涉及到关系().

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

19.SQLServer2000的字符型系统数据类型主要包括()。

A.int、money、charB.char、varchar、text

C.datetime、binary、intD.char、varchar、int

20.如果要在SQLServer2000中存储图形图像、Word文档文件,不可采用的数据类型是()。

A.binaryB.varbinaryC.imageD.text

21.不属于SQLServer2000系统全局变量的是()。

A.ErrorB.Connections

C.Fetch_StatusD.Records

22.SQLServer2000提供的单行注释语句是使用()开始的一行容。

A.“/*”B.“--”C.“{”D.“/”

23.下列标识符可以作为局部变量使用()。

A.[Myvar]B.MyvarC.@MyvarD.@Myvar

24.在SQLServer中,WAITFOR语句中的DELAY参数是指(  )。

A.要等待的时间    B.指示SQLServer一直等到指定的时间过去

C.用于指示时间     D.以上都不是

25.下面(   )组命令,将变量count值赋值为1。

A.DECLAREcount

SELECTcount=1

B.DIMcount=1 

C.DECLAREcount

SELECTcount=1

D.DIM count

SELECTcount=1

26.下列(   )赋值语句是错误的。

A.SELECT C=1   B. SETC=1 

C.SELECTDJ=单价

FROMbook

ORDERBY单价 DESC

D.SETDJ=单价

FROMbook

ORDERBY单价 DESC

27.在SQLServer编程中,可使用(  )将多个语句捆绑。

A.{}      B.BEGIN-END 

C.( )    D.[ ]

28.在SQLServer2000中,下列变量名正确的是(    )。

A.sum       B.j           C.sum          D.4kk

选择题答案:

(1)B

(2)A(3)C(4)C(5)B(6)A(7)D(8)C(9)C(10)B

(11)A(12)D(13)A(14)D(15)C(16)A(17)B(18)D(19)B(20)D

(21)D(22)B(23)C(24)A(25)A(26)D(27)B(28)A

二、填空题

1. 在T-SQL编程语句中,WHILE结构可以根据条件多次重复执行一条语句或一个语句块,还可以使用(  )和CONTINUE关键字在循环部控制WHILE循环中语句的执行。

2. 在T-SQL编程语句中,(  )用于使语句在某一时刻或在一段时间间隔后继续执行。

1.break2.waitfor

三、简答题

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语句建立“关系数据库和关系代数课堂练习和习题”中的四个表.

答:

对于S表:

S(SNO,SNAME,STATUS,CITY);

建S表:

CREATETABLES

(SNOCHAR(3),

SNAMECHAR(10),

STATUSCHAR

(2),

CITYCHAR(10));

P(PNO,PNAME,COLOR,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语言完成“关系数据库和关系代数课堂练习和习题”的查询.

答:

(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

WHERECOLOR='红');

SELECTSNO

FROMSPJ,P

WHEREJNO='J1'ANDSPJ.PNO=P.PNOANDCOLOR='红';

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

解析:

用SQL语言表示如下:

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERESPJ.JNO=J.JNO

ANDSNOIN

(SELECTSNO

FROMS

WHERECITY='')

ANDPNOIN

(SELECTPNO

FROMP

WHERECOLOR='红'));

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ,S,P

WHERESPJ.JNO=J.JNOANDSPJ.SNO=S.SNOANDSPJ.PNO=P.PNOANDS.CITY=''

ANDP.COLOR='红');

注意:

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

*(5)求至少用了供应商S1所供应的全部零件的工程号JNO.

解析:

用SQL语言表示如下:

SELECTDISTINCTJNO

FROMSPJSPJZ

WHERENOTEXISTS

(SELECT*

FROMSPJSPJX

WHERESNO='S1'

ANDNOTEXISTS

(SELECT*

FROMSPJSPJY

WHERESPJY.PNO=SPJX.PNO

ANDSPJY.JNO=SPJZ.JNO

ANDSPJY.SNO='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

WHERESNO='S1';

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

SELECTP.PNAME,SPJ.QTY

FROMP,SPJ

WHEREP.PNO=SPJ.PNO

ANDSPJ.JNO='J2';

(5)找出厂商供应的所有零件.

SELECTDISTINCTPNO

FROMSPJ

WHERESNOIN

(SELECTSNO

FROMS

WHERECITY='');

(6)找出使用产的零件的工程名称.

SELECTJNAME

FROMJ,SPJ,S

WHEREJ.JNO=SPJ.JNO

ANDSPJ.SNO=S.SNO

ANDS.CITY='';

SELECTJNAME

FROMJ

WHEREJNOIN

(SELECTJNO

FROMSPJ,S

WHERESPJ.SNO=S.SNO

ANDS.CITY='');

(7)找出没有使用产的零件的工程.

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERESPJ.JNO=J.JNOANDSNOIN

(SELECTSNO

FROMS

WHERECITY=''));

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*1

FROMSPJ,S

WHERESPJ.JNO=J.JNOANDSPJ.SNO=S.SNOANDS.CITY='');

(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语句。

(1).查询pubs数据库的authors表中的作者的姓(au_lname)、名(au_fname)和(phone)。

(2).使用TOP关键字,从Northwind数据库的customers表中搜索返回前20%的数据。

(3).查询Northwind数据库的Orders表中的数据,并将其中的货物重量feight增加50%。

(4).使用WHERE子句从Northwind数据库的Products表中检索出所有单位价格(UnitPrice)超过50美元的货物名称(ProductName)、货物代号(ProductID)以及每单位重量(QuantityPerUnit)。

(5).在Northwind数据库的Employees表中搜索出职务(Title)为销售代表(SalesRepresentative),称呼(TitleOfCourtesy)为小姐(MS)的所有职员的名(FirstName)、姓(LastName)和生日(BirhthDate)。

(6).查询在Northwind数据库的Employees表中以字母A作Firstname第一个字母的雇员的Firstname和Lastname。

(7).查询Northwind数据库Employees表中所有雇员的Firstname和Lastname,并按生日BirthDate从小到大进行排列。

(8).在Northwind数据库的Products表中查询出每个供应商(Suppliers)所提供的每一种平均价格(Unitprice)超过15美元的产品,并按供应商的ID分类。

四、写出下列每条语句或程序段的功能

假设存在名为AAA的数据库,包括Students(学号char(8),varchar(8),年龄int,专业varchar(20),入学日期DateTime)和Score(学号char(8),课程名varchar(10),成绩numeric(5,2))两表。

1.SELECT*

FROMStudents

WHEREDATEPART(year,入学日期)=DATEPART(year,GETDATE())

2.DECLAREMyNOCHAR(8)

SETMyNO='20030001'

IF(SELECT专业FROMStudentsWHERE学号=MyNO)='计算机软件'

BEGIN

SELECTAVG(成绩)AS平均成绩

FROMScore

WHERE学号=MyNO

END

ELSE

PRINT'学号为'+MyNO+'的学生不存在或不属于软件专业'

GO

3.declareanumeric(5,2)

seta=(selectavg(成绩)fromscore)

select*

fromscore

where成绩>=a

4.declareanumeric(5,2),bnumeric(5,2)

seta=(selectmax(成绩)fromscore)

setb=(selectmin(成绩)fromscore)

printa-b

5.declareachar(6)

seta='亮'

if(exists(select*fromstudentswhere=a))

print'为'+a+'的同学存在!

'

else

print'为'+a+'的同学不存在!

'

6.declareachar(8)

seta='计算机'

select计算机专业人数=count(*)

fromstudents

whereleft(专业,3)=a

7.selectyear(入学日期)as入学年份,count(*)as人数

fromstudents

groupbyyear(入学日期)

8.selectmonth(入学日期)as入学月份,count(*)as人数

fromstudents

groupbymonth(入学日期)

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

当前位置:首页 > 解决方案 > 学习计划

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

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