SQL数据库xx1
《SQL数据库管理与开发教程与实训》xx(A卷)
一、单项选择题(每小题1分,共10分)
1.下列四项中,不属于数据库特点的是( C )。
A.数据共享 B.数据完整性
C.数据冗余很高 D.数据独立性高
2.下列四项中,不属于SQL2000实用程序的是( D )。
A.企业管理器 B.查询分析器
C.服务管理器 D.媒体播放器
3.SQL Server安装程序创建4个系统数据库,下列哪个不是( C )系统数据库。
A.master B.model
C.pub D.msdb
4.( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DB
C.DBS D.DBA
5. 在SQL中,建立表用的命令是 ( B )。
A.CREATE SCHEMA B.CREATE TABLE
C.CREATE VIEW D.CREATE INDEX
6.SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。
A.包括15岁和35岁
B.不包括15岁和35岁
C.包括15岁但不包括35岁
D.包括35岁但不包括15岁
7.下列四项中,不正确的提法是( C )。
A.SQL语言是关系数据库的国际标准语言
B.SQL语言具有数据定义、查询、操纵和控制功能
C.SQL语言可以自动实现关系数据库的规范化
D.SQL语言称为结构查询语言
8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。
A. sp_dbhelp B. sp_db
C. sp_help D. sp_helpdb
9.SQL语言中,删除表中数据的命令是( A )。
A. DELETE B. DROP
C. CLEAR D. REMOVE
10.SQL的视图是从( C )中导出的。
A. 基本表 B. 视图
C. 基本表或视图 D. 数据库
二、判断题(每空1分,共10分)
1.'在那遥远的地方' 是SQL中的字符串常量吗?Y
2.'11.9' 是SQL中的实型常量吗 N
3.select 16%4, 的执行结果是: 4 吗?N
4.2005.11.09 是SQL中的日期型常量吗?N
5.¥2005.89 是SQL中的货币型常量吗?NN
6.select 25/2 的执行结果是: 12.5 吗?N
7.'岳飞'>'文天祥' 比较运算的结果为真吗?Y
8.一个表可以创建多个主键吗?N
9.创建{wy}性索引的列可以有一些重复的值?N
10.固定数据库角色:db_datarader 的成员能修改本数据库内表中的数据吗?N
三、填空题(每空1分,共20分)
1.数据库系统具有数据的_外模式__、_模式___和内模式三级模式结构。
2.SQL Server 2000局部变量名字必须以___@___开头,而全局变量名字必须以__@@__开头。
3.语句 select ascii('D'), char(67) 的执行结果是:__68____和__ C ___。
4.语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是: ___ beautiful __和___我心中的太阳__。
5.选择运算是根据某些条件对关系做_水平_分割;投影是根据某些条件对关系做_垂直_分割。
6.关系运算主要有__选择__、__投影_和连接。
7.完整性约束包括_实体_完整性、__域__完整性、参照完整性和用户定义完整性。
8.在SQL Server 2000中,数据库对象包括_表__、_视图_、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。
9.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:___6____和___7___。
10.语句 select round(13.4321,2), round(13.4567,3)的执行结果是:__13.4300__和_13.4570__。
五、设计题(共50分)
现有关系数据库如下:
数据库名:我班同学数据库
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
宿舍表(宿舍号 char(6),宿舍电话)
用SQL语言实现下列功能的sql语句代码:
1.创建数据库[我班同学数据库]代码(2分)。
create database [我班同学数据库]
go
use [我班同学数据库]
go
2.创建数据表[宿舍表]代码(3分);
宿舍表(宿舍号 char(6),宿舍电话)
要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码
create table 宿舍表
([宿舍号] char(6) primary key,
[宿舍电话] char(7) check([宿舍电话] like '633[0-9][0-9][0-9][0-9]'))
3.创建数据表[同学表]代码(6分);
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、{wy}(身份证号)、检查(性别)
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.将下列宿舍信息添加到宿舍表的代码(8分)
宿舍号 宿舍电话
101 6331157
102 6331777
insert 宿舍表 values('101', '6331157')
insert 宿舍表 values('102', '6331777')
修改 宿舍号为101的 宿舍电话:6331158
删除 宿舍号为102的 宿舍信息
update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101'
delete 宿舍表 where 宿舍号='102'
5.创建视图[同学表视图]代码(5分);
同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话)
create view [同学表视图] as
select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电话
from 同学表,宿舍表
where 同学表.宿舍号=宿舍表.宿舍号
6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(4分)
select 姓名, 性别, 宿舍电话
from 同学表视图
where 姓名 like '张%' and 性别='女'
7.从同学表中查询女同学的{zd0}年龄、最小年龄、平均年龄。(5分)
select {zd0}年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄 = avg(年龄)
from 同学表
where 性别='女'
8.创建带参数的存储过程[某宿舍同学]:姓名, 性别, 宿舍电话
执行此过程,查询'101'宿舍情况 (8分)
create procedure [某宿舍同学] @宿舍号 varchar(6)
as
select 姓名, 性别, 宿舍电话
from 同学表视图
where 宿舍号 = @宿舍号
go
execute [某宿舍同学] '101'
9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(9分)
exec sp_addlogin 'U班主任', '888', '我班同学数据库'
exec sp_grantdbaccess 'U班主任', 'U读者'
exec sp_addrolemember 'db_datareader', 'U读者'