SQL练习题Word格式.docx
《SQL练习题Word格式.docx》由会员分享,可在线阅读,更多相关《SQL练习题Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
A、MasterB、TempdbC、ModelD、Sqltemp
7、______创建了一个索引,每一行包含一个不同的索引值。
A、NonClustered(非聚簇)B、Clustered(聚簇)
C、Unique(唯一)D、Join(连接)
8、在关系模型中,“元组”是指(A)
(A)表中的一行
(B)表中的一列
(C)表中的一个数据
(D)表中的一个成分
9、下面哪一个命令不属于数据定义语言(DML)?
(C)
A、SELECTB、UPDATEC、CREATETABLED、INSERT
10、有学生、选修和课程三个关系,学生S(学号,姓名,性别….),课程C(课程号,课程名),选修SC(学号,课程号,成绩)。
想查询选修2号课程的学生的学号和姓名,则关系运算式应写成(C)
(A)
∏学号(σ课程号=2(S∞SC))
(B)∏学号,姓名(σ课程号=2(S))
(C)
∏学号,姓名(σ课程号=2(S∞SC))
(D)σ课程号=2(∏学号,姓名(S∞SC))
11、在创建表的过程中,哪个关键字用来定义默认值(D)
A、DISTINCTB、UNIQUEC、CHECKD、DEFAULT
12、规定关系的所有主属性都不能取空值,是用来实现哪一类完整性约束(A)
(A)实体完整性(B)属性值的约束
(C)参照完整性(D)用户定义完整性
13、以下哪个关键字用来定义记录在某属性上的约束条件(D)
A、DEFAULTB、DISTINCTC、UNIQUED、CHECK
14、欲往表中增加一条记录,应该用哪一条SQL语句(B)
AALTERTABLEBINSERTINTOTABLE表名
CINSERTINTO表名DDROPTABLE
15、学生关系(学号,姓名,性别,年龄,系号,系名)中,“系名”对主关键字“学号”的函数依赖是(C)
(A)完全函数依赖(B)部分函数依赖
(C)传递函数依赖(D)平凡函数依赖
16、在一个关系中,所有字段都是不可分的,给定一个关键字,则可以在这个数据表中唯一确定一条记录,则这个关系一定满足1NF、2NF和3NF中的(A)
(A)1NF(B)1NF和2NF
(C)1NF、2NF和3NF(D)2NF和3NF
17、你是NewStar公司的一名数据库顾问。
数据库中的记录已经非常庞大,结果查询的性能非常差。
公司要求你提出一个适当的解决方案来提高查询性能。
另外,要求在真实的数据库中保存排好序的数据。
下面哪一个选项可以帮助你完成这项任务?
A、创建数据库的一个视图。
B、在数据库中创建一个非聚集索引。
C、在数据库中创建一个聚集索引。
D、在数据库中创建一个约束。
18、有关系R和S,关系代数运算R∩S等价于(B)
(A)S-(R-S)
(B)R-(R-S)
(C)R-S
(D)S-R
19、在数据库设计中使用E-R图工具的阶段是(A)。
A、需求分析阶段
B、数据库物理设计阶段
C、数据库实施
D、概念结构设计阶段
20、有学生、选修和课程三个关系,S(学号,姓名,性别,年龄),C(课程号,课程名),SC(学号,课程号,成绩)。
以下选项中外码是(B)
(A)S.学号
(B)SC.学号
(C)C.课程号
(D)SC.成绩
21、SQL语句中修改表结构的命令是(C)
A、modifytableB、modifystructure
C、altertableD、alterstructure
22、要想用T-SQL语句从学生表中查询学号的前四个字符为“2004”第五个字符任意,后三个字符为“-05”的学生,条件表达式为(C)
(A)学号LIKE‘2004%-05’
(B)学号=‘2004%-05’
(C)学号LIKE‘2004_-05’
(D)学号=‘2004_-05’
23、你想要检索所有书的pub_id、title和price字段,这些书或者有PublisherID为196,或者title包含‘CPU’,并且price是非空的。
你将用下面的哪一个SQL查询?
A、SELECTpub_id,title,price
FROMtitles
where(pub_id=‘196’ORtitleBETWEEN‘%CPU%’)ANDpriceisNOTNULL
B、SELECTpub_id,title,price
where(pub_id=‘196’ANDtitleLIKE‘%CPU%’)ANDpriceisNOTNULL
C、SELECTpub_id,title,price
Where(pub_id=‘196’)ANDpriceisNOTNULL
D、SELECTpub_id,title,price
Where(pub_id=‘196’ORtitleLIKE‘%CPU%’)ANDpriceisNOTNULL
24、已知三个关系:
S(学号,姓名,性别)
C(课程编号,课程名称,学时)
SC(学号,课程编号,分数)
若要查询所有选了课的学生的学号和姓名,下列语句正确的是(D)
(A)select学号,姓名fromsWHERE学号in(select*fromsc)
(B)select学号,姓名froms
WHEREin(select*fromscwheres.学号=sc.学号)
(C)select学号,姓名froms
WHERE学号exists(select*fromscwheres.学号=sc.学号)
(D)select学号,姓名froms
WHEREexists(select*fromscwheres.学号=sc.学号)
25、在SQL语言中,建立存储过程的命令是(A)
A、CREATEPROCEDUREB、CREATERULE
C、CREATEDURED、CREATEFILE
26、SQL语句中删除表的命令是(C)
(A)DELETETABLE(B)DELETEDBF
(C)DROPTABLE(D)DROPDBF
27、如果课程表Course是使用以下SQL语句创建的:
CREATETABLECourse(CnoCHAR
(2)notnull,CnameCHAR(20),CfenINT);
下面的SQL语句中可以正确执行的是(D)
(A)INSERTINTOCourse(Cno,Cname,Cfen)VALUES(C2,″数据库″,3)
(B)INSERTINTOCourse(Cno,Cname,Cfen)VALUES(″C2″,″数据库″,″2″)
(C)INSERTINTOCourse(Cname,Cfen)VALUES(″数据库″,3)
(D)INSERTINTOCourse(Cno,Cname)VALUES(‘C2’,’数据库’)
28、以下哪个命令可以删除STATE表中的UPDATE_DT这一列?
(A)
A、ALTERTABLESTATEREMOVECOLUMNUPDATE_DT;
B、ALTERTABLESTATEDROPCOLUMNUPDATE_DT;
C、DROPCOLUMNUPDATE_DTFROMSTATE;
D、你不能从这个表中DROP该列.
29、已知三个关系:
S(SNO,NAME,SEX,CLASS);
C(CNO,CNAME,TIME);
SC(SNO,CNO,DEGREE)
若要查询统计每门课各班的平均成绩和每门课的平均成绩以及总的平均成绩,下列语句正确的是(A)
(A)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=ogroupbys.class,c.cnamewithrollup
(B)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=sc.cnogroupbys.class,c.cnamewithcube
(C)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=sc.cnogroupbyc.cname,s.classwithcube
(D)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=sc.cnogroupbyc.cname,s.classwithrollup
30、预测下列查询的输出:
SELECT*FROMPublishersWHERECity='
上海'
ANDState='
江苏'
A、从Publishers表中返回所有City字段包含上海的行。
B、从Publishers表中返回所有City字段包含上海的行或者State字段包含江苏的行。
C、从Publishers表中返回所有State字段包含江苏的行。
D、从Publishers表中返回所有City字段包含上海并且State字段包含江苏的行。
31、当where子句、聚合函数、groupby子句和having子句同时出现在一个查询中时,最后执行的是(d)
(A)聚合函数
(B)where子句
(C)groupby子句
(D)having子句
32、在表BOOKS,列ISBN上创建一个主键约束pk_books的命令是?
(C)
A.createprimarykeyonbooks(ISBN);
B.createconstraintpk_booksprimarykeyonbooks(ISBN);
C.altertablebooksaddconstraintpk_booksprimarykey(ISBN);
D.altertablebooksaddprimarykey(ISBN);
33、关系数据模型的三个组成部分中,不包括(c)
A、完整性规则B、数据结构
C、恢复
D、数据操作
34、授予user1用户修改st表中的“姓名”字段的权限,应使用的SQL语句是(a)
(A)GRANTUPDATE(姓名)ONstTABLETOuser1
(B)GRANTUPDATE(姓名)ONTABLEstTOuser1
(C)GRANTMODIFY(姓名)ONstTABLETOuser1
(D)GRANTMODIFY(姓名)ONTABLEstTOuser1
35、SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示(d)
A、零个字符B、1个字符C、多个字符D、以上都是
36、如何在已经创建好的表上添加一个外键(d)
A、Altertable表名addforeignkey(键名)references关联表(关联键名)
B、Altertable表名addPrimarykey(键名)references关联表(关联键名)
C、Alter表名addforeignkey(键名)references关联键名)
D、Alter表名addPrimarykey(键名)references关联表(关联键名)
37、SQLServer2005中,主数据库文件的扩展名为(b)
(A).mdf
(B).dbf(C).ldf
(D).ndf
38、显式事务和隐式事务都需要用什么语句来提交和回滚(b)
(A)ENDTRANSACTION和ROLLBACKTRANSACTION
(B)COMMITTRANSACTION和ROLLBACKTRANSACTION
(C)SAVETRANSACTION和ROLLUPTRANSACTION
(D)COMMITTRANSACTION和ROLLUPTRANSACTION
39、下列哪种情况不适合创建索引(d)
(A)表中的主键列(B)只有两个或若干个值的列
(C)需要强制实施唯一性的列(D)连接中频繁使用的列
40、使用什么关键字可以把重复行屏蔽(a)
A、DISTINCTB、UNIONC、ALLD、TOP
1数据库技术经历了人工管理阶段,文件系统阶段和数据库系统阶段三个发展阶段。
2SQLServer2005局部变量名字必须以_____@____开头,而全局变量名字必须以____@@_____开头。
3数据库系统中最常用的三种数据模型有层次模型,网状模型,关系模型。
4、语句selectfloor(17.4),round(-18.4562,3)的执行结果是:
_____17_____和_____-18.4560____。
5关系模式的三类完整性约束条件分别是关系数据结构,关系操作集合和关系完整性。
6数据是记录客观事实的___可鉴别的符号______,并且和_________是不可分的。
7E-R图的主要元素是实体型,实体的属性,实体之间的联系。
8在E-R模型的主要术语中,属性的取值范围称为___域____。
能够区别不同的实体且能唯一标识实体的最小属性集,称为___实体集的实体键___。
9关系运算主要有___选择_____、____投影____和连接。
10完整性约束包括____实体__完整性、___域___完整性、参照完整性和用户定义完整性。
11在SQLServer2000中,数据库对象包括___表___、___视图___、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。
12语句selectday('
2004-4-6'
),len('
我们快放假了.'
)的执行结果是:
2004—4—6_____和_____6____。
设教学数据库teachingdate中有3个基本表。
学生表S(SNO.SNAME.SEX.CLASS)
选课表SC(SNO,CNO,SCORE)
课程表C(CNO,CNAME,TEACHER)
试写出下列查询语句的关系代数表达式。
1,查询老师‘张三’所授课程的课程号和课程名(CNO,CNAME)
2,查询没有选修“高等数学”的学生的姓名和所在班级(SNAME,CLASS)
3,查询所有女生的姓名和所在班级。
4,查询未选修课为‘00100002’的课程的男学生的学号和姓名(sno,sname)
1函数,存储过程的区别:
存储过程:
1,通过output参数返回数据2,对任何数据及对象进行修改,新建,删除数据表,数据库设置等3,只能返回整数数据4,只能通过execute来执行。
用户定义函数:
1,只可以接收参数,不能用output参数返回值2,只能对数据进行修改3,可以返回除了text,ntext,image,cursor,timestamp类型外其他所有数据类型4,可通过execute方式执行,也可用在表达式中,并以返回值的方式取代函数名
2视图的概念与基本表的关系区别与联系p158:
视图是一个虚拟的表,该表中的记录是有一个查询语句执行后所得到的查询结果构成的。
区别:
1视图是已经编译好的SQL语句,而表不是,2,视图没有实际的物理记录,而表有,3表是内容,视图是窗口,4表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对他修改,但视图不能由创建的语句来修改,5表示内模式,视图是外模式,6表属于全局模式中的表,是实表,视图属于局部模式的表,是虚表,7视图的建立和删除只影响视图本身,不影响对应的基本表,8从安全的角度,视图可以不给用户接触数据表,从而不知道表结构。
联系:
视图是在基本表之上建立的表,它的结构(即所定义的列)和内容(所定义的行)都来自基本表,他一句是基本表存在而存在,一个视图可以对应一个基本表,也可以对应多个基本表,视图是基本表的抽象和在逻辑意义上建立的关系。
(1)创建数据表book;
book表(图书编号char(6),图书名称,出版社,作者)
要求使用:
主键(图书编号)、非空(图书名称),非空(作者)
createtablebook(
book_idchar(6)primarykey,/*primarykey就是主键的意思*/
book_namechar(10)notnull,/*notnull就是非空的意思*/
outputchar(20),
writerchar(10)notnull);
(2)创建数据表reader表;
学生信息表(reader编号char(8),姓名,性别,年龄,工作单位,身份证号,职称)
主键(reader编号)、默认(职称)、非空(工作单位,姓名)、唯一(身份证号)、检查(性别),检查(年龄)
createtablereader(
reader_idchar(8)primarykey,/*primarykey主键*/
reader_namechar(10)notnull,
sexchar
(2)check(sex='
男'
orsex='
女'
),/*check用于检查*/
ageintcheck(agebetween0and150),
companychar(20)notnull,
idcodechar(18)unique,/*唯一索引用于非主键*/
gradechar(4)default
(2))/*dedault为设默认值后面一定要加个值表限定*/
(3)创建借书表borrow;
borrow(读者编号,图书编号,借书日期)
外键(读者编号,图书编号)
createtableborrow(
reader_idchar(8),
/*foreignkey就是外键的表达,必须与references连用,foreignkey后接哪个要
当外键,然后references后加的是与哪个表当外键,其中这张表的外键必须为其他表的主键或者是唯一索引*/
book_idchar(6),
datedatetime,
foreignkey(reader_id)referencesreader(reader_id),
foreignkey(book_id)referencesbook(book_id),
);
(4)将下列课程信息添加到book表的代码
图书编号名称作者
100101数据库原理张三
100102数据结构李四
修改课号为100102的图书名称:
数据结构与算法
删除课号为100101的图书信息
insertintobookvalues(100101,'
数据库原理'
'
'
张三'
insertintobookvalues(100102,'
数据结构'
李四'
updatebooksetbook_name='
数据结构与算法'
wherebook_id=100102;
/*update语句是用来修改数据信息的,修改信息的时候要注意下字段的范围够不*/
deletefrombookwherebook_id=100101;
/*delete为删除命令,基本上是接from的然后加上where条件句*/
(5)创建视图读者借书信息的代码;
createview读者借书信息
as
selectreader.reader_id,reader.reader_name,book.book_id,book.book_name,borrow.date
fromreader,book,borrow
where
book.book_id=borrow.book_idand
reader.reader_id=borrow.reader_id;
/*视图的制作方法就是用createview视图名字,后面接asselect然后就是视图需要的信息,记住信息要
解释那张表的,所以前面最好跟上表名,然后用from语句说明是从那几张表里选来的,后面接着用where语句
来连接几张表的关系,从儿使几张表信息连接起来*/
(6)从读者表reader中查询姓李的女读者的情况:
姓名、性别、工作单位。
selectreader_name,sex,company
fromreader
wheresex='
andreader_namelike'
李%