《SQL数据库管理与开发教程与实训》试题(A卷)

来源:互联网 发布:ipad淘宝版本 编辑:程序博客网 时间:2024/05/08 07:08

《SQL数据库管理与开发教程与实训》试题(A卷)

杜兆将 老师

一、单项选择题(每小题1分,共10分)
1.下列四项中,不属于数据库特点的是( )。
 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高

2.下列四项中,不属于SQL2000实用程序的是( )。
A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器

3.SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。
A.master B.model C.pub D.msdb

4.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
 A.DBMS B.DB C.DBS D.DBA

5. 在SQL中,建立表用的命令是 ( )。
A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX

6.SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。
A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁

7.下列四项中,不正确的提法是( )。
A.SQL语言是关系数据库的国际标准语言 B.SQL语言具有数据定义、查询、操纵和控制功能 C.SQL语言可以自动实现关系数据库的规范化 D.SQL语言称为结构查询语言

8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb

9.SQL语言中,删除表中数据的命令是( )。
A. DELETE B. DROP C. CLEAR D. REMOVE

10.SQL的视图是从( )中导出的。
A. 基本表 B. 视图 C. 基本表或视图 D. 数据库

二、判断题(每空1分,共10分)
1.'在那遥远的地方' 是SQL中的字符串常量吗?
2.'11.9' 是SQL中的实型常量吗
3.select 16%4, 的执行结果是: 4 吗?
4.2005.11.09 是SQL中的日期型常量吗?
5.¥2005.89 是SQL中的货币型常量吗?
6.select 25/2 的执行结果是: 12.5 吗?
7.'岳飞'>'文天祥' 比较运算的结果为真吗?
8.一个表可以创建多个主键吗?
9.创建唯一性索引的列可以有一些重复的值?
10.固定数据库角色:db_datarader 的成员能修改本数据库内表中的数据吗?

三、填空题(每空1分,共20分)
1.数据库系统具有数据的_________、_________和内模式三级模式结构。

2.SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。

3.语句 select ascii('D'), char(67) 的执行结果是:_________和_________。

4.语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是: ____________和___________。

5.选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。

6.关系运算主要有________、________和连接。

7.完整性约束包括______完整性、______完整性、参照完整性和用户定义完整性。

8.在SQL Server 2000中,数据库对象包括______、______、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。

9.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:_________和_________。

10.语句 select round(13.4321,2), round(13.4567,3)的执行结果是:_________和_________。

四、简答题(每小题5分,共10分)

1.在SQL Server 2000中,使用视图的好处是什么?

2.在SQL Server 2000中,用户访问表/视图、列的权限是什么?

五、设计题(共50分) 现有关系数据库如下:

   数据库名:我班同学数据库

   同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
 
   宿舍表(宿舍号 char(6),宿舍电话)

   用SQL语言实现下列功能的sql语句代码:

   1.创建数据库[我班同学数据库]代码(2分)。

   2.创建数据表[宿舍表]代码(3分);
         宿舍表(宿舍号 char(6),宿舍电话)
         要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码
 
   3.创建数据表[同学表]代码(6分);
   
         同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)

         要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)

    4.将下列宿舍信息添加到宿舍表的代码(8分)
      宿舍号 宿舍电话
      101 6331157
      102 6331777

 

       修改 宿舍号为101的 宿舍电话:6331158
       删除 宿舍号为102的 宿舍信息

    5.创建视图[同学表视图]代码(5分);

      同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话)

    6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(4分)

    7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。(5分)

    8.创建带参数的存储过程[某宿舍同学]:姓名, 性别, 宿舍电话 执行此过程,查询'101'宿舍情况 (8分)

     9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(9分)

 


参考答案:

一、 1 2 3 4 5 6 7 8 9 10
     C D C A B A C D A C

二、 1 2 3 4 5 6 7 8 9 10
     Y N N N N N Y N N N

三、 no          答案          分值
     1.       外模式、模式      2
     2.        @、@@            2
     3.        68、C            2
     4. beautiful、我心中的太阳 2
     5.      水平、垂直         2
     6.      选择、投影         2
     7.        实体、域         2
     8.        表、视图         2
     9.         6、7            2
     10     13.4300、13.4570    2

四、
    1、

(1) 为用户集中需要的数据,简化了数据的用户操作;

(2) 对用户隐藏了数据库设计的复杂性;

(3) 简化用户权限的管理

(4) 组织数据导出到其它应用程序;

2、

1.数据表/视图(select insert update delete)

2.列(字段)的访问(select update)

 

 

五、1、


create database [我班同学数据库]

go

use [我班同学数据库]

go

 


2、


create table 宿舍表

([宿舍号] char(6) primary key,

[宿舍电话] char(7) check([宿舍电话] like '633[0-9][0-9][0-9][0-9]'))

 


3、


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、


insert 宿舍表 values('101', '6331157')

insert 宿舍表 values('102', '6331777')

update 宿舍表 set 宿舍电话='6331158' 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 性别='女'

 


8、


create procedure [某宿舍同学] @宿舍号 varchar(6)

as

select 姓名, 性别, 宿舍电话

from 同学表视图

where 宿舍号 = @宿舍号

go

execute [某宿舍同学] '101'

 


9、


exec sp_addlogin 'U班主任', '888', '我班同学数据库'

exec sp_grantdbaccess 'U班主任', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

 

 

原创粉丝点击