1数据库原理与设计题库一、单项选择题1.下列哪些不是SQL中的数据类型。(D)A.floatB.moneyC.smallintD.smallfloat2.查询测验中分数不属于80-100之间的候选人,合适的查询语句是__A____A.SELECTvFirstName,vLastName,siTestScoreFROMExternalCandidateWHEREsiTestScoreNOTBETWEEN80AND100B.SELECTvFirstName,vLastName,siTestScoreFROMExternalCandidateAWHEREsiTestScoreBETWEEN80AND100C.SELECTvFirstName,vLastName,siTestScoreFROMExternalCandidateWHEREsiTestScoreNOTBETWEEN100AND80D.SELECTvFirstName,vLastName,siTestScoreFROMExternalCandidateWHEREsiTestScoreBETWEEN100AND803.下面数据类型中,在定义时需要给出数据长度的是(A)。A.textB.intC.charD.money4.下列函数中,返回值数据类型为int的是(B)。A.LEFTB.LENC.LTRIMD.SUNSTRING5.关于索引下面说法错误的是(B)。A.索引可以加快数据的检索速度,但是降低看了数据维护的速度B.非聚集索引应该在聚集索引被创建之前创建C.在默认的情况下,所创建的索引是非聚集索引D.建立主键约束时会自动建立唯一性索引6.下列哪个不是数据库对象(A)。A.数据模型B.视图C.表D.用户7.使用下列A__语句可以删除数据库。A.DROPDATABASEB.CREATETABLEC.ALTERDATABASED.DROPTABLE28.在“工资表”中的“基本工资”列用来存放员工的基本工资金额(没有小数),下面最节省空间的数据类型是(B)。A.tinyintB.smallintC.intD.decimal(3,0)9.关于视图下面说法错误的是(C)。A.视图不是真实存在的基础表而是一个虚拟的表B.视图对应的数据存储在视图所引用的表中C.视图只能由一个表导出D.视图也可以包含几个被定义的数据列和多个数据行10.执行以下创建视图的语句时出现错误,原因是(C)。Createviewv_gAsSelect商品名称,生产厂商fromgoodsorderby商品名称descA.视图数据只源于一个基表B.没有使用WITHCHECKOPTION选项C.创建视图时不能使用ORDERYBY子句D.在创建视图时如果包含了ORDERYBY子句,则要使用TOP语句才能生成视图11.以下关于外键和相应的主键之间的关系,正确的是(A)。A.外键不一定要与相应的主键同名B.外键一定要与相应的主键同名C.外键一定要与相应的主键同名而且唯一D.外键一定要与相应的主键同名,但是并不一定唯一12.下面语句中,_C____语句用来删除视图。A.CREATETABLEB.ALTEVIEWC.DROPVIEWD.CREATEVIEW13.在T-SQL中,条件“年龄BETWEEN15AND35”,表示年龄在15岁到35岁之间且(A)。A.包括15岁和35岁B.包括15岁但不包括35岁C.不包括15岁和35岁D.包括35岁但不包括15岁14.在模糊查询中,与关键字LIKE匹配的表示任意字符串的符号是(B)。A.?B.%C.[]D.*15.关于索引下面说法错误的是(B)。3A.索引可以加快数据的检索速度,但是降低看了数据维护的速度B.非聚集索引应该在聚集索引被创建之前创建C.在默认的情况下,所创建的索引是非聚集索引D.建立主键约束时会自动建立唯一性索引16.使用聚合函数把空值计算在内的是(A)。A.COUNT(*)B.SUMC.MAXD.AVG17.下面描述错误的事__B____.A.每个数据文件中都有且只有一个主数据文件B.日志文件可以存在于任意文件组中C.主数据文件默认为primary文件组D.文件组是为了更好地实现数据文件组织18.下面语句中,_C____语句用来删除视图。A.CREATETABLEB.ALTEVIEWC.DROPVIEWD.CREATEVIEW19.已经声明了一个字符型局部变量@n,在下列语句中,能对该变量正确赋值的是(B)。A.@n=’HELLO’B.SELECT@n=’HELLO’C.SET@n=HELLOD.SELECT@n=HELLO20.关于SQLServer2008数据库事务日志文件叙述错误的是___C___。A.一个数据库可以有多个事务日志文件B.创建数据库时,如果未指定事务日志文件,SQLServer则会自动创建一个C.事务日志文件的默认大小为5MBD.如果未指定事务日志文件的增长量,则文件大小也会不断变化。21.下列函数中,返回值数据类型为int的是(B)。A.LEFTB.LENC.LTRIMD.SUNSTRING22.语句printcast(123asnchar(5))+’456’的结果是(C)。A.’579’B.579C.’123456’D.’123456’23.表达式Datepart(yy,’2016-9-13’)+2的结果是(C)。A.’2016-9-15’B.2016C.’2018’D.’2016-11-13’424.对数据进行统计时,求最大的函数值是哪个(A)。A.max()B.min()C.lenth()D.count()25.下面标志符不合法的是(A)。A.[mydelete]B._mybaseC.$moneyD.triggerl26.下列哪个既不是SQL数据文件也不是日志文件的后缀(C)。A..mdfB..ldfC..tifD..ndf27.下面对union的描述正确的是_D__。A.任何查询语句都可以用union来连接B.union只连接结果集完全一样的查询语句C.union是筛选关键词,对结果集再进行操作D.union可以连接结果集中数据类型个数相同的多个结果集28.下列哪个既不是SQL数据文件也不是日志文件的后缀(C)。A..mdfB..ldfC..tifD..ndf29.关于DROPDATABASE语句叙述错误的是(C)A.一次可以删除一个或多个数据库B.在删除数据库时不会显示确认信息C.会删除数据库的磁盘文件D.如果数据库正在使用,删除数据库将导致应用程序出错30.下列关于执行SQLServer2008查询叙述正确的是(C)A.如果没有选中的命令,则只执行最前面的第一条命令B.如果有多条命令选择,则只执行选中命令的第一条命令C.如果查询中有多条命令有输出,则按顺序显示所有结果D.都正确31.在模糊查询中,与关键字LIKE匹配的表示任意字符串的符号是(B)。A.?B.%C.[]D.*32.执行下面语句的结果是__A____。PRINTUPPER(LTRIM(RTRIM('Hello,world')))A.'HELLO,WORLD'B.'Hello,world'C.'Hello,world'D.'HELLO,WORLD'33.语句PRINTDATEDIFF(mm,'2016-10-26','2016-10-8')的执行结果是_A__。A.0B.-1C.1D.234.在WHILE循环语句中,如果循环体语句条数多于一条,必须使用__A____.A.BEGIN……END5B.CASE……ENDC.IF……THEND.GOTO35.对数据进行统计时,求最大的函数值是哪个(A)。A.max()B.min()C.lenth()D.count()36.关系运算不包括___D_____A.连接B.投影C.选择D.查询二.填空题1.根据索引的属性列是否有重复值,可以把索引分为唯一索引和重复索引。2.函数ROUND(558.3049,2)的返回值是558.303.SELECT查询语句中两个必不可少的子句是FROM子句和WHERE子句。4.SQLServer2008中的变量分为全局变量和局部变量两种。其中全局变量的名称以@@字符开始,由系统定义和维护;局部变量的名称是以@字符开始,由用户自己定义和赋值。5.在Transact-SQL语句中,使用ALTERVIEW命令可以修改视图。6.在SELECT语句中用distinct关键字消除重复行。7.SQLSever2008使用的运算符共有7类:算术运算符、逻辑运算符、关系运算符字符串串联运算符、按位运算符、赋值运算符和一元运算符。8.声明游标的命令是declarecursor,释放游标的命令是deallocate9.创建视图的命令是CreateView,修改视图的命令是Alterview10.从存储结构上来看,数据库文件主要由主数据文件和日志文件组成,相应的文件扩展名是.mdf、.ldf11.用于删除表数据的命令是delete12.计算字段的累加和的函数是sum,统计项目数的函数是count13.在Transact-SQL语句中,使用Alterview命令可以修改视图。14.表达式是标识符,常量,变量,函数运算符和操作数的组合。15.给局部变量赋值可以使用set语句或者select语句赋值。16.建立表所使用的命令是CREATETABLE。三、简答题(每题5分,共20分)1.视图和表有什么区别?简述视图的优点。1.视图是虚拟表,其结构和数据是建立在对表的查询基础上,是基表的数据的映射。而表的结构和数据在数据库中是真实存在,能够进行增删改查等操作。(2分)视图的优点:(1)视点集中。使用户只关心感兴趣的某些特定数据和他们所负责的特定任务,那些不需要或无用的数据则不必在视图中显示。6(2)简化操作。视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新编写这些复杂的查询语句,只要一条简单的查询视图语句即可。(3)定制数据。视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这就显得极为重要。(4)合并分割数据。可以重新保持表原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。(5)安全性。视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据,其他数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,其必须被授予访问权限。视图所引用表的访问权限与视图权限的设置互不影响。(3分)1.简述在数据库中创建索引的必要性。1、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性2、可以大大加快数据的检索速度,这也是创建索引的最主要的原因3、可以加速表的和表之间的链接,特别是在实现数据的参考完整性方面特别有意义4、在使用分组和排序子句进行数据检索时,同时可以显著减少查询中分组和排序的时间通过使用检索,可以在查询的过程中,使用优化隐藏器,提高系统的性能。2.存储过程与存储在客户计算机的本地T-SQL语句相比,它具有什么优点?(1)执行速度快,改善系统性能。(2)减少网络流量。(3)增强代码的重用性和共享性。(4)提供了安全机制。3.什么是存储过程?有什么优点?存储过程是一种数据对象,是存放在数据库服务器上的T—SQl的控制语句构成的语句集合。存储过程具有输入参数和输出参数,通过这些参数返回结果集。通过使用存储过程,一些负责的操作可以封装为独立的程序模块,并且具有“一次编译,多次执行”优点。3.已知两个日期为2016-10-29和2016-11-01,要求编程生成两个日期之间的所有日期,生成结果如下:2016-10-292016-10-302016-10-312016-11-01declare@time1datetime,@time2datetime,@time3datetimeset@time1='2010/10/29'set@time2='2010