SQL.docx

上传人:b****4 文档编号:11535406 上传时间:2023-03-19 格式:DOCX 页数:37 大小:34.09KB
下载 相关 举报
SQL.docx_第1页
第1页 / 共37页
SQL.docx_第2页
第2页 / 共37页
SQL.docx_第3页
第3页 / 共37页
SQL.docx_第4页
第4页 / 共37页
SQL.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

SQL.docx

《SQL.docx》由会员分享,可在线阅读,更多相关《SQL.docx(37页珍藏版)》请在冰豆网上搜索。

SQL.docx

SQL

1.IBM公司圣何赛研究实验室的一位研究人员Codd,在1970年6月发表的一篇论文中提出了一个模型,它允许设计者把他们的数据库分解成几个独立但是相关的表,这对提高数据库的性能很有意义,同时也向最终用户保留原来数据库的外观。

从此,Codd就被公认为()数据库之父。

(选择一项)

a)网状模型

b)层次模型

c)关系模型

d)平面模型

2.下面对于域完整性理解正确的是()。

(选择两项)

a)域的完整性和实体完整性都强调了数据的唯一性

b)可以指定列值的有效数据

c)列的数据类型增强了域的完整性

d)存储过程可用来定义域的完整性

3.在一个表中,通常使用()约束来保证列中的值都是唯一的,用来唯一的表示每行。

(选择一项)

a)主键

b)约束

c)索引

d)关系

4.下面关于唯一约束描述不正确的是()(选择一项)

a)唯一约束是数据完整性的实现方法之一

b)唯一约束使用关键字UNIQUE

c)唯一约束是指某列的值中不能出现NULL

d)唯一约束是指某列的值不能有任意两个重复

5.假设两张表建立了“主键—外键”的引用关系,则主表(主键)中对应(外键)的数据()。

(选择一项)

a)必须在子表中有对应

b)可以比主表的数据多

c)主表的数据行可以比子表的数据行少

d)必须为数字数据类型

6.在SQLServer中,以下都属于二进制数据类型,除了()。

(选择一项)

a)Binary

b)Image

c)Bit

d)VarBinary

7.关于IDENTITY属性,下列说法错误的是()。

(选择一项)

a)一个表只能有一个列具有IDENTITY属性

b)你不能对定义了IDENTITY属性的列加上defalue属性

c)附加了IDENTITY属性的列不可以是任意数据类型

d)你不能更新一个定义了IDENTITY属性的列

8.10.某数据库表里的studentID列被定义为studentIDintidentity(50,2),首先你添加了3条记录,然后你把第二条记录删除掉,此时,若增加另外一条记录,studentID的值将是()。

(选择一项)

a)52

b)54

c)56

d)58

9.在SQLServer2000中,附加数据库操作是指()(选择一项)

a)把SQLServer数据库文件保存为其他数据库文件

b)根据数据库物理文件的信息,把数据库在SQLServer2000中恢复

c)把所有该数据库表的数据清空

d)把数据库删除

10.下面关于引用完整性约束的说法正确的是()。

(选择二项)

a)违反引用完整性约束时,不能对引用表进行插入操作

b)当建立引用表时被引用的表必须已经存在

c)当建立引用表时被引用的列不用已经存在

d)被引用的列不必是主键或者唯一约束

11.有一张销售表(orders),包含销售员编号(salepersonID)、地区编号(regionID)、销售额(orderamount)三列,其中销售员编号为主键,现希望统计各地区销售总额以及所有销售之和,下面()语句可以实现这一愿望。

(选择一项)

a)SELECTsalepersonID,regionID,SUM(orderamount)Fromorders

b)SELECTsalepersonID,regionID,SUM(orderamount)FromordersGROUPBYregionID

c)SELECTsalepersonID,regionID,orderamountFromorders

d)SELECT*FROMorders

12.假设“产品”表中有“产品ID”,“产品名称”,“价格”此三个字段,要在此表里添加一条新记录,下列SQL语句能实现添加功能的是()。

(选择一项)

a)UPDATEINSERT产品VALUES('01008','花生','20');

b)INSERT产品VALUES(01008,花生,20);

c)INSERTINTO产品VALUES('01008','花生','20');

d)INSERT*FROM产品VALUES('01008','花生','20');

13.行有多个相等的名称,行又称为()。

(选择两项)

a)实体

b)元组

c)属性

d)关系

14.在查询分析器中你运行下面的语句,得到的结果是()。

(选择一项)

CREATETABLEnumbers(

N1INT,

N2NUMERIC(5,0),

N3NUMERIC(4,2))

GO

INSERTnumbers(1.5,1.5,1.5)

SELECT*FORMnumbers

a)返回2,2和1.50的结果集合

b)返回1.5,1.5,和1.5的结果集合

c)CREATETABLE命令不会执行,因为你无法为列N2设置精度为0

d)返回1,2,和1.50的结果集合

15.在表student中,包含主键列StuID,则执行"UpdatestudentsetStuID=80",执行的结果可能是()。

(选择一项)

a)更新了多行数据

b)没有数据更新

c)删除了一行不符合要求的数据

d)T_SQL语法错误,不能执行

16.查找authors表中的所有电话号码的首位为4,第二位为0或1的电话号码()。

(选择一项)

a)SELECTphoneFROMauthorsWHEREphoneLIKE'4[1,0]%'

b)SELECTphoneFROMauthorsWHEREphonein'4[^10]%'

c)SELECTphoneFROMauthorsWHEREphoneLIKE'4_[1,0]%'

d)SELECTphoneFROMauthorsWHEREphonebetween'41%'and'40%'

17.用于删除表中所有数据行的命令是()。

(选择一项)

a)DELETETABLE表名

b)TRUNCATETABLE表名

c)DROPTABLE表名

d)ALTERTABLE表名

18.下列函数能用于日期/时间类型的是()。

(选择一项)

a)MAX

b)SUM

c)COUNT

d)AVG

19.关于数据库设计三范式,下列说法正确的是()。

(选择一项)

a)建立数据库不一定要遵循三范式,但至少要达到一范式

b)三范式的作用对象不是表,而是某个数据库

c)要想数据库的性能好,就必须严格遵守三范式

d)三范式和数据完整性有时是矛盾的

20.一名学生可以选修多个科目,一个科目可以被多名学生选修,这种关系是()。

(选择一项)

a)一对一

b)一对多

c)多对一

d)多对多

21.关于SQL的变量,下列说法正确的是()。

(选择一项)

a)定义局部变量的语法为:

declare数据类型@标识符

b)给局部变量赋值可以用set,得到其值可以用get

c)@@error是一个系统变量,他记录执行最近一次SQL语句的错误号码,如果没错则为-1

d)SQL可以自定义两个@开头的变量

22.T-SQL给变量赋值的方式有()。

(选择两项)

a)SELECT@局部变量=变量值

b)PRINT@局部变量

c)SET@局部变量=变量值

d)SET@局部变量变量值

23.T-SQL批处理语句块的结束标志为()。

(选择一项)

a)GO

b)SUBMIT

c)END

d)RETURN

24.下列语句中书写正确的是()。

(选择一项)

a)select*fromstudentwherejiguanexists('湖北','上海','江苏')

b)select*fromstudentwherenamein'邓巧'or'姚明'or'杜祥'

c)select*fromstudentwheresex='女'andage>any(selectagefromstudentwherenamein('高强','草蜢','东方'+'神起'))

d)select*fromstudentwheresex='男'andage>all(17,18,19)

25.关于子查询下列说法中正确的是()(选择一项)

a)子查询中的条件可以有变量

b)子查询可以放在父查询的where后,from和where中间,但无法放在select和from中间

c)如果子查询放在父查询中对父查询的语法结构不产生影响,那么子查询可以省略外面的小括号

d)子查询可以嵌套,但最多不能超过3层

26.在SQLServer数据库中,你想得到在products表中最贵的产品名称和价格应该使用的正确查询是()。

(选择一项)

a)SELECTProductname,MAX(Price)FROMProducts

b)SELECTTOP1Productname,PriceFROMProductsORDERBYPriceDESC

c)SELECTProductname,MAX(Price)FROMProductsGROUPBYProductname

d)SELECTTOP1ProductnamePriceFROMProductsORDERBYPrice

27.当你执行下面的SQL语句时,会发生()。

(选择一项)

SELECTau_id,title_id,sum(royaltyper)FROMtitleauthorGROUPBY,title_id,au_idORDERBY,title_id,au_id

a)在结果集中,对每一个不同的au_id的值和title_id的值的组合都会有一行

b)该语句会失败

c)在结果集中,每一行中au_id的值都不会相同

d)在结果集中,每一行中title_id的值都不会相同

28.现有student表中存储的clsid是班级编号,要想在显示学生信息时将班级编号换成班级名称,可以实现的语句有()。

(选择两项)

a)selectdistincts.id学号,s.name姓名,c.name班级名称fromstudents,classc

b)selects.id学号,s.name姓名fromstudentsrightjoinc.name班级名称fromclasscons.clsid=c.id

c)selects.id学号,s.name姓名,c.name班级名称fromstudentsleftouterjoinclasscons.clsid=c.id

d)selects.id学号,s.name姓名,c.name班级名称fromstudents,classcwheres.clsid=c.id

29.在数据表中,创建索引可以得到以下的好处,除了()。

(选择一项)

a)提高数据检索的速度

b)加快排序的速度

c)使数据更新、数据删除操作变快

d)通过浏览索引文件来定位纪录比通过浏览实际表的纪录显得更简单、更快捷

30.在employee表的firstname字段上建立的非聚集索引的物理效果是()。

(选择一项)

a)所有的行按照firstname字段值升序排列并物理地存储在数据页中

b)在行存储上是没有影响的

c)所有的行按照firstname字段值降序排列并物理地存储在数据页中

d)所有的行被物理地存储在数据页上,并且根据firstname字段值按照索引建立时指定的顺序排列

31.在SQLSever2005中,以下关于视图数据的操作,正确的描述是()。

(选择一项)

a)视图数据只能用来查询和浏览,不能进行修改、插入和删除

b)可以修改和删除视图的数据,但是这些数据不更新到数据库表中

c)可以在查询分析器中使用INSERT/UPDATE/DELETE等SQL语句对视图进行操作

d)由于视图是数据库基表数据的复制,因此删除视图中的数据行,不会影响到基表的数据

32.现有创建视图语句

createviewview_stuinfo(姓名,学号,成绩)

as

selectstuname,stuinfo.stuid,score

fromstuinfoleftjoinstumarks

onstuinfo.stuid=stumarks.stuid

go

下列评述正确的是()

a)成功创建了一个名为view_stuinfo的视图

b)语法错误:

第一行的列名不能这样指定

c)语法错误:

as应改为begin

d)语法错误:

视图中不能出现左连接关键字leftjoin

33.关于结构控制,下列说法错误的是()

a)if判断后面的语句,如果只有1句可以不要begin和end

b)while括号中的判断,可以只写一个数字,0代表假,非0代表真

c)case块后面必须带when和end,但可以没有else

d)下列SQL语句中没有任何语法错误

DECLARE@COUNTINT

WHILE(1=1)

SET@COUNT=1;

BEGIN

IF@COUNT<5PRINT@COUNT-1

END

34.在SQL Sever中,执行存储过程MY_PROC的正确的T_SQL为()。

(选择一项)

a)RUNMY_PROC

b)EXECUTEMY_PROC

c)STARTMY_PROC

d)SHELLMY_PROC

35.创建一个数据库可以包含多种文件,除了以下()。

(选择一项)

a)主要数据文件

b)次要数据文件

c)表文件

d)日志文件

36.对于下面的存储过程:

CREATEPROCEDUREMyp1@pIntAs

SelectStudentname,AgefromStudentswhereAge=@p

假如你要在Students表中查找年龄是18岁的学生,()可以正确的调用这个存储过。

(选择一项)

a)EXECMyp1@p=’18’

b)EXECMyp1@p=18

c)EXECMyp1p=’18’

d)EXECMyp1p=18

37.用sp_recompile系统存储过程可以强制存储过程在下一次启动时进行重新编译,其语法为:

sp_recompile[@objectname=]'object',其中的object可以是以下的某个对象名称,除了()。

(选择一项)

a)存储过程名称

b)触发器名称

c)约束对象名称

d)视图名称

38.下面()不是数据库规范化要达到的效果。

(选择一项)

a)改善数据库的设计

b)实现最小的数据冗余

c)可以用一个表来存储所有数据,使设计及存贮更加简化

d)防止更新、插入及删除的时候,产生数据丢失

39.在SQLServer2005中,以下都是触发器的特性,除了()。

(选择一项)

a)强化约束

b)可级联运行

c)跟踪变化

d)查询优化

40.在SQLServer2005中,为数据库表建立索引能够()。

a)防止非法的删除操作

b)防止非法的插入操作

c)提高查询性能

d)节约数据库的磁盘空间

41.在SQLServer2005中,假设orders表中存在自动编号字段oid等于1的记录,执行下面T-SQL,以下说法正确的是()。

(选择一项)

BEGINTRANSACTION

DeletefromOrderswhereoid=1

IF(@@Error<>0)

ROLLBACKTRANSACTION

Else

COMMITTRANSACTION

a)执行成功,oid为1的记录被永久删除

b)执行成功,order表没有任何变化

c)执行时出现错误

d)执行成功,但事务处理并没有结束

42.事务具有三种模式,除了()。

(选择一项)

a)显式事务

b)隐式事务

c)自动提交事务

d)系统事务

43.关于自定义存储过程,下列说法错误的是()。

(选择一项)

a)无论是定义还是调用,每个存储过程的输出参数都必须加上output关键字

b)存储过程中可以定义变量,还可以定义事务

c)raiserror用来在自定义存储过程中自定义并抛出异常

d)存储过程可以有输入参数,也可以有输出参数,但是不允许同时有

44.关于存储过程,下列说法错误的是()。

(选择一项)

a)存储过程中可以包含逻辑控制语句和数据操纵语句

b)系统存储过程主要存储在master数据库中

c)系统存储过程以@@sp_为前缀

d)自定义存储过程存储在sysobjects表中

45.关于自定义存储过程

createprocedureproc_stu

@numintinput

as

createtabletab

numint

go

下列说法正确的是()

a)没什么问题,其中第2行的input可以要也可以不要

b)不行,存储过程中必须包含至少1个查询语句,另外第1行的procedure可以简写成proc

c)语法错误,应该将第2行的input改为output,或者干脆去掉就好了

d)无法正确执行,存储过程中不能包含表定义

46.考虑下面的存储过程

createprocedureLookup@aint

as

if@aisnull

begin

print‘你好2008’

return

end

下列说法错误的是()

a)不带参数去执行,服务器会打印一条消息,提示该存储过程需要提供一个参数

b)不带参数去执行,会直接打印你好2008

c)带一个参数null,会打印你好2008

d)Return在这里表示直接退出整个存储过程的执行,相当于C#函数中的return

47.关于触发器,下列说法错误的是()。

(选择一项)

a)触发器是被动调用的,不是主动调用的,也不能够主动调用

b)SQL2005的触发器分为insert触发器、delete触发器、update触发器三种

c)触发器可以用来实现多表间的高级检查约束

d)触发器是事务,因此可以和批处理一样进行回滚操作,且该回滚包括触发器定义以外的insert、delete或update操作

48.关于触发器定义

createtriggertgr_changeClass--调换班级触发器

onstudent

forupdate

as

declare@oldClsIdint--旧班级号

declare@newClsIdint--新班级号

declare@newClsAmountint--新班级人数

set@oldClsId=(selectclsidfromdeleted)

set@newClsId=(selectclsIdfrominserted)

set@newClsAmount=(selectstuAmountfromclasswhereid=@newClsId)

if@newClsAmount>=50

begin

print'新班人数已满,请调整更新数据'

rollbacktransaction

return

end

updateclasssetstuAmount=stuAmount-1whereid=@oldClsId

updateclasssetstuAmount=stuAmount+1whereid=@newClsId

print'调换班级成功'

go

下列说法正确的是()

a)该定义无任何错误

b)触发器定义的语法是先for后on,而这个定义恰恰写反了

c)倒数3、4行的更新语句执行后,inserted表和deleted表中的数据就清空了

d)if结构中的return可以省略,因为前面已经回滚了

49.关于SQL2005的安全,以下说法正确的是()。

(选择一项)

a)安全层次由外到内依次为:

操作系统账户->服务器账户->数据库账户->表账户

b)如果设定登陆服务器的方式为windows账户登陆,那么所有可以登陆windows的账户就可以直接登陆sql服务器了

c)sql服务器可以远程登录,但是不能是windows账户而必须是准sql账户类型

d)要想用windows账户登陆sql服务器,必须映射一个对应的sql账户

50.关于数据库账户与架构,以下说法错误的是()。

(选择一项)

a)数据库架构是MS-SQLServer2005的新内容

b)一个数据库账户不一定要拥有某个数据库的登陆权,他可能拥有多个,也可能实际上一个也没有

c)一个数据库不见得一定要属于某个数据库账户支配,可以有多个数据库账户登陆它,也可能一个也没有

d)架构实现了数据库用户与数据库的合理分离

Question1:

CanyouuseabatchSQLorstoreproceduretocalculatingtheNumberofDaysinaMonth

Answer1:

找出当月的天数

selectdatepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate())asvarchar)+'-'+cast(month(getdate())asvarchar)+'-01'asdatetime))))

Question2:

CanyouuseaSQLstatementtocalculatingit!

HowcanIprint"10to20"forbooksthatsellforbetween$10and$20,"unknown"forbookswhosepriceisnull,and"other"forallotherprices?

Answer2:

selectbookid,bookname,price=casewhenpriceisnullthen'unknown'

whenpricebetween10and20then'10to20'elsepriceend

frombooks

Question3:

CanyouuseaSQLstatementtofinding

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

当前位置:首页 > 经管营销 > 经济市场

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

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