2024年3月9日发(作者:)
《数据库管理与开发项目教程》模拟题及答案
一、单选题(每题2分,共20分)
( )1、下列不能启动SQL Server服务的方法:
A、使用SQL Server配置管理器 B、使用Windows的管理工具
C、使用 net start mssqlserver 命令 D、在查询编辑器中编写T-SQL程序
( )2、部分匹配查询中有关通配符“%”的正确的叙述是 。
A、“%”代表多个字符 B、“%”可以代表零个或多个字符
C、“%”不能与“_”一同使用 D、“%”代表一个字符
( )3、在SELECT子句中,如果想要返回结果集中不包含相同的行,应该使用 关
键字。
A、TOP B、AS C、DISTINCT D、JOIN
( )4、 是表中用来唯一标识的每行记录。
A、外键 B、主键 C、索引 D、数据库完整性
( )5、SQL 中,"GRADE NOT BETWEEN 60 AND 90"的语义是 。
A、GRADE<60 OR GRADE>90 B、GRADE<= 60 OR GRADE>= 90
C、GRADE<>60 AND GRADE<>90 D、GRADE<>60 OR GRADE<>90
( )6、 简称DBA。
A、数据库管理员 B、数据库 C、数据库管理系统 D、计算机硬件
( )7、在SQL中,可以使用 语句执行恢复数据库的操作。
A、BACKUP DATABASE B、RESTORE DATABASE
C、CREATE DARABASE D、DROP DATABASE
( )8、设一个班级可选修多门课程,一门课程可被多个班级选修,班级与课程之间
是 。
A、一对一的联系 B、一对多的联系 C、多对一的联系 D、多对多的联系
( )9、SQL Server2016的数据库中主数据文件的扩展名是 。
A、.mdf B、.ndf C、.ldf D、.dbf
( )10、当表中引入 时,会提高记录的查询速度。
A、外键 B、主键 C、索引 D、数据库完整性
二、数据库设计题(共40分)
根据如下E-R图,将其转换为逻辑数据库。
成绩
姓名
学号
m
选修
学生
性别
班级
1
课程号
n
课程名
课程
学分
1、转换成如下关系表(关系表参考:表名(字段1,字段2,…))(6分)
2、确定关系中的主键,分别为: 、 、 。(6分)
3、创建一个名字为“stu_course”的数据库。要求主数据文件名为“student_”,其他参数
自定义。(数据库成功创建得4分)
请截图(数据库文件属性):
4、根据1中的关系表,在stu_course库中创建数据表。(每个表正确创建得6分,共18分)
请截图(对象资源管理器,一直展开到“列”):
5、创建立一个“课程名”列的非聚集索引文件。(5分)
请截图(索引属性):
6、创建学生成绩视图,包括学号、姓名、课程名、成绩等信息。(5分)
请截图(打开视图):
三、查询设计题(共25分)
1、附加数据库companyinfo(数据库文件在paperB中)。(附加成功得5分)
请截图(对象资源管理器):
2、查询雇员表employee中薪水超过3000元的雇员的姓名和薪水。(5分)
请粘贴T-SQL查询语句:
3、查询雇员表employee中所有姓“章”的雇员的信息。(5分)
请粘贴T-SQL查询语句:
4、在产品表product中按产品的种类分类,求出各种类型产品的价格总和、平均单价以及各类产
品的种类数。(5分)
请粘贴T-SQL查询语句:
5、查询所有订购了“鼠标”产品的公司信息。(5分)
请粘贴T-SQL查询语句:
四、填空题(每空3分,共15分)
1、创建存储过程P2,它能够根据用户给定的类别ID统计具有该ID的产品名称数,并将产品名称
数返回给用户。
/*创建存储过程*/
CREATE PROCEDURE P2
@category int , @ProductNum smallint OUTPUT
AS
SET =
2
( SELECT FROM product
WHERE 类别ID = @category )
PRINT @ProductNum
/*执行存储过程*/
DECLARE @category int ,@ProductNum smallint
SET @category = 1
EXEC P2
SELECT @ProductNum
2、创建一个修改触发器,用于防止用户修改表employee的雇员ID。
CREATE TRIGGER employee_Update
ON employee
FOR
AS
IF UPDATE (雇员ID)
BEGIN
RAISERROR ('你不能更新这一列',10,1)
END
参考答案
一、单选题(每题2分,共20分)
1
D
2
B
3
C
4
D
5
A
6
A
7
B
8
B
9
A
10
C
二、数据库设计题(共40分)
根据如下E-R图,将其转换为逻辑数据库。
成绩
课程号
姓名
学号
m n
课程
选修
学生
性别
班级
1、转换成如下关系表(关系表参考:表名(字段1,字段2,…))(6分)
学生(学号,姓名,性别,班级)
课程(课程号,课程名,学分)
选修(学号,课程名,成绩)
2、确定关系中的主键,分别为:学号、课程号、学号与课程号。(6分)
3
课程名
学分
3、创建一个名字为“stu_course”的数据库。要求主数据文件名为“student_”,其他参数
自定义。(数据库成功创建得4分)
4、根据1中的关系表,在stu_course库中创建数据表。(每个表正确创建得6分,共18分)
5、创建立一个“课程名”列的非聚集索引文件。(5分)
6、创建学生成绩视图,包括学号、姓名、课程名、成绩等信息。(5分)
三、查询设计题(共25分)
1、附加数据库companyinfo(数据库文件在paperB中)。
(附加成功得5分)
2、查询雇员表employee中薪水超过3000元的雇员的姓名和薪水。(5分)
Select 姓名,薪水
from employee
Where 薪水>3000
3、查询雇员表employee中所有姓“章”的雇员的信息。(5分)
Select *
from employee
Where 姓名 LIKE ‘章’
4、在产品表product中按产品的种类分类,求出各种类型产品的价格总和、平均单价以及各类产
品的种类数。(5分)
Select sum(价格 ),avg(价格),count(名称)
From product
Group by 种类
5、查询所有订购了“鼠标”产品的公司信息。(5分)
Select *
from company join product on company.公司号= product. 公司号
Where名称=’鼠标’
四、填空题(每空3分,共15分)
1、创建存储过程P2,它能够根据用户给定的类别ID统计具有该ID的产品名称数,并将产品名称
数返回给用户。
/*创建存储过程*/
CREATE PROCEDURE P2
@category int , @ProductNum smallint OUTPUT
AS
SET ProductNum =
( SELECT count(产品名称) FROM product
WHERE 类别ID = @category )
PRINT @ProductNum
/*执行存储过程*/
DECLARE @category int ,@ProductNum smallint
SET @category = 1
4
EXEC P2 @category
SELECT @ProductNum
2、创建一个修改触发器,用于防止用户修改表employee的雇员ID。
CREATE TRIGGER employee_Update
ON employee
FOR update
AS
IF UPDATE (雇员ID)
BEGIN
rollback
RAISERROR ('你不能更新这一列',10,1)
END
5


发布评论