《SQL数据库管理与开发教程与实训》试题(A卷)杜兆将老师一、单项选择题(每小题1分,共10分)1.下列四项中,不属于数据库特点的是()。A.数据共享B.数据完整性C.数据冗余很高D.数据独立性高2.下列四项中,不属于SQL2000实用程序的是()。A.企业管理器B.查询分析器C.服务管理器D.媒体播放器3.SQLServer安装程序创建4个系统数据库,下列哪个不是()系统数据库。A.masterB.modelC.pubD.msdb4.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。A.DBMSB.DBC.DBSD.DBA5.在SQL中,建立表用的命令是()。A.CREATESCHEMAB.CREATETABLEC.CREATEVIEWD.CREATEINDEX6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且()。A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁7.下列四项中,不正确的提法是()。A.SQL语言是关系数据库的国际标准语言B.SQL语言具有数据定义、查询、操纵和控制功能C.SQL语言可以自动实现关系数据库的规范化D.SQL语言称为结构查询语言8.在MSSQLServer中,用来显示数据库信息的系统存储过程是()。A.sp_dbhelpB.sp_dbC.sp_helpD.sp_helpdb9.SQL语言中,删除表中数据的命令是()。A.DELETEB.DROPC.CLEARD.REMOVE10.SQL的视图是从()中导出的。A.基本表B.视图C.基本表或视图D.数据库二、判断题(每空1分,共10分)1.'在那遥远的地方'是SQL中的字符串常量吗?T2.'11.9'是SQL中的实型常量吗F3.select16%4,的执行结果是:4吗?F4.2005.11.09是SQL中的日期型常量吗?F5.¥2005.89是SQL中的货币型常量吗?F6.select25/2的执行结果是:12.5吗?F7.'岳飞''文天祥'比较运算的结果为真吗?T8.一个表可以创建多个主键吗?F9.创建唯一性索引的列可以有一些重复的值?F10.固定数据库角色:db_datarader的成员能修改本数据库内表中的数据吗?F三、填空题(每空1分,共20分)1.数据库系统具有数据的外模式、模式和内模式三级模式结构。2.SQLServer2000局部变量名字必须以@开头,而全局变量名字必须以@@开头。3.语句selectascii('D'),char(67)的执行结果是:____68_____和____C_____。4.语句selectlower('Beautiful'),rtrim('我心中的太阳')的执行结果是:beautiful和我心中的太阳。5.选择运算是根据某些条件对关系做水平分割;投影是根据某些条件对关系做垂直分割。6.关系运算主要有选择、投影和连接。7.完整性约束包括实体、完整性、域完整性、参照完整性和用户定义完整性。8.在SQLServer2000中,数据库对象包括表、视图、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。9.语句selectday('2004-4-6'),len('我们快放假了.')的执行结果是:6、7。10.语句selectround(13.4321,2),round(13.4567,3)的执行结果是:13.4300和13.4570四、简答题(每小题5分,共10分)1.在SQLServer2000中,使用视图的好处是什么?(1)为用户集中需要的数据,简化了数据的用户操作;(2)对用户隐藏了数据库设计的复杂性;(3)简化用户权限的管理2.在SQLServer2000中,用户访问表/视图、列的权限是什么?(1)数据表/视图(selectinsertupdatedelete)(2)列(字段)的访问(selectupdate)五、设计题(共50分)现有关系数据库如下:数据库名:我班同学数据库同学表(学号char(6),姓名,性别,年龄,民族,身份证号,宿舍号)宿舍表(宿舍号char(6),宿舍电话)用SQL语言实现下列功能的sql语句代码:1.创建数据库[我班同学数据库]代码(2分)。createdatabase[我班同学数据库]gouse[我班同学数据库]go2.创建数据表[宿舍表]代码(3分);宿舍表(宿舍号char(6),宿舍电话)要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码createtable宿舍表([宿舍号]char(6)primarykey,[宿舍电话]char(7)check([宿舍电话]like'633[0-9][0-9][0-9][0-9]'))3.创建数据表[同学表]代码(6分);同学表(学号char(6),姓名,性别,年龄,民族,身份证号,宿舍号)要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)createtable同学表(学号char(6)primarykey,姓名nchar(4)notnull,性别nchar(1)check(性别in('男','女')),年龄int,民族nchar(8)default'汉族'notnull,身份证号char(18)unique,宿舍号char(6)references宿舍表(宿舍号))4.将下列宿舍信息添加到宿舍表的代码(8分)宿舍号宿舍电话10163311571026331777修改宿舍号为101的宿舍电话:6331158删除宿舍号为102的宿舍信息insert宿舍表values('101','6331157')insert宿舍表values('102','6331777')update宿舍表set宿舍电话='6331158'where宿舍号='101'delete宿舍表where宿舍号='102'5.创建视图[同学表视图]代码(5分);同学表视图(学号,姓名,性别,年龄,民族,身份证号,宿舍号,宿舍电话)createview[同学表视图]asselect学号,姓名,性别,年龄,民族,身份证号,同学表.宿舍号,宿舍电话from同学表,宿舍表where同学表.宿舍号=宿舍表.宿舍号6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(4分)select姓名,性别,宿舍电话from同学表视图where姓名like'张%'and性别='女'7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。(5分)select最大年龄=max(年龄),最小年龄=min(年龄),平均年龄=avg(年龄)from同学表where性别='女8.创建带参数的存储过程[某宿舍同学]:姓名,性别,宿舍电话执行此过程,查询'101'宿舍情况(8分)createprocedure[某宿舍同学]@宿舍号varchar(6)asselect姓名,性别,宿舍电话from同学表视图where宿舍号=@宿舍号goexecute[某宿舍同学]'101'9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(9分)execsp_addlogin'U班主任','888','我班同学数据库'execsp_grantdbaccess'U班主任','U读者'execsp_addrolemember'db_datareader','U读者'一、12345678910CDCABACDAC二、12345678910YNNNNNYNNN三、no答案分1.外模式、模式22.@、@@23.68、C24.beautiful、我心中的太阳25.水平、垂直26.选择、投影27.实体、域28.表、视图29.6、721013.4300、13.45702四、no答案要点分1.(1)为用户集中需要的数据,简化了数据的用户操作;(2)对用户隐藏了数据库设计的复杂性;(3)简化用户权限的管理(4)组织数据导出到其它应用程序;52.1.数据表/视图(selectinsertupdatedelete)2.列(字段)的访问(selectupdate)5五、no参考答案分1.createdatabase[我班同学数据库]gouse[我班同学数据库]go22.createtable宿舍表([宿舍号]char(6)primarykey,[宿舍电话]char(7)check([宿舍电话]like'633[0-9][0-9][0-9][0-9]'))33.createtable同学表(学号char(6)primarykey,姓名nchar(4)notnull,性别nchar(1)check(性别in('男','女')),年龄int,民族nchar(8)default'汉族'notnull,身份证号char(18)unique,宿舍号char(6)references宿舍表(宿舍号))64.insert宿舍表values('101','6331157')insert宿舍表values('102','6331777')update宿舍表set宿舍电话='6331158'where宿舍号='101'delete宿舍表where宿舍号='102'85.createview[同学表视图]asselect学号,姓名,性别,年龄,民族,身份证号,同学表.宿舍号,宿舍电话from同学表,宿舍表where同学表.宿舍号=宿舍表.宿舍号56.select姓名,性别,宿舍电话from同学表视图4where姓名like'张%'and性别='女'7.select最大年龄=max(年龄),最小年龄=min(年龄),平均年龄=avg(年龄)from同学表where性别='女'58.createprocedure[某宿舍同学]@宿舍号varchar(6)asselect姓名,性别,宿舍电话from同学表视图where宿舍号=@宿舍号goexecute[某宿舍同学]'101'89.execsp_addlogin'U班主任','888','我班同学数据库'execsp_grantdbaccess'U班主任','U读者'execsp_addrolemember'db_datareader','U读者'9《SQL数据库管理与开发教程与实训》试题(B卷)马建鹏老师一、单项选择题(每小题1分,共10分)1.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。A.DBMSB.DBC.DBSD.DBA2.下列四项中,不属于SQL2000实用程序的是()。A.企业管理器B.查询分析器C.服务管理器D.媒体播放器3.SQLServer安装程序创建4个系统数据库,下列哪个不是()系统数据库。A.masterB.modelC.pubD.msdb4.下列哪个不是sql数据库文件的后缀。A..mdfB..ldfC..tifD..ndf5.数据定义语言的缩写词为()。A.DDLB.DCLC.DMLD.DBL6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且()。A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁7.SQL的视图是从()中导出的。A.基本表B.视图C.基本表或视图D.数据库8.在SQL语言中,建立存储过程的命令是()A、CREATEPROCEDUREB、CREATERULEC、CREATEDURED、CREATEFILE9.SQL语言中,删除表中数据的命令是()。A.DELETEB.DROPC.CLEARD.REMOVE10.在MSSQLServer中,用来显示数据库信