SQL 数据库试题及答案
一、单选题(每题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图,将其转换为逻辑数据库
1、转换成如下关系表(关系表参考:表名(字段1,字段2,…))(6分)
2、确定关系中的主键,分别为:                                      。(6分)
3、创建一个名字为“stu_course”的数据库。要求主数据文件名为“student_data.mdf”,其他参数自定义。(数据库成功创建得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                            =
        (    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
2
3
4
5
6
7
8
9
10
D
B
C
D
A
A
B
B
A
C
二、数据库设计题(共40分)
根据如下E-R图,将其转换为逻辑数据库
1、转换成如下关系表(关系表参考:表名(字段1,字段2,…))(6分)
学生(学号,姓名,性别,班级)
课程(课程号,课程名,学分)
选修(学号,课程名,成绩)
2、确定关系中的主键,分别为:学号课程号学号与课程号。(6分)
3、创建一个名字为“stu_course”的数据库。要求主数据文件名为“student_data.mdf”,其他参数自定义。(数据库成功创建得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    )
sql查询面试题及答案
      PRINT @ProductNum
/*执行存储过程*/
    DECLARE @category int ,@ProductNum smallint
    SET @category = 1
    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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。