当前位置:文档之家› SQL考试试题

SQL考试试题

SQL考试试题一.选择题(每题2分,共30分)1.( A )是位于用户和操作系统之间的一层数据管理软件。

数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA2. 如果希望完全安装SQL Server,则应选择( C )。

A. 典型安装B. 最小安装C. 自定义安装D. 仅连接3.下列哪一个数据库不是SQL Server 2000的系统数据库( C )A.master数据库B.msdb数据库C.pubs数据库D.model数据库4.Microsoft公司的SQL Server数据库管理系统一般只能运行于( A )。

A.Windows平台B.UNLX平台C.LINX平台 D. NetWare平台5、下列哪个约束不可以为空?( A )A. 主键B. 外键C. 默认键D. UNIQUE约束6、下列的SQL语句中,(D)不是数据定义语句。

A. CREATE TABLEB. DROP VIEWC. CREATE VIEWD. GRANT7、下列哪种数据类型上不能建立IDENTITY列?( C )A:int B:tinyint C:float D:smallint8、SQL语言中,删除一个视图的命令是(B)。

A.DELETEB.DROPC.CLEARD.REMOVE/bc3ef99ce850df65d47efefa958cb4911ffdf356a.html9、通过使用文件组,可以( D )。

A、提高存取数据的效率。

B、提高数据库备份与恢复的效率C、简化数据库的维护D、ABC都可以。

10、在SQL Server服务器上,存储过程是一组预先定义并( B )的T-SQL语句。

A、保存B、编译C、解释D、编写11、数据库的容量,( D )。

A、只能指定固定的大小。

B、最小为10MC、最大100M。

D、可以设置为自动增长12、Transact-SQL支持的程序结构语句中的一种为( A )。

A. Begin…EndB. If … Then … ELSEC. Do CaseD. Do While13、表在数据库中是一个非常重要的数据对象,它是用来( C )各种数据内容的。

A、显示B、查询C、存放D、检索14、下列哪个关键字在语句中表示所有的列?( A )A:* B:ALL C:DESC D:DISTINCT15. 在通常情况下,下列哪个对象不是数据库对象?( D )A: View B: Table C: Rule D:Word二、填空题:(每空1分,共16分)1、创建好的规则必须绑定到列或用户自定义的数据类型上才能起作用.2、用触发器向表中添加记录后,添加的记录临时存储在i nserted 表中。

3、sql server数据库使用的操作系统文件为_ _主数据文件_ _和_ 次数据文件__,_日志文件__三大类。

4、SQ/bc3ef99ce850df65d47efefa958cb4911ffdf356a.htmlL Server中索引类型包括的类型分别是聚集索引, 非聚集索引和唯一索引。

5、触发触发器的三个操作是insert , update, delete 。

6、要访问SQL Server数据库,都必须经过安全检查。

SQL Server使用两层安全机制确认用户的有效性,windows身份验证和SQL server 身份验证两个阶段。

7、数据完整性可分为实体完整性、值域完整性、引用完整性和用户自定义完整性。

三、判断题(每题2分,共20分)1、( ∨)在CREATE INDEX语句中,使用CLUSTERED来建立聚集索引。

2、(∨)如果使用别名来代表一个表,那么在定义别名后的所有查询语句中,都必须使用别名来代表表的全名,否则系统会出错.3、( ∨)在SQL SERVER中替代触发器的执行是在数据的插入、更新或删除之前执行的。

4、(×)当用户删除一个表(DROP TABLE)后,建立在该表上的视图不存在了。

5、(×)恢复数据库,可以在查询分析器中使用这样的命令:BACKUP DATABASE database_name FROM backup_device6、(∨)可以在企业管理器中修改数据库的名称。

7、(∨)通配符“_”表示某单个字符。

8、(×)SQL sever 在进行数据操作时,总是先写数据库,然后记录日志。

实际为:应该是先写入日志文件,再写入数据库.9、(×)默认值绑定到列上后,该列上的数据将固定不变。

10 (∨)一个表上只能建立一个聚集索引。

四.操作题(共34分)1、用查询分析器创建一个学生数据库(student),将数据文件和日志文件都存放在D盘根目录下。

其中数据文件和日志文件初始大小都为8MB,最大容量不受限制,自动增长率都为20%。

(5分)create/bc3ef99ce850df65d47efefa958cb4911ffdf356a.html database studenton(name=xs_dat,filename='d:_dat.mdf',size=8,maxsize=unlimited,filegrowth=20%)log on(name=xs_log,filename='d:_log.ldf',size=8,maxsize=unlimited,filegrowth=20%)已知有三个表格:STUDENT (学号,姓名,性别,年龄,班号)CLASS (班号,专业名,系号,入学年份)DEPARTMENT (系号,系名)试用SQL 语言完成以下功能:2、向STUDENT表中插入如下数据(8102 ,钱四,女,16,138 )(3分)insert into studentvalues(8102,'钱四','女',16,138)3、在表Student中有这样一个元组(‘001’,’刘晨’,19,‘女’,’16’),现在想把其学号为‘001’修改为‘070101’。

(3分)update studentset学号=070101where学号=0014、完成以下查询功能( 1 )找出所有姓李的学生姓名、性别、年龄、班号,并按其年龄由大到小排序。

(4分)select姓名,性别,年龄,班号from studentwhere姓名like'李%'order by年龄 desc( 2 )列出大于男生平均年龄的女生的学号,姓名,年龄,专业名,系名(4分)select学号,姓名,年龄,专业名,系名from student,class,department/bc3ef99ce850df65d47efefa958cb4911ffdf356a.htmlwhere性别='女'and年龄>(select avg(年龄)from studentwhere性别='男')and student.班号=class.班号and class.系号=department.系号( 3 )列出年龄在19~20之间的学生的姓名、系名、年龄、入学年份。

(5分)select姓名,系名,年龄,入学年份from student,class,departmentwhere年龄between 19 and 20and student.班号=class.班号and class.系号=department.系号5、创建一个视图V_STUDENT,包含学生的姓名,性别,系名和班号。

(5分)create view V_xsasselect姓名,性别,系名,class.班号from student,class,departmentwhere student.班号=class.班号and class.系号=department.系号6、创建触发器,在系表DEPARTMENT的系号修改时,班级表CLASS中的系号也同时修改。

(5分)create trigger tr1on departmentafter updateasbegindeclare @a int,@b intset @a=(select系号from inserted)set @b=(select系号from deleted)if update(系号)update classset class.系号=@a:///bc3ef99ce850df65d47efefa958cb4911ffdf356a.htmlrwhere class.系号=@bend7 创建存储过程,输入班号,显示此班级的系名、专业名、入学年份和班级人数create proc pr_0001@a intasbeginselect department.系名,class.专业名,class.入学年份,count(学号)班级人数from student join classonstudent.班号=class.班号join department on class.系号=department.系号where class.班号=@agroup by department.系名,class.专业名,class.入学年份endpr_0001 1102。

相关主题