一、选择题
1.下列四项中,不属于数据库特点的是( C )。
A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高
2. 目前( A )数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行
的商用数据库系统。 A.关系 B.面向对象 C.分布 D. 层次 3.为数据表创建索引的目的是( A )。
A.提高查询的检索性能 B.创建唯一索引 C.创建主键 D.归类 4.以下关于主键的描述正确的是( A )。
A.标识表中唯一的实体 B.创建唯一的索引,允许空值 C.只允许以表中第一字段建立 D.表中允许有多个主键
5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职
员,从职员到部门的联系类型是( C ) A、多对多 B、一对一 C、多对一 D、一对多
6.查询员工工资信息时,结果按工资降序排列,正确的是( B )
A、ORDER BY 工资 B、ORDER BY 工资 desc C、ORDER BY 工资 asc D、ORDER BY 工资 dictinct 7.实现分组查询的子句是( C )
A.JOIN子句 B.ORDER BY子句 C.GROUP BY 子句 D.以上都不是
8. Select 职工号 FROM 职工 WHERE 工资>1250 命令的功能是( D )。
A.查询工资大于1250的纪录 B.查询1250号记录后的记录 C.检索所有的职工号 D.从[职工]关系中检索工资大于1250的职工号 9. 在SQL中,建立表用的命令是 ( B )。
A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX
10.对于数据库的管理,SQL Server的授权系统将用户分成四类,其中权限最大的用户是 ( B )
A、一般用户 B、系统管理员 C、数据库拥有者 D、数据库对象拥有者 二、判断题
( N )1.数据的完整性主要防范的对象是非法用户。 ( N )2.一个表可以创建多个主键。 ( Y )3.在SQL Server系统中,数据信息和日志信息不能放在同一个操作系统文件中。 ( Y )4.存储过程是存储在服务器上的一组预编译的Transcat-SQL语句。 ( N )5.规则必须使用一次就必须定义一次。 ( Y )6.缺省情况下,所创建的索引是非聚集索引。
( Y )7.自定义函数在对任何表的查询中都可以使用。 ( Y )8.触发器是可在程序中被调用执行。
( N )9.在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统会
自动为该行标识列赋值。
( Y )10.sa能创建和删除数据库角色。
三、填空题
1. SQL SERVER2005中有______ DML触发器_______和 _____ DLL触发器_______两类触发器。
2. 索引的类型主要有________聚集索引_________和_________非聚集索引_________。 3. SQL Server 2000局部变量名字必须以____认证____开头,而全局变量名字必须以__访问许可____开头。
4. SQL Server 的安全性管理有______系统登录名_______和_____sa登陆____两种机制。 5. SQL Server聚合函数有最大、最小、求和、平均和计数等,它们分别是__ MAX ____、___MIN____、___SUM____、___AVG___和__COUNT____ .
6.SQL Server 2005提供的数据库备份方法有____完整___数据库备份和___差异_____数据库备份、______事务日志______备份和文件和文件组备份。
7.已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和所在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。分析以下SQL语句: SELECT SNO FROM SC
WHERE SCORE = (SELECT MAX(SCORE) FROM SC WHERE CNO=’002’) 简述上述语句完成的查询操作是_________检索有与课程号为“002”的课程的最高成绩相等的同学的学号__________________________。
8. 关系数据模型的逻辑结构是_____二维表_____,关系中的列称为____属性____,行称为___元组_____。
四、简答题
1、简述视图及其作用。
第一点:使用视图,可以定制用户数据,聚焦特定的数据。 第二点:使用视图,可以简化数据操作。
第三点:使用视图,基表中的数据就有了一定的安全性 第四点:可以合并分离的数据,创建分区视图
2、建立索引的一般原则是什么?
唯一值,数据量大的时候,并且该字段较常用语查询判断,建立索引加快了查询的速度
3、什么是数据完整性?SQL SERVER2005提供了哪些机制来强制列中数据的完整性? 数据完整性.是指数据的精确性.和可靠性.它是应防止数据库中存在不符合语义规定的数
据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的完整性。
数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好
地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。
五、阅读程序题
设有学生选修课程数据库中的数据表:
学生表(学号,姓名,年龄,性别,所在系,地址,出生日期) 选课表(学号,课程号,成绩)
课程表(课程号,课程名称,教师姓名) 阅读下面sql语句,写出该语句实现的功能: (1) create database [学生选修课程数据库] go
use [学生选修课程数据库] go
创建数据库[学生选修课程数据库]。 设置当前数据库为[学生选修课程数据库]
(2)create table课程表
([课程号] char(6) primary key, [课程名称] char(40) not null [教师姓名] char(8) )
创建[课程表]代码
要求使用:主键(课号)、非空(名称)
(3)select 课程名称 from 课程表 where 课程号 in
(select 选课表.课程号 from 选课表,学生表
where (选课表.学号=学生表.学号) and (学生表.姓名='刘静娴'))
“刘静娴”所选修的全部课程名称。
(4)select 学生表.学号, 学生表.姓名
from 学生表, 选课表, 课程表
where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号) and (教师姓名<>'李老师')
没有选修李老师所讲课程的学生。
(5)select 学生表.学号, 姓名, 所在系
from 学生表, 选课表, 课程表
where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号) and (课程名称 = '操作系统') order by 成绩 desc
选修“操作系统”课程的学生学号、姓名、所在系,按成绩降序排列。
六、程序设计题
现有关系数据库如下: 数据库名:班级同学数据库
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char(6),宿舍电话)
用SQL语言实现下列功能的sql语句代码: 1. 创建数据库[班级同学数据库]代码。
create database [我班同学数据库] go use [我班同学数据库] go
2.创建数据表[宿舍表]代码;
宿舍表(宿舍号 char(6),宿舍电话)
要求使用:主键(宿舍号)、宿舍电话:以848开头的8位电话号码
create table 宿舍表
([宿舍号] char(6) primary key,
[宿舍电话] char(8) check([宿舍电话] like '848[0-9][0-9][0-9][0-9]'))
3.创建数据表[同学表]代码;
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)
create table 同学表
(学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ('男', '女')),
年龄 int , 民族 nchar(8) default '汉族' not null, 身份证号 char(18) unique,
宿舍号 char(6) references 宿舍表(宿舍号) )
4.将下列宿舍信息添加到宿舍表的代码 宿舍号 宿舍电话 101 84811157 102 84811777
修改 宿舍号为101的 宿舍电话:84811158 删除 宿舍号为102的 宿舍信息
insert 宿舍表 values('101', '84811157') insert 宿舍表 values('102', '84811777')
update 宿舍表 set 宿舍电话='84811158' where 宿舍号='101' delete 宿舍表 where 宿舍号='102'
5.创建视图[同学表视图]代码
同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话)
create view [同学表视图] as
select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电话 from 同学表,宿舍表
where 同学表.宿舍号=宿舍表.宿舍号
6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。
select 姓名, 性别, 宿舍电话 from 同学表视图 where 姓名 like '张%' and 性别='女'
7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。
select 最大年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄 = avg(年龄) from 同学表 where 性别='女'