当前位置:文档之家› 数据库基础考题答案

数据库基础考题答案

数据库基础测试题
姓名:工号:
一、单项选择题,把合适的选项编号填写在括号内。

(每小题1分,共10分)
1.在数据库技术中,实体-联系模型是一种( A )
A.概念数据模型
B.结构数据模型
C.物理数据模型
D.逻辑数据模型
2.关系数据模型通常由3部分组成,它们是(B )
A.数据结构,数据通信,关系操作
B.数据结构,数据操作,数据完整性约束
C.数据通信,数据操作,数据完整性约束
D.数据结构,数据通信,数据完整性约束
3.SQL语言中,删除一个表的命令是( B )
A. DELETE
B. DROP
C. CLEAR
D. REMOVE
4.在SQL的查询语句中,order by选项实现对结果表的(D)功能
A. 分组统计
B. 求和
C. 查找
D. 排序
5. SQL Server触发器主要针对下列语句创建( B )
A. SELECT,INSERT,DELETE
B. INSERT,UPDATE,DELETE
C. SELECT,UPDATE,INSERT
D. INSERT,UPDATE,CREATE
6. 下列哪个不是sql 数据库文件的后缀。

C
A..mdf B..ldf C..tif D..ndf
7. 在SQL中,建立表用的命令是 ( A )。

A.CREATE TABLE
B.CREATE RULE
C.CREATE VIEW
D.CREATE INDEX
8. SQL语言中,条件“年龄BETWEEN 40 AND 50”表示年龄在40至50之间,且( A )。

A.包括40岁和50岁
B.不包括40岁和50岁
C.包括40岁但不包括50岁
D.包括50岁但不包括40岁
9. 模式查找like '_a%',下面哪个结果是可能的B
A.aili
B. bai
C.bba
a
10. 若某表满足1NF,且其所有属性合起来组成主健,则一定还满足范式 ( C )
A、只有2NF
B、只有3NF
C、2NF和3NF
D、没有
二、填空题,把合适内容填在横线上。

(每空1分,共19分)
1.DBMS是指_______数据库管理系统_________。

2.视图是由一个或多个____表__或视图导出的__虚表____或查询表。

3.触发器主要有2种类型,即_____DML___和__DDL_______。

4.数据完整性的类型有____引用____完整性、____实体___完整性、__域_____完整性和用户自定义完整性。

5.要用SQL Server验证方式访问SQL Server数据库服务器,用户必须提供正确的_____用户名____和____密码______。

6.在基本表的某个列上建立索引,可以使基本表中的所有记录按该列值的__升序__ ___或__降序_____排列。

7.CHECK约束被称为___用户自定义_____约束,UNIQUE约束被称为__唯一________约束。

8.______存储过程_是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。

9.事务的ACID属性是指____原子性____性、__一致______性、_隔离______性和__持久_____性。

三、根据下面所给的商品库、教学库,写出下列每条SQL查询语句的执行结果,或者写出下列每条语句或程序段的功能。

(每题3分,15分)
商品库的数据库两张表,包括:
商品表1(商品代号char(8),分类名char(8),单价float,数量int)
商品表2(商品代号char(8),产地char(8),品牌char(8)
教学的数据库三张表,包括:
学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int)
课程(课程号 char(4),课程名 char(10),课程学分 int)
选课(学生号 char(7),课程号 char(4),成绩 int)
1.select x.商品代号,分类名,数量,品牌
from 商品表1 x,商品表2 y
where x.商品代号=y.商品代号
2.select count(distinct 产地) as 产地数
from商品表2
3.select 课程.课程号,课程.课程名,count(*)as选课人数
from 课程,选课
where课程.课程号=选课.课程号
group by 课程.课程号,课程.课程名
4. select x.学生号,y.学生号,y.课程号
from 学生x,选课y
where x.学号=@s1 and y.学号=@s2
and x.课程号=y.课程号
5. select *
from 课程
where exists (select *
from 选课,课程
where课程.课程号=选课.课程号

四、根据第三题所给的商品库和教学库,按照下列给的每种功能写出相应的查询语句。

(每题4分,32分)
1.从商品库中查询出数量大于10的商品种数。

select count(商品代号)
from 商品表1
where 数量>10
2.从商品库中查询出每类(即分类名相同)商品的最高单价。

select max(价格)
from 商品表1
group by 分类名
3.商品库中查询出比所有商品单价的平均值要高的全部商品。

select *
from 商品表1
where 单价>(select Avg(单价) from 商品表1 )
4.从商品库中查询出同一类商品多于一种的所有分类名。

Select 分类名
from (select 分类名, count(分类名) as 类型商品数
from 商品表1
group by 分类名
)
where 类型商品数>1
5.从教学库中查询出被2至4名学生选修的所有课程。

select a.课程号,b.课程名 ,count(学生号) as num from 课程 a,选课 b where a.课程号=b.课程号
group by a.课程号,b.课程名
having num between 2 and 4
6. 写一个课程表的触发器,当要删除的课程还没有学生选修,允许删除,否则不允许删除
Create trigger tri课程表
On 课程
For delete
As
If(exists(select * from 选课,deleted where 选课号 =deleted.选课号))
Print ‘不允许删除’
Else
Print ‘允许删除’
Rollback transaction
7. 查询选修课程超过5门的学生姓名和所选修课程的数目?
Select 姓名,num from 学生表a,(
select 学生号,count(选课.学生号) num
From 选课
Group by 学生号
Having num>5) b where a.学生号= b.学生号
8. 写一个存储过程,输入选修课程名,得到选修该课程的所有学生的学号和姓名
Create procedure mypro
@in char(10)
As select 学生.学生号,学生.姓名
from 课程inner join选课on课程. 课程号=选课. 课程号inner join学生on 学生. 学生号=选课. 学生号where 课程. 课程名=@in
五、问答题。

(共10分)
1.使用保存点是否可以保存事务的一部分?为什么?
可以
2.什么是存储过程?存储过程有哪些优点?用什么来调用?
存储过程(Stored Procedure)是一组编译好存储在服务器上的完成特定功能T-SQL代码,是某数据库的对象。

客户端应用程序可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。

优点:
(1)允许标准组件式编程,增强重用性和共享性,无须重写sql
(2)能够实现较快的执行速度
(3)能够减少网络流量
(4)可被作为一种安全机制来充分利用
用exec 存储过程名来调用
六、综合题。

(共14分)
1. 查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列
法一Select top 10 * From A Where ID not in (select top 30 * from A)
法二go
Select IDENTITY(INT,1,1) AS ID,NAME
Into B
From A
go
Select * from B where ID between 31 and 40
go
2. 查询表A中存在ID重复三次以上的记录
Select *
From A
Where id in(select ID from A group by id having count(id)>3)。

相关主题