一、 选择题:(30分)
1) 根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项: ( )
A、 只存在一对多的实体关系,以图形方式来表示。
B、 以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C、 能体现一对多、多对多的关系,但不能体现一对一的关系。
D、 关系模型数据库是数据库发展的最初阶段。
2) 关系数据库中,主键是(_____),主键的建立有(______)种方法,当运用Transact-SQL语句创建主键时,可以是(_____)。
(1)A、为标识表中唯一的实体
B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立
D、允许有多个主键的
(2)A、一 B、二 C、三 D、四
(3)A、 create table table1
(column1 char (13) not null primaty ,
column2 int not )on primary;
B、alter table table1 with notcheck add
Constraint [PK_table1]primary key nonclustered
(column1) on primary;
C、alter table table1 column1 primary key ;
3) 为数据表创建索引的目的是(_____),可以在创建表时用(_____)来创建唯一索引,也可以用(_____)来创建唯一索引。
(1)A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类
(2)A、设置主键约束,设置唯一约束 B、Create table ,Create index
C、设置主键约束,Create index D、以上都可以
4) 在Transact-SQL语法中,用来插入数据的命令是(_____),用于更新的命令是(_____)。
A、INSERT,UPDATE B、UPDATE,INSERT
C、DELETE,UPDATE D、CREATE,INSERT INTO
5) 在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_____),使用关键字(_____)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(_____),如果在SELECT语句中使用集合函数时,一定在后面使用(_____)。
(1)A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT
(2)A、DISTINCT B、UNION C、ALL D、TOP
(3)A、JOIN B、UNION C、INTO D、LIKE
(4)A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE
6) 视图是一种常用的数据对象,它是提供(_____)(_____)和(_____)数据的另一种途径,可以简化数据库操作,当使用多个数据表来建立视图时,表的连接不能使用(_____)方式,并且不允许在该语句中包括(____)等关键字。
(1)A、查看,存放 B、查看,检索 C、插入,更新 D、检索,插入
(2)A、外连接 B、内连接 C、左连接 D、右连接
(3)A、ORDER BY,COMPUTE
B、ORDER BY,COMPUTE,COMPUTR BY
C、ORDER BY,COMPUTE BY,GROUP BY
D、GROUP BY,COMPUTE BY
7) 在SQL SERVER服务器上,存储过程是一组预先定义并(_____) 的Transact-SQL语句。可以用(____)来声明游标。
(1)A、保存 B编译 C、解释 D编写
(2)A、CREATE CURSOR B、ALTER CURSOR C、SET CURSOR D、DECLARE CURSOR
8) 在数据库中,下列哪一个效率最好?(_____)
a) test(id int ,name varchar(10),desc varchar(50))
b) select * from test;
c) select id,name from test;
d) select id from test;
9)根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(_____)
A、 存在一对多的实体关系,以图形方式来表示。
B、 以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C、 能体现一对多,多对多的关系,但不能体现一对一的关系。
D、 关系模型数据库是数据库发展的最初阶段。
二、 填空题:(15分)
1、SQL SERVER 中索引类型包括的三种类型分别是___________________, , 和 。
2、在SELECT语句的FROM子句中最多可以指定 个表或视图,相互之间要用 分隔,当所查询的表不在当前数据库时,可以用_________ 格式来指出表或视图对象。
3、删除表命令: ____________________________________________________ 。
4、用SELECT进行模糊查询时,可以使用______________ 或 匹配符,但要在条件值中使用 或 等通配符好配合查询,并且,模糊查询只能针对字段类型是 的查询
5、计算字段的累加和的函数是 ________ ,统计项目数的函数是: ______
三、 简答题:(20分)
1、 触发器的类型以及相对的语句命令?
2、 如何做一个动态的SQL?
3、 用户权限的种类有那些?各自的作用?
四、 分析编码题 (20分)
1、 使用TRANSACT-SQL建立如下表:
表名:雇员基本信息表;
字段名 数据类型 宽度 精度 可空性 要求
NO_ID CHAR 7 NOT NULL 设为主键
NAME CHAR 10 NOT NULL
SEX CHAR NOT NULL 默认值为“男”
AGE INT NOT NULL
DEPT VARCHAR 50 NULL
PHONE VARCHAR 20 NULL
NOTES VARCHAR 50
2、 现有1销售表,他们结构如下:
id int (表识号)
codno char(7) (商品编码)
codname varchar(30) (商品名称)
spec varchar(20) (商品规格)
price numeric(10,2) (价格)
sellnum int (销售数量)
deptno char(3) (售出分店编码)
selldate datetime (销售时间)
要求:写出查询销售时间段在2002-2-15日到2002-4-29之间,分店编码是01的所有记录
3、 在TABLE1数据表中增加“NO_ID”字段,数据类型CHAR(12),不可空,并将其设定为UNIQUE约束,写出其命令语句
五、 编程填空题 (10分)
填写出下列触发器中缺少的关键字,使下面语句完整
if update([lcostprice])
update [b-drug-data] set [scostprice]=((select[lcostprice]
from inserted
[codno],[lcostprice],[scostprice]
{b-drug-data.codno}=[inserted.codno])/
(select[fsco]from[b-drug-data]
[codno],[fsco]
[b-drug-data.codno]=
(select[codno]from inserted group by[codno])))
where [b-drug-data.codno] (select [codno]from inserted)