2023年6月21日发(作者:)
2010年上半年关系数据库标准语言SQL练习
1.SQL是( )英文单词的缩写。
A.Standard Query Language
2.
C. Select Query Language
标准SQL基本查询模块的结构是( )。
A.SELECT„FROM„ORDER BY
C.SELECT„WHERE„HAVING
B. Structured Query Language
D. 以上都不是
B. SELECT„WHERE„GROUP BY
D. SELECT„FROM„WHERE
3.在SQL的SELECT查询结果中,消除重复记录的方法是( )。
A.通过指定主关系键 B. 通过指定惟一索引
C.使用DISTINCT子句 D. 使用HAVING子句
4.使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是( )。
A. SELECT*FROM STUDENT WHERE LEFT(姓名,2)=”王”
B. SELECT*FROM STUDENT WHERE RIGHT(姓名,2)=”王”
C. SELECT*FROM STUDENT WHERE TRIM(姓名,2)=”王”
D. SELECT*FROM STUDENT WHERE STR(姓名,2)=”王”
5.查询订购单号(字符型,长度为4)尾字符是”1”的错误命令是( )。
A.SELECT*FROM 订单 WHERE SUBSTR(订购单号,4)=”1”
B. SELECT*FROM 订单 WHERE SUBSTR(订购单号,4,1)=”1”
C. SELECT*FROM 订单 WHERE “1”$订购单号
D. SELECT*FROM 订单 WHERE RIGHT(订购单号,1)=”1”
6.在SQL SELECT语句中用于实现关系的选择运算的短语是( )。
A.FOR B. WHILE C. WHERE
7. 在SELECT语句中,用来指定查询所用的表的子句是( ).
8.
D. CONDITION
A. WHERE B. GROUP BY C. ORDER BY D. FROM
使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( )。
A.使用WHERE子句 B. 在GROUP BY后面使用HAVING子句
C. 先使用WHERE子句,再使用HAVING子句
D. 先使用HAVING子句,再使用WHERE子句
9.本题使用下列两个数据表:
学生.DBF: 学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF: 学号(C,8),课程号(C,3),成绩(N,5,1)
查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL语句是( )。
A.SELECT*FROM 学生 WHERE 出生日期>={^1982-03-20} AND 性别=”男”
B. SELECT*FROM 学生 WHERE 出生日期<={^1982-03-20} AND 性别=”男”
C. SELECT*FROM 学生 WHERE 出生日期>={^1982-03-20} OR 性别=”男”
D. SELECT*FROM 学生 WHERE 出生日期<={^1982-03-20} OR 性别=”男”
SELECT jg FROM student
请选出正确的选项完成该语句( )。
D. DISTINCT
10. 若要从学生表中检索出jg 并去掉重复记录,可使用如下SQL语句
A.ALL B. * C. ?
11. 下列关于SQL中HAVING子句的描述,错误是的( )。
A.HAVING子句必须与GROUP BY子句同时使用
B.HAVING子句与GROUP BY子句无关
C.使用WHERE子句的同时可以使用HAVING子句
D.使用HAVING子句的作用是限定分组的条件
- - 1 - - 12.SQL的SELECT语句中,“HAVING<条件表达式>”用来筛选满足条件的( )。
A.列 B. 行 C. 关系 D. 分组
13.一条没有指明去向的SQL SELECT语句执行之后,会把查询结果显示在屏幕上,要退出这个查询窗口,应该按的键是( )。
A.ALT B. Delete C. Esc
14.以下有关SELECT短语的叙述中错误的是( )。
A.SELECT短语中可以使用别名
B. SELECT短语中只能包含表中的列及其构成的表达式
D. Return
C.SELECT短语规定了结果集中的列顺序
D.如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定
15.在表ticket中查询所有票价小于100元的车次、始发站和终点信息的命令是( )。
A.SELECT*FROM ticket WHERE 票价<100
B.SELECT车次、始发站、终点FROM ticket WHERE 票价>100
C.SELECT车次、始发站、终点FROM ticket WHERE 票价<100
D.SELECT*FROM ticket WHERE 票价>100
16.在SQL语句中,与表达式“供应商名LIKE”%北京%””功能相同的表达式是( )。
A.LEFT(供应商名,4)=”北京”
C. 供应商名IN” %北京%”
B. ”北京”$供应商名
D. AT(供应商名, ”北京”)
17.SQL SELECT语句中的特殊运算符不包括( )。
A.BETWEEN B. AND C. OR D. LIKE
18.在SQL语句中,与表达式“年龄BETWEEN 12 AND 46”功能相同的表达式是( )。
A.年龄 >= 12 OR <= 46
C. 年龄 >= 12 OR 年龄 <= 46
B. 年龄 >= 12 AND <= 46
D. 年龄 >= 12 AND 年龄 <= 46
19.在SQL语句中空值用 表示。
20.SQL支持集合的并运算,在Visual FoxPro中SQL并运算的运算符是( )。
A.PLUS B. UNION C. + D.
21.下列关于SQL的并运算,说法不正确的一项是( )。
A.集合的差运算,即UNION,是指将两个SELECT语句的查询结果通过合并运算合并成一个查询结果。
B.集合的并运算,即UNION,是指将两个以上SELECT语句的查询结果通过合并运算合并成一个查询结果。
C.进行并运算要求两个查询结果具有相同的字段的数据,并且对应的字段的值要出自同一个值域
D.两个查询结果要具有相同的数据类型和取值范围。
22.求每个终点的平均票价的SQL语句是( )。
A.SELECT 终点,avg(票价) FROM ticket GROUP BY 票价
B.SELECT 终点,avg(票价) FROM ticket ORDER BY 票价
C.SELECT 终点,avg(票价) FROM ticket ORDER BY 终点
D.SELECT 终点,avg(票价) FROM ticket GROUP BY 终点
23.从职工数据库表中计算工资合计的SQL语句是:
SELECT FROM 职工
24.统计学生总人数,请写出下面SELECT语句的完整形式:
SELECT FROM student
25.在SQL的SELECT语句中用于计算检索的函数有COUNT、 、 、MAX和MIN。
26.本题使用下列两个数据表:
- - 2 - -
学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)
计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是( )。
A.SELECT AVG(成绩)FROM 选课WHERE姓名=”刘明”
B.SELECT AVG(成绩)FROM 学生,选课WHERE姓名=”刘明”
C.SELECT AVG(成绩)FROM 学生,选课WHERE 学生.姓名=”刘明”
D.SELECT AVG(成绩)FROM 学生,选课WHERE 学生.学号=选课.学号AND姓名=”刘明”
27.假定学号的3、4位为专业代码。要计算各专业学生选修课程号为“101”课程的平均成绩,正确的SQL语句是( )。
A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM 选课
WHERE 课程号=”101”GROUP BY 专业
B.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS平均分FROM选课
WHERE 课程号=”101”GROUP BY 1
C.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS平均分FROM选课
WHERE 课程号=”101”GROUP BY 专业
D.A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM 选课
WHERE 课程号=”101”GROUP BY 1
28.设有学生选课表SC(学号,课程号,成绩),用SQL语言检索每门课程的课程号及平均分的语句是(关键字必须拼写完整):SELECT课程号,AVG(成绩)AS平均分FROM SC 。
29.Visual FoxPro中用于计算机检索的函数中, 用于计数, 用来求和,
用于求平均值, 用于求最大值, 用于求最小值。
30.在SQL SELECT语句中将查询结果存放在一个表中应该使用 子句(关键字必须拼写完整)。
31.将查询结果存放到数组中的短语是 。
32.在学生表中查询至少选了一门课的同学,请使用谓词填空。
SELECT*FROM XS WHERE ;
(SELECT*FROM 选课 WHERE 学生号= )
33.设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。
SELECT 学号,姓名,性别 Forms
WHERE (SELECT*FROM sc WHERE sc.学号=s.学号 AND 成绩<85)
34.在SQL语名:
SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
ALL(SELECT 工资 FROM 教师 WHERE 系号=”02”)
与如上语句等价的SQL语句是( )。
A. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
(SELECT MAX(工资)FROM 教师 WHERE 系号=”02”)
B. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
(SELECT MIN(工资)FROM 教师 WHERE 系号=”02”)
C. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
ANY(SELECT 工资 FROM 教师 WHERE系号=”02”)
D. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
SOME(SELECT 工资 FROM 教师 WHERE系号=”02”)
35.SQL命令中用于插入数据的命令是( )。
A.INSERT B. APPEND
D. INSERT INTO
C. INSERT BEFORE
- - 3 - - 36.本题使用如下数据表:
学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)
插入一条记录到”选课”表中,学号、课程号和成绩分别是“02080111”、“103”和“80”,正确的SQL语句是( )。
A.INSERT INTO 选课 VALUES(”02080111”,”103”,80)
B.INSERT VALUES(”02080111”,”103”,80)TO选课(学号,课程号,成绩)
C.INSERT VALUES(”02080111”,”103”,80)INTO选课(学号,课程号,成绩)
D.INSERT INTO 选课(学号,课程号,成绩)FROM VALUES(”02080111”,”103”,80)
37.要在“成绩”表中插入一条记录,应该使用的SQL语句是:
成绩(学号,英语,数学,语文)VALUES(”200110011”,91,78,86)
38.要使“产品”表中所有产品的单价上浮8%,正确的SQL命令是( )。
A.UPDATE 产品 SET 单价=单价+单价*8% FOR ALL
B.UPDATE 产品 SET 单价=单价+单价*1.08 FOR ALL
C.UPDATE 产品 SET 单价=单价+单价*8%
D.UPDATE 产品 SET 单价=单价+单价*1.08
39.本题使用如下两个数据表:
学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)
将学号为“02080110”、课程号为“102”的选课记录的成绩改为92,正确的SQL语句是( )。
A.UPDATE 选课SET成绩WITH 92 WHERE学号=”02080110”AND课程号=”102”
B.UPDATE 选课SET成绩=92 WHERE学号=”02080110”AND课程号=”102”
C. UPDATE FROM选课SET成绩WITH 92 WHERE学号=”02080110”AND课程号=”102”
D.UPDATE FROM选课SET成绩=92 WHERE学号=”02080110”AND课程号=”102”
“教师”表
职工号 姓名 职称 年龄 工资 系号
11020001 肖天海 副教授 35 2000.00 01
11020002 王岩盐 教授 40 3000.00 02
使用SQL语句完成如下操作(将所有教授的工资提高5%)
update 教师 SET 工资=工资*1.05 职称=”教授”
41.DELETE FROM职工工龄WHERE 工龄<8语句的功能是( )。
A.物理删除工龄在8年以下的记录 B. 彻底删除工龄在8年以下的记录
C.删除职工工龄表
D.为表中工龄小于8年以下的记录添加删除标记
40.本题使用如下“教师”表:
42.从“订单”表中删除签订日期为2004年1月10日之前(含)的订单记录,正确的SQL语句是( )。
A.DROP FROM 订单 WHERE 签订日期<={^2004-1-10}
B.DROP FROM 订单 FOR 签订日期<={^2004-1-10}
C.DELETE FROM 订单 WHERE 签订日期<={^2004-1-10}
D.DELETE FROM 订单 FOR 签订日期<={^2004-1-10}
43.SQL插入记录的命令是INSERT,删除记录的命令是 ,修改记录的命令是 。
44.“图书”表中有字符型字段 “图书号”。要求用SQL DELETE命令将图书号以字母A开头的图书记录全部打上删除标记,正确的命令是( )。
A.DELETE FROM 图书 FOR 图书号 LIKE”A%”
B.DELETE FROM 图书 WHILE 图书号 LIKE”A%”
- - 4 - -
C.DELETE FROM 图书 WHERE 图书号=”A*”
D.DELETE FROM 图书 WHERE 图书号LIKE”A%”
45.第(1)、(2)小题使用如下表的数据:
部 门 表
部门号
40
10
20
30
商 品 表
部门号
40
40
40
20
40
20
20
40
30
30
商品号
0101
0104
0105
1032
0107
0110
0112
0202
1041
0204
商品名称
A牌电风扇
A牌微波炉
B牌微波炉
C牌传真机
D牌微波炉-A
A牌电话机
B牌手机
A牌电冰箱
B牌计算机
C牌计算机
单价
200.00
350.00
600.00
1000.00
420.00
200.00
2000.00
3000.00
6000.00
10000. 00
数量
10
10
10
20
10
50
10
2
10
10
产地
广东
广东
广东
上海
北京
广东
广东
广东
广东
上海
部门名称
家用电器部
电视录摄像机部
电话手机部
计算机部
(1) SQL语句:
SELECT部门号,MAX(单价*数量)FROM 商品表 GROUP BY 部门号
查询结果有( )条记录。
D. 10 A.1 B. 4 C. 3
(2) SQL语句:
SELECT 产地,COUNT(*)提供的商品种类数;
FROM 商品表;
WHERE 单价>200;
GROUP BY 产地 HAVING COUNT(*)>=2;
ORDER BY 2 DESC
查询结果的第一条记录的产地和提供的商品种类数是( )。
A.北京,1 B.上海,2 C. 广东,5 D. 广东,7
46.关于SQL嵌套查询的说法正确的是( )。
A.能对外层查询排序,又能对内层查询排序
B.能对外层查询排序,不能对内层查询排序
C.不能对外层查询排序,只能对内层查询排序
D.既不能对外层查询排序,也不能对内层查询排序
47.联接查询是基于( )的查询。
A.一个表 B. 两个表 C. 多个关系 D. 有一个关联的表
D. FULL JOIN
48.在对SELECT-SQL 命令中的设置为内部联接的是( )。
A.INNER JOIN B. LEFT JOIN JOIN
49.若要在表“职工”和“工龄”中查找008号职工的工资,下列语句正确的是( )。
A.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
- - 5 - -
WHERE 职工号=008; B.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
WHERE 职工号=008;
ON 职工.职工号=工龄.职工号
C.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
ON 职工.职工号=工龄.职工号
WHERE 职工号=008;
D.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
WHERE 职工.职工号=工龄.职工号
50.设有学生选课表SC(学号,课程号,成绩),用SQL检索同时选修课程号为“C1”和“C5”的学生的学号的正确命令是( )。
A.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND课程号=‟C5‟
B.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND课程号=(SELECT课程号 FROM SC WHERE 课程号=‟C5‟)
C.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND学号=(SELECT学号 FROM SC WHERE 课程号=‟C5‟)
D.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND学号 IN(SELECT学号 FROM SC WHERE 课程号=‟C5‟)
51.设有学生表S(学号,姓名,性别,年龄)、课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL命令是( )。
A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C
WHERE S.学号=SC.学号 AND SC.学号=C.学号
B.SELECT 学号,姓名,课程名,成绩
FROM(S JOIN SC ON S.学号)JOIN C ON SC.课程号=C.课程号
C.SELECT S.学号,姓名,课程名,成绩
FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号=C.课程号
D.SELECT S.学号,姓名,课程名,成绩
FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号=SC.学号
52.下面题目使用如下的“学生”表和“选修课”表:
学生: 选修课:
学号
20001
20002
20003
20004
20005
20006
姓名
王海
李盐
刘小鹏
隋小新
李明月
孙民主
政治面貌
团员
预备党员
团员
团员
预备党员
预备党员
年龄
25
20
22
20
24
21
学分
4
3
4
6
4
3
科目号
01
02
01
03
01
02
科目号
01
02
03
科目名
日语
法律
微积分
赵福来 预备党员
20007 22 6 03
(1)、使用SQL语句查询每个学生及其选修课程的情况:
SELECT学生.*,选修课.* FROM学生,选修课WHERE =
(2)、使用SQL语句求选修了法律课程的所有学生的分数总和:
SELECT (学业分)FROM 学生 WHERE 科目号 IN(SELECT 科目号 FROM
WHERE 科目号=”法律”)
(9) SQL SELECT语句中INNER JOIN等价于 , 为 在Visual FoxPro中称为
(10)在一般SQL中,超联接运算符是 和
- - 6 - - (1) SQL命令中建立表的命令是( )。
A) CREAT VIEW B) CREATTABLE C) CREAT LABEL D) CREAT DABATE
(2)在SQL的CRATE TEABLE命令中用于定义满足实体完整性的主索引的短语是( )。
A) PRIMARY KEY B) DEFAULT C) UNIQUE D) CHECK
(3)执行SQL中的DROP命令时,下列说法错误的是( )
A)应先打开数据库,再进行删除表的工作
B)在当前数据库下,表既从硬盘上删除,也从数据库上删除
C)不在当前数据库下,表从磁盘上删除,也从数据库上删除
D)可直接从磁盘上删除指定的文件
(4)如需将表stock中的“股票名称”字段的宽度由8改为10,应使用SQL语句( )。
A) ALTER TABLE stock股票名称WITHc(10) B) ALTER TABLE stock股票名称c(10)
C) ALTER TABLE stock ALTER股票名称c(10) D) ALTER stock ALTER股票名称c(10)
(5) SQL语句中修改表结构的命令是( )。
A) ALTER TABLE B) MODIFY TABLE C) ALTER STRUCTURE D) MODIFY STRUCTURE
(6)在SQL的ALTER TABLE语句中,为了增加一个新的字段应该使用短语( )。
A) CREATE B) APPEND C) COLUMN D) ADD
(7)为“学生”表增加一个“平均成绩”字段的正确命令是:
ALTER TABLE学生ADD 平均成绩N(5,2)
(8)在Visual FoxPro中,使用SQL语言的ALTER TABLE命令给学生表STUDENT增加一个E-mail字段,长度为30,命令是(关键字必须拼写完整)。
(9)己有“歌手”表,将该表中的“歌手号”字段定义为候选索引、索引名是temp,正确的SQL语句是 TABLE歌手ADD UNIQUE歌手号TAG temp。
(10)在Visual FoxPro中,使用SQL的CREATE TABLE语句建立数据库表时,使用 子句说明主索引。
(1) SQL语句中,建立视图的命令是( )。
A) CREATE B) CREATE TABLE C) CREATE VIEW D) CREATE INDEX
(2)删除视图salary的命令是( )。
A) DROP salary VIEW B) DROP VIEW salary C) DELETE salary VIEW D) DELETE salary
(3)有如下SQL语句:
CREATE VIEW view_ticket AS SELECT始发点AS名称,票价FROM ticket
执行该语句后产生的视图含有的字段名是( ),
A)始发点、票价 B)名称、票价 C)名称、票价、终点 D)始发点、票价、终点
第(1)~(6)题使用如下3个条件:
部门.DBF:部门号C(8),部门名C(12),负责人C(6),电话C(16)
职工.DBF:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D
工资.DBF:职工号c(10),基本工资N(8.2),津贴(8.2),奖金N(8.2),扣除N(8.2)
(1)查询职工实发工资的正确命令是( )。
A) SELECT姓名,(基本工资+津贴+奖金~扣除)AS实发工资FROM工资
B) SELECT姓名,(基本工资+津贴+奖金扣除)AS实发工资FROM工资;
WHERE职工.职工号=工资,职工号
C) SELECT姓名,(基本工资+津贴+奖金扣除)AS实发工资;
FROM工资,职工WHERE职工,职工号=工资,职工号
D) SELECT姓名,(基本工资+津贴+奖金~扣除)AS实发工资;
FROM工资JOIN职工WHERE职工.职工号=工资.职工号
(2)查询1962年10月27日出生的职工信息的正确命令是( )。
A) SELECT* FROM职工WHERE出生日期={1962-10-27}
- - 7 - -
~~ B) SELECT* FROM职工WHERE出生日期=1962-10-27
C) SELECT* FROM职工WHERE出生日期=″1962-10-27″
D) SELECT* FROM职工WHERE出生日期=(″1962-10-27″)
(3)查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。正确的命令是( )。
A) SELECT部门名,MIN(出生日期)FROM部门JOIN职工;
ON部门.部门号=职工.部门号GROUP BY部门名
B) SELECT部门名,MAX(出生日期)FROM部门JOIN职工;
ON部门,部门号=职工.部门号GROUP BY部门名
C) SELECT部门名,MIN(出生日期)FROM部门JOIN职工;
WHERE部门.部门号=职工,部门号GROUP BY部门名
D) SELECT部门名,MAX(出生日期)FROM部门JOIN职工;
WHERE部门.部门号=职工.部门号GROUP BY部门名
(4)查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排序。正确的命令是( )。
A) SELECT部门名,COUNT(职工号)AS职工人数;
FROM部门,职工WHERE部门.部门号=职工.部门号;
GROUP BY部门名HAVING COUNT(*) = 10;
ORDER BY COUNT(职工号),ASC
B) SEIECT部门名,COUNT(职工号)AS职工人数;
FROM部门,职工WHERE部门,部门号=职工,部门号;
GROUP BY部门名HAVING COUNT(*)﹥=1 0;
ORDER BY COUNT(职工号) DESC
C) SELECT部门名,COUNT(职工号)AS职工人数;
FROM部门,职工WHERE部门.部门号=职工.部门号;
GROUPBY部门名HAVING COUNT(*)﹥=1 0;
ORDER BY职工人数ASC
D) SELECT部门名,COUNT(职工号)AS职工人数:
FROM部[],职工WHERE部门,部门号=职工.部门号;
GROUP BY部门名HAVING COUNT(*)﹥=10;
ORDER BY职工人数DESC
(5)查询所有目前年龄在35以上(不含35岁)的职工信息、(姓名、性别和年龄)的正确的命令是( )。
A) SELECT姓名,性别,YEAR(DATE())-YEAR(出生日期)年龄FROM职工;
WHERE年龄>35
B) SELECT姓名,性别,YEAR(DATE())-YEAR(出生日期)年龄FROM职工;
WHERE YEAR(出生日期)>35
C) SELECT姓名,性别,YEAR(DATE())-YEAR(出生日期)年龄FROM职工;
WHERE YEAR(DATE())-YEAR(出生日期)﹥35
D) SELECT姓名,性别,年龄=YEAR(DATE())-YEAR(出生日期)FROM职工;
WHERE YEAR(DATE())-YEAR(出生日期)﹥35
(6)为“工资”表增加一个“实发工资”字段的正确命令是( )。
A) MODIFY TABLE工资ADD COLUMN实发工资N(9,2)
B) MODIFY TABLE工资ADD FIELD实发工资N(9,2)
C) ALTER TABLE工资ADD COLUMN实发工资N(9,2)
D) ALTER TABLE工资ADD FIELD实发工资N(9,2)
- - 8 - - 第(7)一(8)题基于这样的3个表:学生表S、课程表C、学生选课表SC。其中:
S (S#, SN, SEX, AGE, DEPT)
C(C#,CN)
SC(S#, C#, GRADE)
S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,
GRADE为成绩。
(7)检索出选修课程“C4”的学生中成绩最高的学生的学号。正确的语句为( )。
A) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE>=(SELECT GRADE FROM SC WHERE C#=″C4”)
B) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE IN (SELECT GRADE FROM SC WHERE C#=″C4‟‟)
C) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE NOT IN(SELECT GRADE FROM SC WHERE C#=″C4‟‟)
D) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE>=ALL (SELECT GRADE FROM SC WHERE C#=″C4‟‟)
(8)检索出选修3门以上课程的学生总成绩(不统计不及格的学生),并要求按总成绩的升序排列出来。正确的SELECT语句为( )。
A) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
GROUP BY S# ORDER BY 2 HAVING COUNT(*)﹥=3
B) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
GROUP BY S# HAVING COUNT(*) ﹥=3ORDER BY 2
C) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
HAVING COUNT(*) ﹥=3 GROUP BY S# ORDER BY 2
D) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
ORDER BY 2 GROUP BY S# HAVING COUNT(*)﹥=3
(9)在SQL的SELECT查询的结果中,消除重复记录的方法是( )
A)通过指定主索引实现 B)通过指定惟一索引实现
C)使用DISTINCT短语 D)使用WHERE短语实现
(10)~(12)题使用如下的“教师”表和“学院”表:
“教师”表
职工号
11020001
11020002
11020003
10020004
10020005
10020006
姓名
肖天海
王岩盐
刘星魂
张月新
李明玉
孙民山
职称
副教授
教授
讲师
讲师
教授
教授
年龄
35
40
25
30
34
47
49
工资
2000.00
3000.00
1500.00
1500.00
2000.00
2100.00
2200.00
系名
英语
会计
工商管理
系号
01
02
01
03
01
02
03
钱无名 教授
10020007
“学院”表
系号
01
02
03
(10)使用SQL语句将一条新的记录插入学院表:
INSERT 学院(系号,系名) (〝04〞,〝计算机〞)
(11)使用SQL语句求“工商管理”系的所有职工的工资总和。
- - 9 - - SELECT——(工资)FROM教师;WHERE系号IN(SELECT系号FROM WHERE系名=〝工商管理〞)
(12)使用SQL语句完成如下操作(将所有教授的工资提高5%):
教师SET工资=工资*1.05 职称=〝教授〞
(13) – (14)题使用如下的“值班”表和“部门”表。
‘‘值班“表:
“值班”表:
值班号 姓名 职称 年龄 加班费 部门号
11020001 肖天海 员工 35 20.00 01
11020002 王岩盐 部长 40 30.00 02
1 1020003 刘星魂 临时工 25 15.00 01
11020004 张月新 临时工 30 15.00 03
11020005 李明玉 部长 34 20.00 01
11020006 孙民山 部长 47 21.00 02
11020007 钱无名 部长 40 22.00 03
“部门”表:
0l 生产部
02 财会部
03 公关部
(13)使用SQL语句将一条新的记录插入部门表:
INSERT
部门(部门号,部门名)
(“04”,“营销部”):.
(14)使用SQL语句求“公关部”的所有职工的加班费总和:
SELECT (加班费)
FROM值班
WHERE部门号IN
(SELECT部门号
FROM
WHERE部门名=“公关部”;
(15)在SQL中,插入、删除、更新命令依次是INSERT、DELETE和
SQ复习资料
一、选择题
1、必须运行在NT或2000 服务器版的SQL SERVER 2000的版本是( )
A、标准版 B、开发者版 C、个人版 D、三者都不是
2、SELECT语句属于SQL语言中的( )
A、DDL语言 B、DML语言 C、DCL语言 D、DQL语言
3、下列系统表中会出现在每个数据库中的主系统表是( )
A、sysdatabases B、sysobjects C、sysusers D、master
4、对一个重要的只读数据库,我们经常采用 ( )方法备份数据。
- - 10 - - A、完全数据库备份 B、差异备份
C、数据库文件和文件组备份 D、事务日志备份
5、下面能够备份数据库的角色是 ( )
A、服务器管理员 B、安全管理员 C、磁盘管理员 D、进程管理员
6、下列数据库中,包含所用用户数据库和模板数据库的数据库是 ( )
A、master B、model C、msdb D、pubs
7、用户自定义存储过程文件存储在( )文件中。
A、sysobjects B、sysusers C、sysdatabases D、sysindexes
8、在SQL SERVER中用于单行注释的是( )
A、/* */ B、&& C、-- D、@
9、事务日志文件的扩展名为 ( )
A、LDF B、NDF C、DBF D、MDF
10、下同哪种备份包含自上次备份以来一行修改几次的所有修改 ( )
A、完全数据库备份 B、差异备份
C、数据库文件和文件组备份 D、事务日志备份
11 、下面数据类型,在定义时需要给出数据长度的是( )
A、int B、varchar C、text D、money
12、在建立约束时即自动建立索引的是 ( )
A、建立检查约束时 B、建立外部键约束时
C、建立默认约束时 D、建立惟一性约束时
13、下面哪种文件类型不能导入SQL SERVER中?( )
A、WORD B、EXECL C、FoxPro D、TXT文档
14、SQL Server 2000是一个基于 ( )的关系数据库管理系统。
A B/S模式 B C/S模式 C SQL模式 D 以上都不是
15、 在SQL Server 2000中,一个数据库可最多创建( )个表。
A 1024 B 20亿 C 8092 D 256
16、 SQL Server 2000支持的整数型数据类型包括bigint、int、smallint、tinyint,其中int的数值范围为( )。
A) -263到263-1 B) -231到231-1 C) -215到215-1 D) 0到255
17 SQL Server 2000支持的货币型数据类型包括money、smallmoney,其中money的数值范围为( )。
A) -263到263-1 B) -231到231-1 C) -215到215-1 D) 0到255
18 假设表中某列的数据类型为varchar(100) ,而输入的字符串为"ahng3456",则存储的是()。
A) ahng3456,共8字节 B) ahng3456和92个空格
C) ahng3456和12个空格 D) ahng3456和32个空格
19 默认情况下,SQL SERVER 使用()作为增长速度的单位,最少增长()。
(1) A) KB B) MB C) B D) GB
(2) A) 1M B) 2M C) 1KB D) 2KB
20 在SQL SERVER 2000中,数据库创建后,可以增加或删除数据文件,但不能删除()。
A) 辅助数据文件 B) 主数据文件
C) 自建数据库的数据文件 D) 任何数据文件
21 SQL Server把所有的工作负荷分解为( )任务。
A) 服务器和客户端 B) 不同服务器之间
C) 所有客户端 D) 以上都不是
22 SQL Server 2000的文件包括: 主数据文件、辅助数据文件和( )。
- - 11 - - A) 索引文件 B) 日志文件
C) 备份文件 D) 数据库文件
23 ( )是指组成表的各列的名称及数据类型,也就是日常表格的"栏目信息"。
A) 表型 B) 记录 C) 字段 D) 关键字
24 ( )能够创建数据库。
A) 有CREATE DATABASE权限的用户 B) 任何SQL Server用户
C) 任何Windows用户 D) 任何混合用户
25 SQL Server 2000 客户端工具安装对硬盘空间的最低要求是( )MB。
A) 180MB B) 170MB C) 65MB D) 90MB
26 SQL Server 2000 完全安装对硬盘空间的最低要求是()MB。
A) 180MB B) 170MB C) 65MB D) 90MB
27 SQL Server 2000 采用的身份验证模式有( )
A) 仅WindowsNT身份验证模式 B) 仅SQL Server身份验证模式
C) 混合模式及仅WindowsNT身份验证模式 D) 以上都不对
28 以下( )不属于数据库对象
A) 表和视图 B) 数据类型和默认值 C) 触发器 D) 存储过程
29 下列( )不属于SQL Server 2000在安装时创建的系统数据库。
A) master B) model C) msdb D) userdb
30 数据库管理系统、操作系统、应用软件的层次关系从核心到外围分别是( )。
A.数据库管理系统、操作系统、应用软件 B. 操作系统、数据库管理系统、应用软件
C.数据库管理系统、应用软件、操作系统 D. 操作系统、应用软件、数据库管理系统
31下列哪个不是数据库系统必须提供的数据库控制功能( )。
A、安全性 B、完整性 C、并发控制 D、可移植性
32关系模型的完整性约束中,实体完整性规则是指关系中( )。
A.不允许有主行 B.属性值不允许为空
C.主键值不允许为空 D.外键值不允许为空
33 事务的原子性是指( )。
A. 事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
34 SQL Server中,为便于管理用户及权限,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为( )。
A.帐户 B.角色 C.登录 D. SQL Server用户
35在Transact-SQL中,使用INSERT命令添加数据,若需要添加一批数据应使用( )语句。
A.INSERT„VALUES B.INSERT„SELECT C.INSERT„DEFAULT D.A B C均可
36 “保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。”这是指数据的( )。
A.安全性 B.完整性 C.并发控制 D.恢复
37关系数据库中的视图属于4个数据抽象级别中的( )。
A.外部模型 B.概念模型 C.逻辑模型 D.物理模型
38关系数据库系统设计中,在数据库设计的( )阶段,需要将E-R模型转换为关系数据模型。
A.概念设计 B.物理设计 C.逻辑设计 D.运行阶段
39 SQL语言中最重要的也是使用最频繁的语句是( )。
A.SELECT B.INSERT C.UPDATE D.DELETE
40 与HAVING子句一起使用的子句是( )。
A.ORDER BY B.WHERE C.JOIN D.GROUP BY
- - 12 - - 41 SQL Server2000触发器主要针对下列语句创建( )。
A.SELECT.INSERT.DELETE B.SELECT.UPDATE.INSERT
C.INSERT.UPDATE.CREATE D.INSERT.UPDATE.DELETE
42 Transact-SQL对标准SQL的扩展主要表现为( )。
A.加入了程序控制结构和变量 B.加入了建库和建表语句
C.提供了分组(Group By)查询功能 D.提供了Min.Max等统计函数
43 有关存储过程的叙述中不正确的是( )。
A.SQL Server中定义的过程被称为存储过程
B.存储过程可以带多个输入参数,也可以带多个输出参数
C.可以用EXECUTE(或EXEC)来执行存储过程
D.使用存储过程可以减少网络流量
44.设有一个关系:DEPT (DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成 WHERE DNAME LIKE ( )
A. _ _ W _ % B. _ %W_ _ C. _W_ _ D. _W_ %
45 SQL基本表的创建中是通过( )实现参照完整性规则的。
A.主键子句 B.外键子句 C.检查子句 NULL
46在文件系统中,所具有的数据独立性是 ( )
A.系统独立性 B.物理独立性 C.逻辑独立性 D.设备独立性
47嵌入式SQL的预处理方式,是指 ( )
A.识别出SQL语句,加上前缀标识和结束标志 B.把嵌入的SQL语句处理成函数调用形式
C.对源程序进行格式化处理 D.把嵌入的SQL语句编译成目标程序
48 DBMS的并发控制子系统,保证了事务( )的实现
A.原子性 B.一致性 C.隔离性 D.持久性
49数据库的概念模型独立于( )。
A、具体的计算机和DBMS B、E-R图 C、信息世界 D、现实世界
50( )是存储在计算机内有结构的数据的集合。
A、数据库系统 B、数据库 C、数据库管理系统 D、数据结构
51层次型、网状型和关系型数据库划分的原则是( )。
A、记录长度 B、文件大小 C、联系的复杂程度 D、数据之间的联系
52数据库的( )是指数据库的正确性和相容性。
A、安全性 B、完整性 C、并发控制 D、备份
53层次型数据库结构是( )。
A、图形结构 B、树型结构 C、二维表 D、综合结构
54创建表之间的关系时,正确的操作是( )。
A.关闭当前打开的表 B.打开要建立关系的表
C.关闭所有打开的表 D.关闭与之无关的表
55有一个关系:学生 (学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于()
A.实体完整性约束 B.参照完整性约束
C.用户自定义完整性约束 D.关键字完整性约束
56 以下对SQL Server描述不正确的是( )。
A. 支持XML B. 支持用户自定义函数
C. 支持邮件集成 D. 支持网状数据模型
57 如果在SQL Server上运行一个非常大的数据库,为取得较好效果应选用安装( )。
A. 企业版 B. 标准版 C. 个人版 D. 开发版
58 语句“USE master GO SELECT * FROM sysfiles GO”包括( )个批处理。
- - 13 - - A. 1 B. 2 C. 3 D.4
59 SQL Server的字符型系统数据类型主要包括( )。
A. Int、money、char B. char、varchar、text
C. datetime、binary、int D. char、varchar、int
60 如果要在SQL Server中存储图形图像、Word文档文件,不可采用的数据类型是( )。
A. binary B. varbinary C. image D. text
61下面关于Timestamp数据类型描述正确的是:( )。
A. 是一种日期型数据类型 B. 是一种日期和时间组合型数据类型
C. 可以用来替代传统的数据库加锁技术 D. 是一种双字节数据类型
62 下列命令不能执行的是( )。
A. SELECT * FROM [select] B. SELECT * FROM @MyTable
C. SELECT * FROM [MyTable] D. SELECT * FROM MyTable
63 下面关于索引的描述不正确的是( )。
A. 索引是一个指向表中数据的指针 B. 索引是在列上建立的一种数据库对象
C. 索引的建立和撤消对表中的数据毫无影响 D. 表被撤消时将同时撤消在其上建立的索引
64 下面关于聚集索引和非聚集索引说法正确的是( )。
A. 每个表只能建立一个非聚集索引 B. 非聚集索引需要较多的硬盘空间和内存
C. 一张表上不能同时建立聚集和非聚集索引 D. 一个复合索引只能是聚集索引
65“Create Unique Index AAA On 学生表(学号)”将在学生表上创建名为AAA的( )。
A. 惟一索引 B. 聚集索引 C. 复合索引 D. 唯一聚集索引
66 以下软件产品中,是数据库管理系统的是( )。
A. PowerBuilder B. DB2 C. Delphi D. Visual Basic
67 Delphi是( )。
A. 数据库软件 B. 图形处理软件
C. 系统软件 D. 应用开发软件
68 SQL Server2000标准版不支持的操作系统是( )。
A. Windows 2000 Server B. Windows NT Server
C. Windows98 D. Windows 2000 Advanced Server
69 如果希望完全安装SQL Server2000,则应选择( )。
A. 典型安装 B. 最小安装 C. 自定义安装 D. 仅连接
70要想使SQL Server2000数据库管理系统开始工作,必须首先启动( )。
A. SQL Server服务器 B. 查询分析器
C. 网络实用工具 D. 数据导入和导出程序
71 用于配置客户端网络连接的工具是( )。
A. 企业管理器 B. 客户端网络实用工具
C. 查询分析器 D. 联机帮助文档
72当数据库损坏时,数据库管理员可通过何种方式恢复数据库( )。
A. 事务日志文件 B. 主数据文件
C. DELETE语句 D. 联机帮助文件
73 SQL Server2000系统中的所有系统级信息存储于哪个数据库( )。
A. master B. model C. tempdb D. msdb
74 下面关于tempdb数据库描述不正确的是( )。
A. 是一个临时数据库 B. 属于全局资源
C. 没有权限限制 D. 是用户建立新数据库的模板
75下列标识符可以作为局部变量使用( )。
A. [@Myvar] B. My var C. @Myvar D. @My var
- - 14 - - 76 Transact-SQL支持的程序结构语句中的一种为( )。
A. Begin…End B. If…Then…ELSE
C. Do Case D. Do While
77 不属于SQL Server2000系统全局变量的是( )。
A. @@Error B. @@Connections
C. @@Fetch_Status D. @Records
78 属于事务控制的语句是( )。
A. Begin Tran、Commit、RollBack
B. Begin、Continue、End
C. Create Tran、Commit、RollBack
D. Begin Tran、Continue、End
79 下列SQL Server2000语句中出现语法错误的是( )。
A. DECLARE @Myvar INT B. SELECT * FROM [AAA]
C. CREATE DATABASE AAA D. DELETE * FROM AAA
80 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。
A. 插入 B. 修改 C. 删除 D. 查询
81关于数据描述对的是( )
A数据是数字与符号的集合 B程序也可称为数据
C描述事物的符号记录称为数据 D图形图像等类型属于多媒体范围,不算数据
82数据库的定义不对的是( )
A数据仓库 B 可共享的数据集合
C有较小冗余的数据集合 D 较高独立性的数据集合
83数据库管理系统是( )。
A 可供一般用户使用的系统 B 一个软件硬件相结合的系统
C 供管理员使用的系统 D 介于用户与操作系统间的一个软件
84关于数据库的数据控制功能不包括( )
A数据库恢复 B安全性控制 C 分布式控制 D并发控制
85数据模型是( )
A表示实体间联系的模型 B现实世界数据的描述
C用表来表示 D信息模型的具体化
86进行自然联接运算的两个关系必须具有( )
A相同属性个数 B 公共属性 C 相同关系名 D 相同关键字
87 DB、DBMS和DBS三者间的关系是( )
A DB包括DBMS和DBS B DBS包括DB和DBMS
C DBMS包括DBS和DB D DBS与DB和DBMS无关
88 SQL的查询语句的WHERE子句中,关于空值对的是()
A字段=NULL B 字段<>NULL C 字段 IS NULL D 字段 NOT IS NULL
89 关于关系系统不正确的说法是( )
A 是一个软件系统 B是RDBMS C 支持关系模型的系统 D 支持表结构的系统
90 以下的英文缩写中表示数据库管理系统的是( )。
A.DB B.DBMS C.DBA D.DBS
91 DBMS是( )。
A. 操作系统的一部分 B.一种编译程序
C.在操作系统支持下的系统软件 D.应用程序系统
92 SQL语言中,删除一个表的命令是( )
- - 15 - - A. DELETE B. DROP C. CLEAR D. REMOVE
93 ( )是按照一定的数据模型组织的,长期存储在计算机内,可为多个用户共享的数据的聚集。
A.数据库系统 B.数据库 C.关系数据库 D.数据库管理系统
94 ( )处于数据库系统的核心位置。
A.数据模型 B.数据库 C.数据库管理系统 D.数据库管理员
95 ( )是数据库系统的基础。
A.数据模型 B.数据库 C.数据库管理系统 D.数据库管理员
96 数据管理技术发展阶段中,文件系统阶段与数据库系统阶段的主要区别之一是数据库系统( )。
A.有专门的软件对数据进行管理 B.采用一定的数据模型组织数据
C.数据可长期保存 D.数据可共享
97 关系数据模型通常由3部分组成,它们是( )。
A. 数据结构、数据通信、关系操作 B. 数据结构、关系操作、完整性约束
C. 数据通信、关系操作、完整性约束 D. 数据结构、数据通信、完整性约束
98 要想成功地运转数据库,就要在数据处理部门配备( )。
A.部门经理 B.数据库管理员 C.应用程序员 D.系统设计员
99下列说法不正确的是( )。
A.数据库避免了一切数据重复 B.数据库减少了数据冗余
C.数据库数据可为经DBA认可的用户共享 D.控制冗余可确保数据的一致性
100 所谓概念模型,指的是( )。
A.客观存在的事物及其相互联系 B.将信息世界中的信息数据化
C.实体模型在计算机中的数据化表示D.现实世界到机器世界的一个中间层次,即信息世界
101 在概念模型中,将实体所具有的某一特性称为( )。
A.外码 B.候选码 C.属性 D.实体型
102 在数据库技术中,实体-联系模型是一种( )。
A. 逻辑数据模型 B. 物理数据模型 C. 结构数据模型 D. 概念数据模型
103 一个学生可以同时借阅多本图书,一本图书一次只能由一个学生借阅,学生和书之间为( )的联系。
A.一对一 B.一对多 C.多对多 D.多对一
104 一个仓库可以存放多种零件,每种零件可以存放在不同的仓库中,仓库和零件之间为( )的联系
A.一对一 B.一对多 C.多对多 D.多对一
105 E-R图中的联系可以与()实体有关。
A.0个 B.1个 C.一个或多个 D.多个
106用E/ R图表示学生选课,图中正确的是()。
- - 16 - -
107下列关于数据库运行和维护的叙述中,( )是正确的。
A.只要数据库正式投入运行,标志着数据库设计工作的结束。
B.数据库的维护工作就是维护数据库系统的正常运行。
C.数据库的维护工作就是发现错误,修改错误。
D.数据库正式投入运行标志着数据库运行和维护工作的开始。
108 DBMS对数据库的维护功能主要通过( )实用程序实现。
A.数据装载程序 B.备份程序
C.文件重组织程序 D.性能监控程序
109下面( )不是数据库系统必须提供的数据控制功能。
A.安全性 B.可移植性 C.完整性 D.并发控制
110( )是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位
A.程序 B.命令 C.事务 D.文件
111 事务是数据库操作的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于( )状态。
A.安全性 B.一致性 C.完整性 D.可靠性
112多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一样使用它,为此,数据库系统必须进行( )。
A.安全性控制 B.完整性控制 C.并发控制 D.可靠性控制
113解决并发操作带来的数据不一致性问题普遍采用( )。
A.封锁 B.恢复 C.存取控制 D.协商
114 在SQL Server中,有关页的叙述中正确的是( )。
A.页是除行外的最小数据单位
B.一个页有8KB
C.表中的行不能跨页存放,一行的数据必须在同一个页上
D.8个连续的页称为1个簇
115 以下关于SQL语句的书写准则中不正确的是( )。
A. SQL语句对大小写敏感,关键字需要采用大写形式
B. SQL语句可写成一行或多行,习惯上每个子句占用一行
C. 关键字不能在行与行之间分开,并且很少采用缩写形式
D. SQL语句的结束符为分号“;”
116 对于数据库的管理,SQL Server的授权系统将用户分成四类,并将它们按权限大小分层,其中- - 17 - - 权限最大的是( )
A 一般用户 B 系统管理员 C 数据库拥有者 D 数据库对象拥有者
117 使用SQL语句进行查询操作时,若希望查询结果中不出现重复元组,应在SELECT子句中使用( )保留字。
A. UNIQUE B.ALL C.EXCEPT D.DISTINCT
118 在以下SELECT 语句的子句中,放在最后的应该是( )子句。
A.GROUP BY B.HAVING C.WHERE D.ORDER BY
119 若要修改基本表中某一列的数据类型,需要使用ALTER语句中的( )子句。
A. DELETE B. DROP C. MODIFY D. ADD
120 向基本表中增加一个新列后,原有元组在该列上的值是( )。
A.TRUE B.FALSE C.空值 D.不确定
121 查询中需要统计元组的个数时,应使用( )函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
122 查询中需要统计某列中值的个数应使用( )函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
123 若用如下的SQL语句创建一个student表:
CREATE TABLE student( NO CHAR(4) NOT NULL,
NAME CHAR(8) NOT NULL,
SEX CHAR(2),
AGE SMALLINT );
可以插入到student表中的是( )。
A.('1031','曾华',男,23) B.('1031','曾华',NULL,NULL)
C.(NULL,'曾华','男',23) D.('1031',NULL,'男',23)
第126题到第128题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩
124 检索学生姓名及其所选修课程的课程号和成绩,正确的SELECT语句是( )。
A. SELECT ,SC.C#,
FROM S WHERE S.S#=SC.S#;
B. SELECT ,SC.C#,
FROM SC WHERE S.S#=;
C. SELECT ,SC.C#,
FROM S,SC WHERE S.S#=SC.S#;
D. SELECT ,SC.C#, FROM S,SC;
125 检索选修课程“C2”的男生中的最高成绩,正确的SELECT语句是( )。
A. SELECT MAX(GRADE) FROM SC
WHERE CN='C2’ AND SEX='男';
B. SELECT MAX(GRADE) FROM SC,C,S
WHERE CN=‘C2‘ AND SEX=’男‘;
C. SELECT MAX(GRADE) FROM SC,S
WHERE SC.C#=C.C# AND CN=’C2‘ AND SEX=’男‘;
D. SELECT MAX(GRADE) FROM SC,C,S
WHERE SC.C#=C.C# AND SC.S#=S.S# AND CN='C2' AND SEX='男';
- - 18 - - 126 检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是( )。
A. SELECT S#,SUM(GRADE) FROM SC
WHERE GRADE>=60
GROUP BY S#
ORDER BY 2 DESC
HAVING COUNT(*)>=4
B. SELECT S#,SUM(GRADE)
FROM SC
WHERE GRADE>=60
GROUP BY S#
HAVING COUNT(*)>=4
ORDER BY 2 DESC
C. SELECT S#,SUM(GRADE)
FROM SC
WHERE GRADE>=60
HAVING COUNT(*)>=4
GROUP BY S#
ORDER BY 2 DESC
D. SELECT S#,SUM(GRADE)
FROM SC
WHERE GRADE>=60
ORDER BY 2 DESC
GROUP BY S#
HAVING COUNT(*)>=4
127 SQL Server提供了4种通配符,?、%、[ ]、和^。若要表示一个4位的字符串,该字符串以T开头,后四位是1到5的数字,正确的表示方法是()。
A.'T????' B.'T%' C.'T[1-5][1-5][1-5][1-5]'
D.'T[1,2,3,4,5][1,2,3,4,5][1,2,3,4,5][1,2,3,4,5]'
128 在Transact-SQL中,查询时将student表的bh列标题命名为“编号”的正确操作是( )。
A.SELECT bh 编号 B. SELECT 编号 bh
FROM student FROM student
C.SELECT bh=编号 D. SELECT bh AS 编号
FROM student FROM student
第129题到第131题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE成绩
129 查询所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是( )。
A. SELECT SN,AGE,SEX FROM S
WHERE AGE>(SELECT AGE FROM S WHERE SN='王华')
B. SELECT SN,AGE,SEX FROM S
WHERE AGE>ANY
( SELECT AGE FROM S WHERE SN='王华')
- - 19 - - C. SELECT SN,AGE,SEX FROM S
WHERE AGE>ALL
( SELECT AGE FROM S WHERE SN='王华')
D. SELECT SN,AGE,SEX FROM S
WHERE AGE>SOME
( SELECT AGE FROM S WHERE SN='王华')
130查询选修了课程号为“C2”的学生中成绩最高的学生的学号,不正确的SELECT语句是( )。
A. SELECT S# FROM SC WHERE C#='C2' AND GRADE>=ALL
( SELECT GRADE FROM SC WHERE C#='C2')
B. SELECT S# FROM SC WHERE C#='C2' AND GRADE IN
( SELECT MAX(GRADE) FROM SC WHERE C#='C2')
C. SELECT S# FROM SC WHERE C#='C2' AND GRADE=
( SELECT MAX(GRADE) FROM SC WHERE C#='C2')
D. SELECT S# FROM SC WHERE C#='C2' AND GRADE>=ANY
( SELECT GRADE FROM SC WHERE C#='C2')
131查询所有没有被学生选过的课程的名称,正确的SELECT语句是( )。
A. SELECT FROM C JOIN SC ON SC.C#=C.C# WHERE C.C# IS NULL
B. SELECT FROM C LEFT JOIN SC ON SC.C#=C.C# WHERE SC.C# IS NULL
C. SELECT FROM SC LEFT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
D. SELECT FROM SC RIGHT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
132 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )
A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb
133在SQL Server中,以下( )约束属于域完整性约束。
A.DEFAULT B.CHECK C.NULL D.FOREIGN KEY
134有关默认对象与默认约束的叙述中正确的是( )。
A.默认约束是嵌入到表的结构中,默认对象是独立于表的
B.删除表时默认约束与默认对象同时被删除
C.默认约束能实现的功能默认对象也能实现
D.一个默认对象可以绑定到多个列上
135 “保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。”这是指数据的( )。
A.安全性 B.完整性 C.并发控制 D.恢复
136 关系数据库中,实现实体之间的联系是通过表与表之间的()
A.公共索引 B.公共存储 C.公共元组 D.公共属性
137 在数据系统中,对存取权限的定义称为()。
A.命令 B.授权 C.定义 D.审计
138 SQL Server 2000提供了4层安全防线,其中“SQL Server通过登录账号设置来创建附加安全层。用户只有登录成功,才能与SQL Server建立一次连接。”属于( )。
A. 操作系统的安全防线 B. SQL Server的运行安全防线
C. SQL Server数据库的安全防线 D. SQL Server数据库对象的安全防线
139 下列关于数据文件与日志文件的描述中,正确的是( )。
A.一个数据库必须有三个文件组成:主数据文件、次数据文件和日志文件
B.一个数据库可以有多个主数据库文件
C.一个数据库可以有多个次数据库文件
D.一个数据库只能有一个日志文件
140为了防止一个用户的工作不适当地影响另一个用户,应该采取( )
A.完整性控制 B.安全性控制 C.并发控制 D.访问控制
- - 20 - - 141数据库中存放两个关系:教师(教师编号,姓名)和课程(课程号,课程名,教师编号),为快速查出某位教师所讲授的课程,应该( )
A 在教师表上按教师编号建索引 B 在课程表上按课程号建索引
C 在课程表上按教师编号建索引 D 在教师表上按姓名建索引
142 如果要修改表的结构,应该使用SQL语言的命令( )
A UPDATE TABLE B MODIFY TABLE
C ALTER TABLE D CHANGE TABLE
143 已知职工和职工亲属两个关系,当职工调出时,应该从职工关系中删除该职工的元组,同时在职工亲属关系中删除对应的亲属元组,在SQL语言中,定义这个完整性约束的短语是( )
A ON DELETE ALL B ON DELETE RESTRICT
C ON DELETE SET NULL D ON DELETE CASCADE
144 安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库被删除后,不影响系统的正常运行,这个数据库是( )
A master数据库 B model数据库
C tempdb数据库 D pubs数据库
145有一个网络数据库应用系统,其中一台计算机A存有DBMS软件、所有用户数据和应用程序,其余各节点作为终端通过通信线路向A发出数据库应用请求,这种方式属于( )
A.集中式数据库体系结构 B.主从式数据库体系结构
C.客户机/服务器数据库体系结构 D.分布式数据库体系结构
146已知关系R如图1所示,可以作为R主码的属性组是( )
R
A
1
1
2
1
1
B
2
3
4
4
3
C
3
4
5
3
4
5
D
4
5
6
4
7
6 3 4
图1
A ABC
B ABD
C ACD
D BCD
147已知成绩关系如图2所示。
执行SQL语句:
SELECT COUNT(DISTINCT学号)
FROM成绩
WHERE分数>60
查询结果中包含的元组数目是( )
成绩
学号 课程号 分数
S1 C1 80
S1 C2 75
- - 21 - - S2 C1 null
S2 C2 55
S3 C3 90
图2
A 1
B 2
C 3
D 4
148已知关系:厂商(厂商号,厂名) PK=厂商号
产品(产品号,颜色,厂商号) PK=产品号,FK=厂商号
假设两个关系中已经存在如图4所示元组:
厂商 产品
厂商号 厂名产 产品号 颜色 厂商号
C01 宏达 P01 红 C01
C02 立仁 P02
C03 广源
图4
若再往产品关系中插入如下元组:
I(P03,红,C02) II(P01,蓝,C01)
III(P04,白,C04) IV(P05,黑,null)
能够插入的元组是( )
A I,II,IV B I,III C I,II D I,IV
二、填空题
1. SQL Server2000采用( )计算模型,通过中央服务器集中存储数据资源。
2. SQL Server2000采用的结构化查询语言称为 ( )。
3. SQL Server2000客户机传递到服务器上的一组完整的数据和SQL语句称为 ( )。
4. SQL Server2000的datetime数据类型主要用来存储( )和( )的组合数据。
5. 函数LEFT(‘cbcdef’,2)的结果是 ( )。
6. SQL Server2000中的整数类型分别为tinyint、smallint、int、和bigint,它们分别占用( )、( )、( )和( )个存储字节。
7. SQL Server2000提供的最常用的管理工具是( )和( )。
8. 在一个已存在数据的表中增加不带默认值的列,一定要保证所增加的列允许( )值。
9. 一个局部变量的使用范围局限于一个( )内,即两个( )语句之间。
10. SQL Server2000中为局部变量赋值的语句是( )和 ( ),( )可以一次给多个变量赋值,而 ( ) 只能给一个变量赋值。
11. 触发器是一种特殊的 ( ) ,基于 ( )而创建,主要用来保证数据的完整性。
12. 局部变量的开始标记为( ),全局变量的开始标记为( )。
13. 在SQL Server2000中,每个程序块的开始标记为关键字( ),结束标记为关键字( )。
14. 在循环结构的语句中,当执行到关键字( )后将终止整个语句的执行,当执行到关键字( )后将结束一次循环体的执行。
15.判断使用FETCH语句读取数据是否成功的全局变量为( )。
16. 要访问SQL Server2000数据库服务器,用户必须提供正确的( )和( )。
- - 22 - -
黄 C03 17. 打开和关闭游标的语句关键字分别为( )和( )。
18. 在SQL Server2000中,一个事务是一个( )的单位,它把必须( )或( )的一组操作捆绑在一起。
19. 建立一个存储过程的语句关键字为( ),执行一个存储过程的语句关键字为( )。
20. 单行或行尾注释的开始标记为( ),多行注释的开始标记为( ),结束标记为( )。
21. SQL Server2000与Windows 2000等操作系统完全集成,可以使用操作系统的用户和域账号作为数据库的( ) 。
22. 安装SQL Server2000时需要以本地 ( )身份登录操作系统。
23. SQL Server2000服务管理器程序的主要作用是( )、暂停、( )服务器。
24. SQL Server2000主数据文件、次数据文件和事务日志文件默认的扩展名分别为( )、 ( )和( )。
25. SQL Server2000的数据库分为( )和( )两种类型。
26. 每个SQL Server2000数据库下都包括 ( )、( )、tempdb 和 msdb 四个系统数据库。
27. 一般可以使用( )命令来标识Transact-SQL批处理的结束。
28. varchar数据类型可以自动去掉字段或变量尾部的 ( )以节省空间。
29. 在SQL Server2000中,通常使用( )数据类型来表示逻辑数据。
30. 函数Right(‘abcdef’,2)的结果是( ) 。
31. 在SQL Server2000中主要是通过使用( )运行Transact-SQL语句。
32.( )系统数据库主要用来进行复制、作业调度和管理报警等活动。
33. SQL Server2000支持两种形式的变量,即 ( ) 和( )。
34. 在SQL Server2000中,一个事务处理控制语句以关键字( )开始,以关键字( )或( )结束。
35. 触发器是一种特殊的存储过程,它可以在对一个表上进行插入、删除和( )操作中的任一种或几种操作时被自动调用执行。
36. CHECK约束被称为检查约束,UNIQUE约束被称为( )约束。
37. 找回被删除表的惟一方法是事先做好数据库的( )工作。
38. 可以将视图理解为存储在SQL Server数据库中的一条经过预编译的( )语句。
39. 常见的SQL Server2000的版本一般包括( )、 标准版 、( )、开发版等。
40. SQL Server中的数据类型主要包括( )、 字符 、( )、二进制、位和双字节等类型。
41. Microsoft SQL Server2000是运行在( )操作系统平台上的、逻辑模型为( )型数据库管理系统。
42. 对表中记录的维护工作主要有增加、( )和( )操作,均可通过企业管理器或Transact-SQL语句完成。
43. 在Transact-SQL语句中需要把日期时间型数据常量用( )括起来。
44. 使用create database命令定义一个数据库,定义其数据文件以关键字( )开始,定义日志文件以关键字( )开始。
45. 修改数据库定义的命令关键字为( ),删除整个数据库的命令关键字为( )。
46. 在SQL Server中,打开一个数据库使之成为当前库,有( )种方法,其中之一使用的命令关键字为( )。
47. 在SQL Server中,通常不需要用户建立索引,而是通过使用( )约束和( )约束,由系统自动建立索引。
48. 定义局部变量的语句关键字为( ),被定义的各变量之间必须用( )字符分开。
49. 在SQL Server中,每个程序块的开始标记为关键字( ),结束标记为关键字( )。
- - 23 - - 50. 每次执行使用游标的取数、修改或_删除_操作的语句时,能够对表中的( )个记录进行操作。
51. 每个存储过程可以包含( )Transact-SQL语句,可以在过程体中的任何地方使用( )语句结束过程的执行,返回到调用语句后的位置。
52. 对用户授予和收回数据库操作的语句关键字分别为( )和( )。
53. 在授予用户访问权限的语句中,所给表名选项以关键字( )开始,所给用户名选项以关键字( )开始。
54. 在收回用户访问权限的语句中,所给表名选项以关键字( )开始,所给用户名选项以关键字( )开始。
55. SQL Server2000服务器可以被多台客户机访问,数据库服务器仅返回客户端应用程序所需要的数据,这样做的好处是可以减少( )。
56. SQL Server2000提供了动态的自我管理机制,能够自动增大或缩小数据库所占用的( )。
57.在网络环境下,当多个用户同时访问数据库时,就会产生并发问题,SQL Server2000是利用
( )完成并发控制的。
58. 如果在Windows NT/2000上安装SQL Server2000,需要事先设置至少一个( )。
59. 默认情况下,SQL Server2000服务器的名字为( )。
60. 在网络多用户环境下,在停止SQL Server2000服务之前,最好先执行( )操作。
61. SQL Server2000将数据组织成用户可以看见的逻辑组件,而在磁盘上则作为( )实现。
62. 常用的数据库对象主要包括缺省、约束、用户、图表、用户自定义数据类型、( )、索引、( )、触发器、( )等。
63. SQL Server2000中的数据类型通常是指字段列、存储过程参数和( )的数据特征。
64. 在SQL Server2000中,通常使用( )数据类型来表示逻辑数据。
65. SQL Server2000中的整数类型包括( )、( )、( )和( )四种。
66. 如果希望修改数据库的名字,可以使用的系统存储过程是( )。
67. 数据库备份和恢复的Transact-SQL语句分别是( )和( )。
68. SQL Server2000中引入索引主要是为了加( )速度,也可保证数据的惟一性。
69. 索引可以加速selcet语句中Order By和( )选项的执行速度。
70.
71.
72.
73.
索引一经创建就完全由SQL Server2000系统 ( ) 选择和维护。
索引会影响对基本表的( )、( )和( )等操作的速度。
从是否改变基本表记录的物理位置角度可将索引分为( ) 和( ) 索引两类。
聚集索引与非聚集索引相比,查询速度更( ) 。
74. 注释是一些说明性的文字,而不是 ( ) 语句,不参与程序的编译。
75. 索引可以由系统根据约束条件自动建立,也可以由用户通过命令或菜单方式建立,但它的( )和( )将根据需要由系统自动实现,无须用户过问。
76. 基本表中的记录数越( ),每条记录占用的字节数越( )时,使用索引就越有利。
77. 创建索引的命令关键字为( ),删除索引的命令关键字为( )。
78. 在索引命令中使用关键字CLUSTERED或NOCLUSTERED分别表示将建立的是( )或( )索引。
79. 在基本表的某个列上建立索引,可以使基本表中的所有记录按该列值的( )排列。
80. 当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个( )唯一和( )的索引。
81. 当指定基本表中某一列或若干列为UNIQUE约束时,则系统将在这些列上自动( )一个唯一值( )。
82. 若规定基本表中某一列或若干列为非空和唯一值双重约束,则这些列就是该基本表的- - 24 - - ( ),若只规定为唯一值约束,则( )空值重复出现。
83. 在SQL Server2000中,前后相邻的语句之间可以使用( )、( )或( )字符分开。
84. 在条件结构的语句中,关键字IF和ELSE之间和ELSE之后,可以使用( )语句,也可以使用具有( )格式的语句块。
85. 声明游标语句的关键字为( ),该语句必须带有( )子句。
86. 使用游标对基本表进行修改和删除操作的语句中,WHERE选项的格式为“( )”。
87. 在一个存储过程定义的AS关键字前可以定义该过程的( ),AS关键字之后为该过程的( )。
88. 创建和删除一个触发器的语句关键字为( )和( )。
89. 在一个表中最多只能有一个关键字为( )的约束,关键字为FOREIGN KEY的约束可以出现( )次。
90. CHECK约束被称为( )约束,UNIQUE约束被称为( )约束。
91. 使用一种约束时,可以使用关键字( )和标识符( )的选项命名该约束,也可以省略该选项由系统自动命名,因为用户很少再使用其约束名。
92. 当一个表带有约束后,执行对表的各种( )操作时,将自动( )相应的约束,只有符合约束条件的合法操作才能被真正执行。
93. 在SQL Server2000中,数据库的安全机制分为4个等级,分别为客户端( )的安全、数据库的( )安全、数据库使用安全和数据库对象的使用安全。
94.数据库系统中传统的三种数据模型有层次模型、( )和( )。
95.关系模式的三类完整性是( )、( )和用户自定义的完整性。
96.聚合函数( )的语义是不重复列的计数。
97.视图是定义在( )之上的虚表,它实质是在内存中经过编译的( )语句。
98.向已存在的表的某一列或某几列添加主键约束,表中已有的数据在这几列上需要满足两个条件:( ) 。
99. 数据是信息的符号表示或称载体;信息是数据的内涵,是数据的语义解释。例如“世界人口已达到20亿”,这是( )。
100. 关系数据库是采用( )作为数据的组织方式。
101. 当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的( )。
102. 联系既可以存在不同的实体之间,还可以在( )存在。
103. ( )是用于管理SQL Server对象的方便而实用的图形化工具,它是SQL Server工具中最重要的一个,通过它可以对SQL Server数据库进行管理和操作。
104. ( )是一个可以交互执行SQL语句和脚本的图形工具,它的主要功能是编辑、编译和执行T-SQL语句,并显示命令结果。
105. ( )用于监视与分析SQL Server 活动、SQL Server服务器的网络进出流量或发生在SQL Server上的事件。
106.( )是指保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。
107.数据库的存取控制机制主要包括两部分:( )和进行权限检查。
108.安全认证是指数据库系统对用户访问数据库系统时所输入的( )和( )进行确认的过程。
109.SQL Server的用户或角色分为二级:一级为( );另一级为( )。
Server有一个默认的登录账号( ),在SQL Server系统中它拥有全部权限,可以执行所有的操作。
111. SQL Server 2000有两种安全认证模式,即( )和( )。
- - 25 - - 112.求0至9随机整数的表达式是( )
113.求一个字符串的第四个字符的asc码值的表达式 ( )
114.求从现在开始115天后的时间表达式( )。
115.( )是一种常用的改善数据库性能的技术。
116. 使用create database命令定义一个数据库,包括定义( )文件和( )文件两个部分。
三、 名词解释、简答
1.数据库
2.表
3.索引。
4.存储过程
5. DTS
6.如何验证SQL Server系统的正确安装结果?
7.创建数据库的3种方法
8.创建索引的3种方法
9.当备份某个数据库时,SQL Server执行哪些操作
10.为什么说SQL Server是关系系统,试举例说明。
有何优缺点?
四、判断题
1.安装Microsoft SQL Server 2000 企业版对操作系统的最低要求可以是Microsoft Windows 2000
Professional。( )
2.每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。( )
3.认证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL Server系统的认证模式。( )
4.在创建表时,不能指定将表放在某个文件上,只能指定将表放在某个文件组上。如果希望将某个表放在特定的文件上,那么必须通过创建文件组来实现。( )
5.当用户定义的数据类型正在被某个表的定义引用时,这些数据类型不能被删除。( )
6.在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。( )
7.索引越多越好。( )
8.视图本身没有数据,因为视图是一个虚拟的表。( )
9.创建触发器的时候可以不是表的所有者或数据库的所有者。( )
10.在一个表上只能创建一个主键。 ( )
11.建立索引可以提高对表的的更新速度。 ( )
s xp系统上应安装sql server 2000 个人版。 ( )
13.表中可以有多个外键。( )
14.存储过程由应用程序调用,在客户机上执行。 ( )
server 2000 中不存在其它dbms系统中的逻辑数据类型。 ( )
16.表的数据行唯一特性可以由主键来实现。 ( )
17.数据文件只能是一个文件组的成员。 ( )
18.只要得到了sql server服务器的登陆帐号及密码, 就可以访问其管理的数据库中的数据。
( )
19.创建视图时不能参考临时表. ( )
20.在一个表上只能建一个聚簇索引. ( )
21.在一个表上可以由多个列组合作为一个主键。 ( )
22.用户不能定义全局变量,但可以修改。 ( )
23.主键是不能为null的。 ( )
24.事务日志文件不属于任何文件组。 ( )
- - 26 - - 25.要访问数据库中的数据,必须得到访问该数据的功能许可。 ( )
server 的导入功能是将原来备份的数据,再重新还原到数据库中。 ( )
27.在数据库系统中,数据独立性指数据之间的相互独立,互不依赖。( )
28.关系型数据库系统中,无论设计关系多么合理,也一定存在数据冗余。( )
29.表中任意两行的值不能相同,任意两列的值也不能相同。( )
30.如果A表中有相对于B表的外键,则B表不能直接删除,一定要A表删除后B表才能删除。( )
31.表上的主键可以由多个列组成,一个表上也可以创建多个主键。( )
Server用户不能定义全局变量,但可以查询全局变量。( )
Server的事务日志文件记录了所有对数据库访问的操作。( )
34.触发器和引发该触发器的操作是作为一个事务处理的。( )
35.数据库系统中,用户是最重要的。 ( )
36.数据库是整个数据库系统的基础。 ( )
37.数据库中表有数据存储,视图也有数据存储。 ( )
38.在数据表定义时设置外键是数据库的安全性控制之一。 ( )
39.一个表中可以同时存在多个候选索引. ( )
40.唯一性约束(unique)可以自动创建主键. ( )
41.在外键上一般应考虑建立索引。 ( )
42. 关系图实现关系模型中的域完整性。 ( )
43.由同一张E-R生成关系模型的关系个数是唯一的。 ( )
44. 局部临时表只能对创建他的用户是可见的。( )
45.实体的多对多联系必须形成一个独立的关系。( )
46. 在表中可以建立多个标识列(identity). ( )
47.Sql标准语言是采用集合操作。( )
五、根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业
varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
procedure xxk3
as
begin
select 学号,avg(成绩) as 平均成绩
from score
group by 学号
end
procedure xxk4
(
@a char(8),@b varchar(10),@c numeric(5,2)
)
as
begin
update score
set 成绩=@c
where 学号=@a and 课程名=@b
- - 27 - - end
procedure xxk5
(
@a char(8),@b varchar(10),@c numeric(5,2)
)
as
begin
insert into score
values(@a,@b,@c)
end
procedure xxk6
(
@a char(8),@b varchar(10)
)
as
begin
delete from score
where 学号=@a and 课程名=@b
end
5. create table students (
学号 char(8) primay key,
姓名 varchar(8),
年龄 int,
专业 varchar(20),
入学日期 datetime
)
6. ALTER DATABASE AAA
MODIFY FILE (
NAME = AAA_data,
SIZE = 5,
MAXSIZE=10 )
7. 假设Students表中已存在大量学生记录,求所有“计算机软件”专业学生的平均年龄,如果平均年龄大于19则显示“平均年龄超过19”,否则显示“平均年龄没有超过19”。
8. SELECT *
FROM Students
WHERE DATEPART(year,入学日期) =DATEPART(year,GETDATE())
- - 28 - - procedure xxk3
as
begin
select 学号,max(成绩)
from score
group by 学号
end
10. DECLARE @MyNO CHAR(8)
SET @MyNO='20030001'
IF (SELECT 专业 FROM Students WHERE 学号=@MyNO)='计算机软件'
BEGIN
SELECT AVG(成绩) AS 平均成绩
FROM Score
WHERE 学号=@MyNO
END
ELSE
PRINT '学号为' +@MyNO+'的学生不存在或不属于软件专业'
GO
11. declare @a numeric(5,2)
set @a=(select avg(成绩) from score)
select *
from score
where 成绩>=@a
12. declare @a numeric(5,2),@b numeric(5,2)
set @a=(select max(成绩) from score)
set @b=(select min(成绩) from score)
print @a-@b
procedure xxk2
as
begin
select x.学号,x.姓名,x.专业,count(*) as 门数
from students x,score y
where x.学号=y.学号
group by x.学号,x.姓名,x.专业
end
六、 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:
学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,
专业 char(10),年级 int)
课程(课程号 char(4),课程名 char(10),课程学分 int)
选课(学生号 char(7),课程号 char(4),成绩 int)
- - 29 - - 按分析下列所给程序语句的相应功能。
1.select *
from 学生
where exists (select *
from 选课
where 学生.学生号=选课.学生号
group by 选课.学生号 having count(*)=3
)
2.select 专业,count(*) as 专业人数
from 学生
group by 专业
order by 专业人数 desc
3.select 专业,性别,count(*) as 人数
from 学生
group by 专业,性别
order by 专业
4.select x.*,课程名,课程学分,成绩
from 学生 x,课程 y,选课 z
where x.学生号=z.学生号 and y.课程号=z.课程号
5.select *
from 学生
where not exists (select y.课程号
from 学生 x inner join 选课 y on x.学生号=y.学生号
where x.姓名=@a and not exists (select *
from 选课
where 学生.学生号=选课.学生号 and y.课程号=选课.课程号
)
)
七、在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:
商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)
商品表2(商品代号 char(8),产地 char(6),品牌 char(6))。
按照下列所给的每种功能写出相应的查询语句。
1. 查询品牌为”Hair”所用商品的商品代码、数量、单价
2.商品库中查询出每种商品的总价值,并按降序排列出来。
3.从商品库中查询出数量最多的一种商品。
- - 30 - -
4.从商品库中查询出同一类商品多于一种的所有分类名。
5.查询每种品牌商品的总数量及品牌。
6.商品库中查询出同一产地的商品只有一种的所有商品。
八、有一个“学生-课程”数据库,数据库中包括三个表:
(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:
SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
根据下列数据库和表,用T-SQL完成下列操作(1题2', 2至7题,每题3')。
1、查所有选修过课的学生的学号
2、 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
3、查考试成绩有不及格的学生的学号
4、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
- - 31 - -
5、查询每门课程的学生最高低分数
6、查询与“刘晨”在同一个系学习的学生
7、将计算机科学系全体学生的成绩置零
九、 操作题
完成下列操作:
1、查询全体学生的详细记录
2、查询年龄在20至23岁之间的学生的姓名、系别、和年龄
3、计算1号课程的学生平均成绩
4、创建一个名为SALE的数据库,其主文件名为SALE_dat,日志文件名为SALE_log,实际存储在c:program filesMicrosoft sql servermssqldata上,其初始大小分别为10M和5M,每次允许增量为10%,最大允许增加到15M和20M;
- - 32 - -
5.建立saler表,要求该表含saler_id , saler_name , phone , fax 几列,具体类型自定,saler_id列非空;
6.修改saler表,将saler_name 列改为varchar(50),允许空,删除Fax列,并增加一个"address"列;
7.向saler表中添加三条记录,其中一条记录的saler_id 为 123 ,有一条记录的phone为23328998;
8.修改SALE数据库中saler表指定的saler_id 为123记录的值,指定其saler_id 为1234,saler_name 为
Jonny,phone 为22228888 ,address 为 ShangHai ;
9.删除saler表中所有电话为23328998的记录;
- - 33 - -
10. 先删除表saler中的所有数据,然后删除表saler,最后将SALE数据库删除;
十、完成下列操作:
1、 向Student表增加“入学时间”列,其数据类型为日期型。
2、删除Student表
3、查询全体学生的学号与姓名
4、查所有选修过课的学生的学号
5、查所有年龄在20岁以下的学生姓名及其年龄
6、查所有姓刘的学生的姓名、学号和性别
7、查姓“欧阳”且全名为三个汉字的学生的姓名
8、计算1号课程的学生平均成绩
9、查询学习1号课程的学生最高分数
10、将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入Student表中
- - 34 - -
11、将学生95001的年龄改为22岁
12、删除学号为95019的学生记录
13、删除计算机科学系所有学生的选课记录
十一、以书中教务管理数据库为例,用T-SQL语句完成完成下列查询功能:
1.显示每个学生的学号、姓名、班级、课程名称、成绩及总分。
2.显示各班的各门功课的最高分、最低分和平均分。
3.检索84年、85年出生的学生姓名、班级、性别、年龄和出生日期。
4.显示各位教师的姓名、任教课程及相应班级及上课地点。
5.统计不同职称的教师的人数,并显示教师姓名、职称。
- - 35 - -
6.显示上海、南京、北京等地的学生姓名、地址,并统计相应的人数。
7.显示书名,出版社,作者及价格;
8.将所有书的价格打九折显示;
9.显示84年以后出生的学生的姓名,性别,班级及出生日期;
10.显示g99402班的男生的所有信息;
11.按出生日期排序显示学生的姓名,性别,出生日期及住址;
12.显示每个学生的学号,总分;
13.按学号排序显示每个学生的学号,姓名,课程号及成绩;
14.显示每个学生的学号,姓名,课程名称及成绩;
15.显示成绩不及格,及80分以上的学生学号,姓名,课程名称及成绩;
- - 36 - -
16.显示不同班级的各课程的最高分,最低分及平均分;
17.显示林红同学不选的课程号;
18 显示成绩都大于80分的学生的学号
十二、某科研部门为了进行科研情况管理,设计了如下三个数据表:
科研课题表KYKT:KTID(课题编号).KTNAME(课题名称).KTJF(课题经费)(万元计)
科研情况表KYQK:RYID(人员编号).KTID(课题编号).SBF(设备费).GZL(工作量:日).SYJF(使用经费)
科研人员表KYRY:RYID(人员编号).RYNAME(人员姓名).ZC(职称).SEX(性别).ADDR(地址)
按要求写出SQL查询语句:
(1) 查询课题经费大于100万元的课题编号及其名称。
(2) 查询同时参加编号为101和105课题的科研人员编号。
(3) 查询科研情况表中所有科研人员的编号。
(4) 检索67号科研人员的信息。
(5) 检索102号课题的平均工作量
(6) 检索工作量在300-400日课题编号.人员编号及工作量.并按工作量降序排序。
(7) 在科研人员中追加一个科研人员(53,DAIHONG,DOTOR,MALL,TIAJIN)。
(8) 删除58号科研人员的所有科研课题。
(9) 修改203号课题的课题经费为100万元。
- - 37 - - (10) 把69号科研人员的工作量减少10% 。
一、选择题
1. A 2. D 3. B 4. A 5. A 6. B 7. A 8. C 9. A 10. D
11. B 12. D 13. A 14. B 15. B 16. B 17. A 18. A 19. B A 20. B
21. A 22. B 23. C 24. A 25. D 26. A 27. C 28. B 29. D 30. B
31. D 32. C 33. A 34. B 35. B 36. A 37. A 38. C 39. A 40. D
41. D 42. A 43. A 44. B 45. B 46. B 47. B 48. B 49. A 50. B
51. D 52. B 53. B 54. B 55. C 56. D 57. A 58. B 59. B 60. D
61. C 62. B 63. B 64. B 65. A 66. B 67. D 68. C 69. A 70. A
71. B 72. A 73. A 74. D 75. C 76. A 77. D 78. A 79. B 80. D
81. C 82. A 83. D 84. A 85. A 86. B 87. B 88. C 89. C 90. B
91. C 92. B 93. B 94. C 95. A 96. B 97. B 98. B 99. A 100. D
101. C 102. D 103. C 104. C 105. C 106. C 107. D 108. D 109. B 110. C
111. B 112. C 113. A 114. B 115. A116. B 117. D 118. D 119. C 120. C
121. C 122. B 123. B 124. C 125. D 126. B127. D 128. D 129. B 130. D
131. B 132. D 133. B 134. A 135. A 136. D 137. B 138. A 139 C.140. C
141. C 142. C 143. D 144. D 145. D146. B147. B148. D
二、填空题
1. 客户机/服务器(或C/S)2. Transact-SQL 3. 批处理4. 日期 时间5.’cb’6. 1 2 4 8
7. 企业管理器 查询分析器 (空) 9. 批处理 GO 10. SELECT SET select set
11.存储过程 表 12. @ @@ END 14. BREAK CONTINUE 15.@@FETCH_STATUS
16.登录帐号 口令(密码) 17. OPEN CLOSE 18. 并发控制 同时执行 同时不执行
19. CREATE PROC EXEC 20.-- /* */ 21. 注册账号(或登录账号)22.系统管理员
23. 启动 停止24. mdf ndf ldf 25. 系统数据库 用户数据库 26. master model 27. GO
28. 空格 30.‘ef’31. 查询分析器 33. 局部变量 系统变量
34. BEGIN TRAN COMMIT [TRAN] ROLLBACK 35. 更新 36. 唯一值 37. 备份 38. SELECT
39.企业版 个人版 40. 数值 日期时间 41. windows 关系 42.删除 修改 43. 单引号
44. FILE ON LOG ON 45. ALTER DATABASE DROP DATABASE 46. 2 USE
47. 主码 唯一值 48. DECLARE 逗号 END 50. 单(一)51. 多条 RETURN(返回) 52.
GRANT REVOKE TO FROM 55. 网络流量56. 硬盘空间
57. 数据封锁机制 58.域用户账号59. 本地计算机名 60. 暂停 61. 操作系统文件
62.表 视图 存储过程 63. 局部变量 64. bit 65 bigint int smallint tinyint
66. sp_renamedb Database Restore Database 68. 查询 69. Group By
70. 自动71.插入 删除 修改 72. 聚集 非聚集 73. 快74. 可执行75. 打开 重建
76. 多 多 INDEX DROP INDEX 78. 聚集 非聚集 79. 升序或降序
80. 非空 聚集 81.建立(创建) 索引 82. 备用(侯选码)码 不允许 83. 空格 分号 换行
84. 单条 END 85. DECLARE CURSOR 查询(或SELECT)
86. WHERE CURRENT OF <游标名>) 87. 参数 过程体
88. CREATE TRIGGER DROP TIRGGER 89. PRIMARY KEY 多 90.检查 唯一值
91. CONSTRAINT <约束名> 92. 更新 检查 93.操作系统 登录 94.网状模型 关系模型
95.实体完整性 参照完整性 96. “count(distinct 列名)” 97.表或视图 select
98.没有重复值和都不能为空 99. 信息 100. 二维表 101. 物理独立性 102.一个实体内部
103. 企业管理器 104. 查询分析器 105. 服务器网络实用工具106. 数据的安全性
107.定义用户权限108.账号 口令109.服务器级用户或角色 数据库级用户或角色
110sa(SystemAdministrator) 111.Windows安全认证模式 SQL Server认证模式
- - 38 - - 112.Floor(10*rand(1)) 113.ascii(substring(字符串名,4,1))
114.dateadd(day, 115 ,getdate() )115. 索引 116. 数据 日志
三、名词解释、简答
1.数据库:数据库是存储数据和其他数据库对象的操作系统文件,是数据库服务器的主要组件,是数据库管理系统的核心。
2.表:表是数据库中的主要对象,用来存储各种各样的信息。表是由行和列组成的。
3.索引:索引就是表中数据和相应存储位置的列表。
4.存储过程:存储过程是存储在服务器上的一组预编译的Transact-SQL语句。
5. DTS:数据转换服务
6.如何验证SQL Server系统的正确安装结果
答:一般如果安装过程中没有出现错误提示,那么就可以认为安装是成功的。也可以使用一些方法来验证SQL Server系统的是否正确安装,如:检查Microsoft SQL Server的服务和工具是否存在,应该自动生成的系统数据库和样本数据库是否存在,以及有关文件和目录是否正确等。
7.创建数据库的3种方法
答:在Microsoft SQL Server系统中,有3种创建数据库的方法:
(1) 使用CREATE DATABASE语句
(2) 使用Create Dacabase Wizard
(3) 使用SQL Server Enterprise Manager
8.创建索引的3种方法
答:在Microsoft SQL Server系统中,有3种创建索引的方法:
(1) 使用CREATE INDEX语句
(2) 使用Create Index Wizard
(3) 使用Index Turning Wizard
9.当备份某个数据库时,SQL Server执行哪些操作
答:当备份某个数据库时,SQL Server执行如下操作:
(1)检查点机制检查数据库,记录最早的事务日志记录的日志序列号;
(2)通过直接阅读磁盘,把全部的数据页写进备份介质中
(3)从捕捉的序列号到日志末尾,写全部的事务日志记录
10.为什么说SQL Server是关系系统,试举例说明。
答:SQL语言是一种高度非过程性的关系数据库语言,采用的是集合的操作方式,操作的对象和结果都是元组的集合,同时SQL语言集数据查询、数据定义、数据操纵、数据控制为一体,功能强大,得到了越来越大广泛的应用。比如一个学生表S,学号、姓名、性别、出生年月,都存在着关系。
有何优缺点?
答:SQL是结构化查询语言的缩写,虽然叫查询语言,但它的功能已经远远超出了查询,是一种集多种功能为一体的关系数据库标准语言。它是一种高度非过程性的关系数据库语言,采用的是集合的操作方式,操作的对象和结果都是元组的集合,用户只需知道“做什么”,无需知道“怎么做”,因此SQL语言接近英语自然语言,结构简洁、易学易用。同时SQL语言集数据查询、数据定义、数据操纵、数据控制为一体,得到了越来越广泛的应用。
四、判断题
1.×2√3.×4.√5.√6.√7.×8.√9.×10×11×12√13√14×15√16√17. √18×19.√20√21√22.×23.√24.√25×26.×27.×28√29. ×30√ 31.×32.√33 ×34√35×36. ×37.×38×39√40×41√42×43×44.√45√46.×47.√
五、根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业
- - 39 - - varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
1
**显示出AAA库中每个学生的平均成绩。
2.
**修改score表中学号为@a的值、课程名为@b的值的学生的成绩为@c的值。
3
**向score表中插入学号为@a的值、课程名为@b的值、成绩为@c的值的学生成绩记录。
4
***从score表中删除学号为@a的值、课程名为@b的值的学生成绩记录。
5.
****创建Students表。
6.
***将AAA数据库的初始大小更改为5MB,最大空间限定为10MB。
7. IF (Select Avg(年龄) From Students Where 专业=’计算机软件’)>19
SELECT ‘平均年龄超过19’
ELSE
SELECT ‘平均年龄没有超过19’
8.
**从Students表中查询出所有当年(系统时间)入学的学生记录。
9.
***显示出AAA库中每个学生的最高成绩
10.
**首先定义一个名为@MyNo的局部变量,并给它赋初值,如果@MyNo属于计算机软件专业,则显示出平均成绩,否则显示“学号为@MyNo的学生不存在或不属于软件专业”。
11.
**从score表中查询出大于等于平均成绩的所有记录。
12.
**求出score表中最高成绩与最低成绩的分数之差。
13.
***显示出AAA库中每个学生的学号、姓名、专业等信息及选课门数
六、 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:
学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,
专业 char(10),年级 int)
课程(课程号 char(4),课程名 char(10),课程学分 int)
选课(学生号 char(7),课程号 char(4),成绩 int)
按分析下列所给程序语句的相应功能。
1.
**从教学库中查询出同时选修了3门课程的全部学生。
2.
**从教学库中查询出每个专业的学生人数,并按人数多少降序排列。
3.
**从教学库中查询出每个专业每种性别的学生人数,并按专业排列。
4.
**从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。
- - 40 - - 5.
***从教学库中查询出选修了姓名为@a的学生的全部选课的所有学生。
七、在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:
商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)
商品表2(商品代号 char(8),产地 char(6),品牌 char(6))。
按照下列所给的每种功能写出相应的查询语句。
1. Select商品表1.商品代号,数量,单价
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and商品表2.品牌=‘Hair’
2. select *,单价*数量 as 总价值
from 商品表1
order by 总价值 desc
3. select *
from 商品表1
where 数量=some(select max(数量)
from 商品表1)
distinct 分类名
from 商品表1
group by 分类名 having count(*)>1
5. Select 品牌,sum(数量) as 总数量
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号
group by 品牌
6. select 商品表1.*,产地
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and 产地 in (select 产地 from 商品表1 x,商品表2 y
where x.商品代号=y.商品代号
group by 产地 having count(*)=1)
八、有一个“学生-课程”数据库,数据库中包括三个表:
(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:
SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
根据下列数据库和表,用T-SQL完成下列操作(1题2', 2至7题,每题3')。
1、
SELECT DISTINCT Sno
FROM SC;
2、
CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20),
Ssex CHAR(1),
- - 41 - - Sage INT,
Sdept CHAR(15));
3、SELECT DISTINCT Sno
FROM Course
WHERE Grade <60;
4、SELECT Sno, Grade
FROM SC
WHERE Cno='3'
ORDER BY Grade DESC;
5、
SELECT CNO,MIN(Grade)
FROM SC
GROUP BY CNO;
6、
SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept
FROM Student
WHERE Sname='刘晨');
7、
UPDATE SC
SET Grade=0
WHERE „CS‟=
( SELECT Sdept
FROM Student
WHERE =);
九、 操作题
完成下列操作:
1、
SELECT *
FROM Student;
2、
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;
3、SELECT AVG(Grade)
FROM SC
WHERE Cno='1';
4、
CREATE DATABASE SALE
ON
( NAME=SALE_data,
FILENAME='c:program filesMicrosoft sql ',
SIZE=10,
MAXSIZE=15,
- - 42 - - FILEGROWTH=10%)
LOG ON
(NAME='SALE_log',
FILENAME='c:programfilesMicrosoftsqlservermssqldatasale_'
SIZE=5,
MAXSIZE=20,
FILEGROWTH=10%)
GO
table saler
( saler_id numeric(10,0) NOT NULL,
saler_name char(100),
phone numeric(8,0),
fax varchar(30)
)
6.
alter table saler
alter column saler_name varchar(50) NULL
go
alter table saler
add address char(100) NULL
GO
alter table saler
drop column fax
go
SALE
Go
Insert saler
( saler_id , saler_name , phone , address )
Values
(„123',' Tony','27406483','NewYork')
Go
Insert saler
( saler_id , saler_name , phone , address )
Values
(„2366',' Tony','23328998','Sydney')
8.
Use SALE
Go
UPDATE saler
SET saler_id = „1234' ,
- - 43 - - saler_name = „Jonny „ ,
phone = „22228888' ,
address = „ShangHai' ,
WHERE saler_id = „123'
go
9.
Use SALE
Go
DELETE
FROM saler
WHERE phone = „23328998'
Go
10.
Use SALE
truncate saler
go
DROP TABLE saler
Go
DROP DATABASE SALE
GO
十、完成下列操作:
1、ALTER TABLE Student ADD Scome DATE;
2、DROP TABLE Student ;
3、SELECT Sno, Sname
FROM Student;
4
SELECT DISTINCT Sno
FROM SC;
5、SELECT Sname, Sage
FROM Student
WHERE Sage <20;
6、SELECT Sname, Sno, Ssex
FROM Student
WHERE Sname LIKE '刘%';
7、SELECT Sname
FROM Student
WHERE Sname LIKE '欧阳__';
8、SELECT AVG(Grade)
FROM SC
WHERE Cno='1';
- - 44 - - 9、
SELECT MAX(Grade)
FROM SC
WHERE Cno='1';
10、INSERT
INTO Student
VALUES ('95020', '陈冬', '男', 'IS', 18);
11、UPDATE Student
SET Sage=22
WHERE Sno='95001';
12、DELETE
FROM Student
WHERE Sno=„95019‟;
13、DELETE
FROM SC
WHERE 'CS'=
(SELETE Sdept
FROM Student
WHERE =);
十一、以书中教务管理数据库为例,用T-SQL语句完成完成下列查询功能:
1.
select
t_id,t_name,_id,_name,student_ from student,course,student_course
where t_id=student_t_id and
_id=student__id
order by t_id
compute sum(grade) by t_id
2. select _id,max(grade),min(grade),avg(grade) from student,student_course
where t_id=student_t_id
group by _id
order by _id
3select student_name,class_id,sex,2007-year(birth)as age,birth from student
where year(birth)=1984 or year(birth)=1985
4
select
r_name,_name,teacher_course__id,teacher_course__classroom
from teacher,course,teacher_course_class
where r_id=teacher_course_r_id
teacher_course__id=_id
5. select teacher_name,profession
from teacher
order by profession
compute count(profession) by profession
6. select student_name,home_addr from student
- - 45 - -
and where home_addr like '%上海%' or home_addr like '%南京%'or home_addr like '%北京%'
compute count(student_name)
7. select book_name,publish_company,author,price from book
8
select book_name,publish_company,author,price*0.9 from book
9.
select student_name,sex,class_id,birth from student
where year(birth)>1984
10. select * from student where class_id='g99402' and sex='1'
11. select student_name,sex,birth,home_addr from student
order by birth
12. select student_id,sum(grade) from student_course
group by student_id
13. select
t_id,t_name,student__id,student_ from
student,student_course
where t_id=student_t_id
order by t_id
t_id,t_name,_name,student_
from student,course,student_course
where t_id=student_t_id
_id=student__id
and
order by t_id
15. select
t_id,t_name,_id,_name,student_ from student,course,student_course
where t_id=student_t_id and
_id=student__id and (grade<60 or grade>=80)
order by t_id,grade
16. select class_id,max(grade)as max,min(grade) as min ,avg(grade) as avg from
student,student_course
where t_id=student_t_id
group by class_id
order by class_id
17. select course_id from course
where course_id not in(select course_id from student_course,student where
t_id=student_t_id and t_name='林红')
18
Select student_id from student_course
Group by student_id having min(grade)>80
十二、某科研部门为了进行科研情况管理,设计了如下三个数据表:
科研课题表KYKT:KTID(课题编号).KTNAME(课题名称).KTJF(课题经费)(万元计)
科研情况表KYQK:RYID(人员编号).KTID(课题编号).SBF(设备费).GZL(工作量:日).SYJF(使用经费)
- - 46 - - 科研人员表KYRY:RYID(人员编号).RYNAME(人员姓名).ZC(职称).SEX(性别).ADDR(地址)
按要求写出SQL查询语句:
(11)
SELECT KTID,KTNAME FROM KYKT WHERE KTJF>100
(12)
SELECT FROM KYQK AS K1,KYQK AS K2 WHERE = AND =’101’AND
=’105’ 或
SELECT RYID FROM KYQK WHERE KTID=’101’ AND RYID IN (SELECT RYID FROM KYQK WHERE
KTID=’105’)
(13)
SELECT DISTINCT RYID FROM KYQK
(14)
SELECT * FROM KYRY WHERE RYID=’67’
(15)
SELECT AVG(GZL) FROM KYQK WHERE KTID=’102’
(16) SELECT KTID,RYID,GZL FROM KYQK WHERE GZL BETWEEN 300 AND 400
(17) INSERT INTO KYRY VALUES(‘53’,DAIHONG,DOCTOR,MAIL,TIANJING)
(18)
DELECT FROM KYQK WHERE KYID=’58’
(19) UPDATE KYKT SET KTJF=100 WHERE KTID=’203’
(20)
UPDATE KYQK SET GZL=0.9*GZL WHERE RYID=’69’
关系模式的规范化理论
掌握:函数依赖;关键字定义;关系模式的规范化(1NF-BCNF)。
理解:无损连接分解;Armstrong公理;多值依赖;4NF。
一、填空题
1. 从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据冗余度大、修改异常、插入异常和_________。
2. 如果一个满足1NF关系的所有属性合起来组成一个关键字,则该关系最高满足的范式是______(在1NF、2NF、3NF范围内)。
3. 在函数依赖中,平凡的函数依赖根据Armstrong推理规则中的_______________律就可推出。
4. 关键字是__________决定关系的属性全集。
5. 在一个关系模式中,所有关键字中的属性构成一个集合,称为_______;
6. 主属性集中的属性称为_____________,非主属性集中的属性称为____________。
7. 两个函数依赖集F和G等价的充分必要条件____________.
二、选择题
1. 下面关于函数依赖的叙述中,不正确的是 ( )
- - 47 - - A. 若X→Y,Y→Z,则X→YZ B. 若XY→Z,则X→Z,Y→Z
C. 若X→Y,Y→Z,则X→Z D. 若X→Y,Y'包含Y,则X—Y'
2. 下面关于函数依赖的叙述中,不正确的是 ( )
A. 若X→Y,X→Z,则X→YZ B. 若XY→Z,则X→Z,Y→Z
C. 若X→Y,WY→Z,则XW→Z D. 若X→Y,则XZ→YZ
3. 设有关系模式R(A,B,C,D)和R上的函数依赖集FD={ A→B,B→C},则R
的主码应是
A. A B. B C. AD D. CD
4. 关系模型中的关系模式至少是( )
A. 1NF B. 2NF C. 3NF D. BCNF
5. 关系模式R中属性全部是主属性,则R的最高范式必定是( )
A. 2NF B. 3NF C.BCNF D.4NF
6. 2NF如何规范为3NF( )
A. 消除非主属性对码的部分函数依赖 B.消除非主属性对码的传递函数依赖
C.消除主属性对码的部分和传递函数依赖 D. 消除非平凡且非函数依赖的多值依赖
7. 设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F ( )
A. 是无损联接,也是保持FD的分解 B. 是无损联接,但不保持FD的分解
C. 不是无损联接,但保持FD分解 D. 既不是无损联接,也不保持FD的分解
8. 关系模式R分解成ρ = {R1,„,Rk},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r)间的关系满足 ( )
A. r mρ(r) B. mρ(r) r C. r = mρ(r) D. r≠mρ(r)
三、名词释义,简要说明它们满足的FD条件。
1. 2NF
2. 3NF
3. BCNF
四、应用题
1. 现有如下关系模式: R(A#,B#,C,D,E) 其中:A#B#组合为码 R上存在的函数依赖有A#B#→E,B#→C,C→D
(1).该关系模式满足2NF吗?为什么?
(2).如果将关系模式R分解为:
R1(A#,B#,E)
R2(B#,C,D) 指出关系模式R2的码,说明其最高满足第几范式? (在1NF~BCNF之内)。
(3).将关系模式R分解到BCNF。
(4).在E-R模型中,如果实体间是1∶M的联系,如何设计相应部分的关系模型?
2. 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = {D→A,D→B},试写出关系模- - 48 - - 式R的候选键,并说明理由。
3. 设有关系模式R(A,B,C,D,E,F)其函数依赖集为F={E→D,C→B,CE→F,,B→A},判断CE为候选键。
4. 假设某商业集团数据库中有一关系模式R如下:
R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:(1) 每个商店的每种商品只在一个部门销售;
(2) 每个商店的每个部门只有一个负责人;
(3) 每个商店的每种商品只有一个库存数量。
试回答下列问题:
(1) 根据上述规定,写出关系模式R的基本函数依赖;
(2) 找出关系模式R的候选码;
(3) 试问关系模式R最高已经达到第几范式?为什么?
(4) 如果R不属于3NF,请将R分解成3NF模式集。
- - 49 - -
2023年6月21日发(作者:)
2010年上半年关系数据库标准语言SQL练习
1.SQL是( )英文单词的缩写。
A.Standard Query Language
2.
C. Select Query Language
标准SQL基本查询模块的结构是( )。
A.SELECT„FROM„ORDER BY
C.SELECT„WHERE„HAVING
B. Structured Query Language
D. 以上都不是
B. SELECT„WHERE„GROUP BY
D. SELECT„FROM„WHERE
3.在SQL的SELECT查询结果中,消除重复记录的方法是( )。
A.通过指定主关系键 B. 通过指定惟一索引
C.使用DISTINCT子句 D. 使用HAVING子句
4.使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是( )。
A. SELECT*FROM STUDENT WHERE LEFT(姓名,2)=”王”
B. SELECT*FROM STUDENT WHERE RIGHT(姓名,2)=”王”
C. SELECT*FROM STUDENT WHERE TRIM(姓名,2)=”王”
D. SELECT*FROM STUDENT WHERE STR(姓名,2)=”王”
5.查询订购单号(字符型,长度为4)尾字符是”1”的错误命令是( )。
A.SELECT*FROM 订单 WHERE SUBSTR(订购单号,4)=”1”
B. SELECT*FROM 订单 WHERE SUBSTR(订购单号,4,1)=”1”
C. SELECT*FROM 订单 WHERE “1”$订购单号
D. SELECT*FROM 订单 WHERE RIGHT(订购单号,1)=”1”
6.在SQL SELECT语句中用于实现关系的选择运算的短语是( )。
A.FOR B. WHILE C. WHERE
7. 在SELECT语句中,用来指定查询所用的表的子句是( ).
8.
D. CONDITION
A. WHERE B. GROUP BY C. ORDER BY D. FROM
使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( )。
A.使用WHERE子句 B. 在GROUP BY后面使用HAVING子句
C. 先使用WHERE子句,再使用HAVING子句
D. 先使用HAVING子句,再使用WHERE子句
9.本题使用下列两个数据表:
学生.DBF: 学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF: 学号(C,8),课程号(C,3),成绩(N,5,1)
查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL语句是( )。
A.SELECT*FROM 学生 WHERE 出生日期>={^1982-03-20} AND 性别=”男”
B. SELECT*FROM 学生 WHERE 出生日期<={^1982-03-20} AND 性别=”男”
C. SELECT*FROM 学生 WHERE 出生日期>={^1982-03-20} OR 性别=”男”
D. SELECT*FROM 学生 WHERE 出生日期<={^1982-03-20} OR 性别=”男”
SELECT jg FROM student
请选出正确的选项完成该语句( )。
D. DISTINCT
10. 若要从学生表中检索出jg 并去掉重复记录,可使用如下SQL语句
A.ALL B. * C. ?
11. 下列关于SQL中HAVING子句的描述,错误是的( )。
A.HAVING子句必须与GROUP BY子句同时使用
B.HAVING子句与GROUP BY子句无关
C.使用WHERE子句的同时可以使用HAVING子句
D.使用HAVING子句的作用是限定分组的条件
- - 1 - - 12.SQL的SELECT语句中,“HAVING<条件表达式>”用来筛选满足条件的( )。
A.列 B. 行 C. 关系 D. 分组
13.一条没有指明去向的SQL SELECT语句执行之后,会把查询结果显示在屏幕上,要退出这个查询窗口,应该按的键是( )。
A.ALT B. Delete C. Esc
14.以下有关SELECT短语的叙述中错误的是( )。
A.SELECT短语中可以使用别名
B. SELECT短语中只能包含表中的列及其构成的表达式
D. Return
C.SELECT短语规定了结果集中的列顺序
D.如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定
15.在表ticket中查询所有票价小于100元的车次、始发站和终点信息的命令是( )。
A.SELECT*FROM ticket WHERE 票价<100
B.SELECT车次、始发站、终点FROM ticket WHERE 票价>100
C.SELECT车次、始发站、终点FROM ticket WHERE 票价<100
D.SELECT*FROM ticket WHERE 票价>100
16.在SQL语句中,与表达式“供应商名LIKE”%北京%””功能相同的表达式是( )。
A.LEFT(供应商名,4)=”北京”
C. 供应商名IN” %北京%”
B. ”北京”$供应商名
D. AT(供应商名, ”北京”)
17.SQL SELECT语句中的特殊运算符不包括( )。
A.BETWEEN B. AND C. OR D. LIKE
18.在SQL语句中,与表达式“年龄BETWEEN 12 AND 46”功能相同的表达式是( )。
A.年龄 >= 12 OR <= 46
C. 年龄 >= 12 OR 年龄 <= 46
B. 年龄 >= 12 AND <= 46
D. 年龄 >= 12 AND 年龄 <= 46
19.在SQL语句中空值用 表示。
20.SQL支持集合的并运算,在Visual FoxPro中SQL并运算的运算符是( )。
A.PLUS B. UNION C. + D.
21.下列关于SQL的并运算,说法不正确的一项是( )。
A.集合的差运算,即UNION,是指将两个SELECT语句的查询结果通过合并运算合并成一个查询结果。
B.集合的并运算,即UNION,是指将两个以上SELECT语句的查询结果通过合并运算合并成一个查询结果。
C.进行并运算要求两个查询结果具有相同的字段的数据,并且对应的字段的值要出自同一个值域
D.两个查询结果要具有相同的数据类型和取值范围。
22.求每个终点的平均票价的SQL语句是( )。
A.SELECT 终点,avg(票价) FROM ticket GROUP BY 票价
B.SELECT 终点,avg(票价) FROM ticket ORDER BY 票价
C.SELECT 终点,avg(票价) FROM ticket ORDER BY 终点
D.SELECT 终点,avg(票价) FROM ticket GROUP BY 终点
23.从职工数据库表中计算工资合计的SQL语句是:
SELECT FROM 职工
24.统计学生总人数,请写出下面SELECT语句的完整形式:
SELECT FROM student
25.在SQL的SELECT语句中用于计算检索的函数有COUNT、 、 、MAX和MIN。
26.本题使用下列两个数据表:
- - 2 - -
学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)
计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是( )。
A.SELECT AVG(成绩)FROM 选课WHERE姓名=”刘明”
B.SELECT AVG(成绩)FROM 学生,选课WHERE姓名=”刘明”
C.SELECT AVG(成绩)FROM 学生,选课WHERE 学生.姓名=”刘明”
D.SELECT AVG(成绩)FROM 学生,选课WHERE 学生.学号=选课.学号AND姓名=”刘明”
27.假定学号的3、4位为专业代码。要计算各专业学生选修课程号为“101”课程的平均成绩,正确的SQL语句是( )。
A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM 选课
WHERE 课程号=”101”GROUP BY 专业
B.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS平均分FROM选课
WHERE 课程号=”101”GROUP BY 1
C.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS平均分FROM选课
WHERE 课程号=”101”GROUP BY 专业
D.A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM 选课
WHERE 课程号=”101”GROUP BY 1
28.设有学生选课表SC(学号,课程号,成绩),用SQL语言检索每门课程的课程号及平均分的语句是(关键字必须拼写完整):SELECT课程号,AVG(成绩)AS平均分FROM SC 。
29.Visual FoxPro中用于计算机检索的函数中, 用于计数, 用来求和,
用于求平均值, 用于求最大值, 用于求最小值。
30.在SQL SELECT语句中将查询结果存放在一个表中应该使用 子句(关键字必须拼写完整)。
31.将查询结果存放到数组中的短语是 。
32.在学生表中查询至少选了一门课的同学,请使用谓词填空。
SELECT*FROM XS WHERE ;
(SELECT*FROM 选课 WHERE 学生号= )
33.设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。
SELECT 学号,姓名,性别 Forms
WHERE (SELECT*FROM sc WHERE sc.学号=s.学号 AND 成绩<85)
34.在SQL语名:
SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
ALL(SELECT 工资 FROM 教师 WHERE 系号=”02”)
与如上语句等价的SQL语句是( )。
A. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
(SELECT MAX(工资)FROM 教师 WHERE 系号=”02”)
B. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
(SELECT MIN(工资)FROM 教师 WHERE 系号=”02”)
C. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
ANY(SELECT 工资 FROM 教师 WHERE系号=”02”)
D. SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
SOME(SELECT 工资 FROM 教师 WHERE系号=”02”)
35.SQL命令中用于插入数据的命令是( )。
A.INSERT B. APPEND
D. INSERT INTO
C. INSERT BEFORE
- - 3 - - 36.本题使用如下数据表:
学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)
插入一条记录到”选课”表中,学号、课程号和成绩分别是“02080111”、“103”和“80”,正确的SQL语句是( )。
A.INSERT INTO 选课 VALUES(”02080111”,”103”,80)
B.INSERT VALUES(”02080111”,”103”,80)TO选课(学号,课程号,成绩)
C.INSERT VALUES(”02080111”,”103”,80)INTO选课(学号,课程号,成绩)
D.INSERT INTO 选课(学号,课程号,成绩)FROM VALUES(”02080111”,”103”,80)
37.要在“成绩”表中插入一条记录,应该使用的SQL语句是:
成绩(学号,英语,数学,语文)VALUES(”200110011”,91,78,86)
38.要使“产品”表中所有产品的单价上浮8%,正确的SQL命令是( )。
A.UPDATE 产品 SET 单价=单价+单价*8% FOR ALL
B.UPDATE 产品 SET 单价=单价+单价*1.08 FOR ALL
C.UPDATE 产品 SET 单价=单价+单价*8%
D.UPDATE 产品 SET 单价=单价+单价*1.08
39.本题使用如下两个数据表:
学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)
将学号为“02080110”、课程号为“102”的选课记录的成绩改为92,正确的SQL语句是( )。
A.UPDATE 选课SET成绩WITH 92 WHERE学号=”02080110”AND课程号=”102”
B.UPDATE 选课SET成绩=92 WHERE学号=”02080110”AND课程号=”102”
C. UPDATE FROM选课SET成绩WITH 92 WHERE学号=”02080110”AND课程号=”102”
D.UPDATE FROM选课SET成绩=92 WHERE学号=”02080110”AND课程号=”102”
“教师”表
职工号 姓名 职称 年龄 工资 系号
11020001 肖天海 副教授 35 2000.00 01
11020002 王岩盐 教授 40 3000.00 02
使用SQL语句完成如下操作(将所有教授的工资提高5%)
update 教师 SET 工资=工资*1.05 职称=”教授”
41.DELETE FROM职工工龄WHERE 工龄<8语句的功能是( )。
A.物理删除工龄在8年以下的记录 B. 彻底删除工龄在8年以下的记录
C.删除职工工龄表
D.为表中工龄小于8年以下的记录添加删除标记
40.本题使用如下“教师”表:
42.从“订单”表中删除签订日期为2004年1月10日之前(含)的订单记录,正确的SQL语句是( )。
A.DROP FROM 订单 WHERE 签订日期<={^2004-1-10}
B.DROP FROM 订单 FOR 签订日期<={^2004-1-10}
C.DELETE FROM 订单 WHERE 签订日期<={^2004-1-10}
D.DELETE FROM 订单 FOR 签订日期<={^2004-1-10}
43.SQL插入记录的命令是INSERT,删除记录的命令是 ,修改记录的命令是 。
44.“图书”表中有字符型字段 “图书号”。要求用SQL DELETE命令将图书号以字母A开头的图书记录全部打上删除标记,正确的命令是( )。
A.DELETE FROM 图书 FOR 图书号 LIKE”A%”
B.DELETE FROM 图书 WHILE 图书号 LIKE”A%”
- - 4 - -
C.DELETE FROM 图书 WHERE 图书号=”A*”
D.DELETE FROM 图书 WHERE 图书号LIKE”A%”
45.第(1)、(2)小题使用如下表的数据:
部 门 表
部门号
40
10
20
30
商 品 表
部门号
40
40
40
20
40
20
20
40
30
30
商品号
0101
0104
0105
1032
0107
0110
0112
0202
1041
0204
商品名称
A牌电风扇
A牌微波炉
B牌微波炉
C牌传真机
D牌微波炉-A
A牌电话机
B牌手机
A牌电冰箱
B牌计算机
C牌计算机
单价
200.00
350.00
600.00
1000.00
420.00
200.00
2000.00
3000.00
6000.00
10000. 00
数量
10
10
10
20
10
50
10
2
10
10
产地
广东
广东
广东
上海
北京
广东
广东
广东
广东
上海
部门名称
家用电器部
电视录摄像机部
电话手机部
计算机部
(1) SQL语句:
SELECT部门号,MAX(单价*数量)FROM 商品表 GROUP BY 部门号
查询结果有( )条记录。
D. 10 A.1 B. 4 C. 3
(2) SQL语句:
SELECT 产地,COUNT(*)提供的商品种类数;
FROM 商品表;
WHERE 单价>200;
GROUP BY 产地 HAVING COUNT(*)>=2;
ORDER BY 2 DESC
查询结果的第一条记录的产地和提供的商品种类数是( )。
A.北京,1 B.上海,2 C. 广东,5 D. 广东,7
46.关于SQL嵌套查询的说法正确的是( )。
A.能对外层查询排序,又能对内层查询排序
B.能对外层查询排序,不能对内层查询排序
C.不能对外层查询排序,只能对内层查询排序
D.既不能对外层查询排序,也不能对内层查询排序
47.联接查询是基于( )的查询。
A.一个表 B. 两个表 C. 多个关系 D. 有一个关联的表
D. FULL JOIN
48.在对SELECT-SQL 命令中的设置为内部联接的是( )。
A.INNER JOIN B. LEFT JOIN JOIN
49.若要在表“职工”和“工龄”中查找008号职工的工资,下列语句正确的是( )。
A.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
- - 5 - -
WHERE 职工号=008; B.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
WHERE 职工号=008;
ON 职工.职工号=工龄.职工号
C.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
ON 职工.职工号=工龄.职工号
WHERE 职工号=008;
D.SELECT 职工号,姓名,工资 FROM 职工 JOIN 工龄;
WHERE 职工.职工号=工龄.职工号
50.设有学生选课表SC(学号,课程号,成绩),用SQL检索同时选修课程号为“C1”和“C5”的学生的学号的正确命令是( )。
A.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND课程号=‟C5‟
B.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND课程号=(SELECT课程号 FROM SC WHERE 课程号=‟C5‟)
C.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND学号=(SELECT学号 FROM SC WHERE 课程号=‟C5‟)
D.SELECT 学号 FROM SC
WHERE 课程号=‟C1‟AND学号 IN(SELECT学号 FROM SC WHERE 课程号=‟C5‟)
51.设有学生表S(学号,姓名,性别,年龄)、课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL命令是( )。
A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C
WHERE S.学号=SC.学号 AND SC.学号=C.学号
B.SELECT 学号,姓名,课程名,成绩
FROM(S JOIN SC ON S.学号)JOIN C ON SC.课程号=C.课程号
C.SELECT S.学号,姓名,课程名,成绩
FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号=C.课程号
D.SELECT S.学号,姓名,课程名,成绩
FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号=SC.学号
52.下面题目使用如下的“学生”表和“选修课”表:
学生: 选修课:
学号
20001
20002
20003
20004
20005
20006
姓名
王海
李盐
刘小鹏
隋小新
李明月
孙民主
政治面貌
团员
预备党员
团员
团员
预备党员
预备党员
年龄
25
20
22
20
24
21
学分
4
3
4
6
4
3
科目号
01
02
01
03
01
02
科目号
01
02
03
科目名
日语
法律
微积分
赵福来 预备党员
20007 22 6 03
(1)、使用SQL语句查询每个学生及其选修课程的情况:
SELECT学生.*,选修课.* FROM学生,选修课WHERE =
(2)、使用SQL语句求选修了法律课程的所有学生的分数总和:
SELECT (学业分)FROM 学生 WHERE 科目号 IN(SELECT 科目号 FROM
WHERE 科目号=”法律”)
(9) SQL SELECT语句中INNER JOIN等价于 , 为 在Visual FoxPro中称为
(10)在一般SQL中,超联接运算符是 和
- - 6 - - (1) SQL命令中建立表的命令是( )。
A) CREAT VIEW B) CREATTABLE C) CREAT LABEL D) CREAT DABATE
(2)在SQL的CRATE TEABLE命令中用于定义满足实体完整性的主索引的短语是( )。
A) PRIMARY KEY B) DEFAULT C) UNIQUE D) CHECK
(3)执行SQL中的DROP命令时,下列说法错误的是( )
A)应先打开数据库,再进行删除表的工作
B)在当前数据库下,表既从硬盘上删除,也从数据库上删除
C)不在当前数据库下,表从磁盘上删除,也从数据库上删除
D)可直接从磁盘上删除指定的文件
(4)如需将表stock中的“股票名称”字段的宽度由8改为10,应使用SQL语句( )。
A) ALTER TABLE stock股票名称WITHc(10) B) ALTER TABLE stock股票名称c(10)
C) ALTER TABLE stock ALTER股票名称c(10) D) ALTER stock ALTER股票名称c(10)
(5) SQL语句中修改表结构的命令是( )。
A) ALTER TABLE B) MODIFY TABLE C) ALTER STRUCTURE D) MODIFY STRUCTURE
(6)在SQL的ALTER TABLE语句中,为了增加一个新的字段应该使用短语( )。
A) CREATE B) APPEND C) COLUMN D) ADD
(7)为“学生”表增加一个“平均成绩”字段的正确命令是:
ALTER TABLE学生ADD 平均成绩N(5,2)
(8)在Visual FoxPro中,使用SQL语言的ALTER TABLE命令给学生表STUDENT增加一个E-mail字段,长度为30,命令是(关键字必须拼写完整)。
(9)己有“歌手”表,将该表中的“歌手号”字段定义为候选索引、索引名是temp,正确的SQL语句是 TABLE歌手ADD UNIQUE歌手号TAG temp。
(10)在Visual FoxPro中,使用SQL的CREATE TABLE语句建立数据库表时,使用 子句说明主索引。
(1) SQL语句中,建立视图的命令是( )。
A) CREATE B) CREATE TABLE C) CREATE VIEW D) CREATE INDEX
(2)删除视图salary的命令是( )。
A) DROP salary VIEW B) DROP VIEW salary C) DELETE salary VIEW D) DELETE salary
(3)有如下SQL语句:
CREATE VIEW view_ticket AS SELECT始发点AS名称,票价FROM ticket
执行该语句后产生的视图含有的字段名是( ),
A)始发点、票价 B)名称、票价 C)名称、票价、终点 D)始发点、票价、终点
第(1)~(6)题使用如下3个条件:
部门.DBF:部门号C(8),部门名C(12),负责人C(6),电话C(16)
职工.DBF:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D
工资.DBF:职工号c(10),基本工资N(8.2),津贴(8.2),奖金N(8.2),扣除N(8.2)
(1)查询职工实发工资的正确命令是( )。
A) SELECT姓名,(基本工资+津贴+奖金~扣除)AS实发工资FROM工资
B) SELECT姓名,(基本工资+津贴+奖金扣除)AS实发工资FROM工资;
WHERE职工.职工号=工资,职工号
C) SELECT姓名,(基本工资+津贴+奖金扣除)AS实发工资;
FROM工资,职工WHERE职工,职工号=工资,职工号
D) SELECT姓名,(基本工资+津贴+奖金~扣除)AS实发工资;
FROM工资JOIN职工WHERE职工.职工号=工资.职工号
(2)查询1962年10月27日出生的职工信息的正确命令是( )。
A) SELECT* FROM职工WHERE出生日期={1962-10-27}
- - 7 - -
~~ B) SELECT* FROM职工WHERE出生日期=1962-10-27
C) SELECT* FROM职工WHERE出生日期=″1962-10-27″
D) SELECT* FROM职工WHERE出生日期=(″1962-10-27″)
(3)查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。正确的命令是( )。
A) SELECT部门名,MIN(出生日期)FROM部门JOIN职工;
ON部门.部门号=职工.部门号GROUP BY部门名
B) SELECT部门名,MAX(出生日期)FROM部门JOIN职工;
ON部门,部门号=职工.部门号GROUP BY部门名
C) SELECT部门名,MIN(出生日期)FROM部门JOIN职工;
WHERE部门.部门号=职工,部门号GROUP BY部门名
D) SELECT部门名,MAX(出生日期)FROM部门JOIN职工;
WHERE部门.部门号=职工.部门号GROUP BY部门名
(4)查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排序。正确的命令是( )。
A) SELECT部门名,COUNT(职工号)AS职工人数;
FROM部门,职工WHERE部门.部门号=职工.部门号;
GROUP BY部门名HAVING COUNT(*) = 10;
ORDER BY COUNT(职工号),ASC
B) SEIECT部门名,COUNT(职工号)AS职工人数;
FROM部门,职工WHERE部门,部门号=职工,部门号;
GROUP BY部门名HAVING COUNT(*)﹥=1 0;
ORDER BY COUNT(职工号) DESC
C) SELECT部门名,COUNT(职工号)AS职工人数;
FROM部门,职工WHERE部门.部门号=职工.部门号;
GROUPBY部门名HAVING COUNT(*)﹥=1 0;
ORDER BY职工人数ASC
D) SELECT部门名,COUNT(职工号)AS职工人数:
FROM部[],职工WHERE部门,部门号=职工.部门号;
GROUP BY部门名HAVING COUNT(*)﹥=10;
ORDER BY职工人数DESC
(5)查询所有目前年龄在35以上(不含35岁)的职工信息、(姓名、性别和年龄)的正确的命令是( )。
A) SELECT姓名,性别,YEAR(DATE())-YEAR(出生日期)年龄FROM职工;
WHERE年龄>35
B) SELECT姓名,性别,YEAR(DATE())-YEAR(出生日期)年龄FROM职工;
WHERE YEAR(出生日期)>35
C) SELECT姓名,性别,YEAR(DATE())-YEAR(出生日期)年龄FROM职工;
WHERE YEAR(DATE())-YEAR(出生日期)﹥35
D) SELECT姓名,性别,年龄=YEAR(DATE())-YEAR(出生日期)FROM职工;
WHERE YEAR(DATE())-YEAR(出生日期)﹥35
(6)为“工资”表增加一个“实发工资”字段的正确命令是( )。
A) MODIFY TABLE工资ADD COLUMN实发工资N(9,2)
B) MODIFY TABLE工资ADD FIELD实发工资N(9,2)
C) ALTER TABLE工资ADD COLUMN实发工资N(9,2)
D) ALTER TABLE工资ADD FIELD实发工资N(9,2)
- - 8 - - 第(7)一(8)题基于这样的3个表:学生表S、课程表C、学生选课表SC。其中:
S (S#, SN, SEX, AGE, DEPT)
C(C#,CN)
SC(S#, C#, GRADE)
S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,
GRADE为成绩。
(7)检索出选修课程“C4”的学生中成绩最高的学生的学号。正确的语句为( )。
A) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE>=(SELECT GRADE FROM SC WHERE C#=″C4”)
B) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE IN (SELECT GRADE FROM SC WHERE C#=″C4‟‟)
C) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE NOT IN(SELECT GRADE FROM SC WHERE C#=″C4‟‟)
D) SELECT S# FROM SC
WHERE C#=”C4” AND GRADE>=ALL (SELECT GRADE FROM SC WHERE C#=″C4‟‟)
(8)检索出选修3门以上课程的学生总成绩(不统计不及格的学生),并要求按总成绩的升序排列出来。正确的SELECT语句为( )。
A) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
GROUP BY S# ORDER BY 2 HAVING COUNT(*)﹥=3
B) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
GROUP BY S# HAVING COUNT(*) ﹥=3ORDER BY 2
C) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
HAVING COUNT(*) ﹥=3 GROUP BY S# ORDER BY 2
D) SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60
ORDER BY 2 GROUP BY S# HAVING COUNT(*)﹥=3
(9)在SQL的SELECT查询的结果中,消除重复记录的方法是( )
A)通过指定主索引实现 B)通过指定惟一索引实现
C)使用DISTINCT短语 D)使用WHERE短语实现
(10)~(12)题使用如下的“教师”表和“学院”表:
“教师”表
职工号
11020001
11020002
11020003
10020004
10020005
10020006
姓名
肖天海
王岩盐
刘星魂
张月新
李明玉
孙民山
职称
副教授
教授
讲师
讲师
教授
教授
年龄
35
40
25
30
34
47
49
工资
2000.00
3000.00
1500.00
1500.00
2000.00
2100.00
2200.00
系名
英语
会计
工商管理
系号
01
02
01
03
01
02
03
钱无名 教授
10020007
“学院”表
系号
01
02
03
(10)使用SQL语句将一条新的记录插入学院表:
INSERT 学院(系号,系名) (〝04〞,〝计算机〞)
(11)使用SQL语句求“工商管理”系的所有职工的工资总和。
- - 9 - - SELECT——(工资)FROM教师;WHERE系号IN(SELECT系号FROM WHERE系名=〝工商管理〞)
(12)使用SQL语句完成如下操作(将所有教授的工资提高5%):
教师SET工资=工资*1.05 职称=〝教授〞
(13) – (14)题使用如下的“值班”表和“部门”表。
‘‘值班“表:
“值班”表:
值班号 姓名 职称 年龄 加班费 部门号
11020001 肖天海 员工 35 20.00 01
11020002 王岩盐 部长 40 30.00 02
1 1020003 刘星魂 临时工 25 15.00 01
11020004 张月新 临时工 30 15.00 03
11020005 李明玉 部长 34 20.00 01
11020006 孙民山 部长 47 21.00 02
11020007 钱无名 部长 40 22.00 03
“部门”表:
0l 生产部
02 财会部
03 公关部
(13)使用SQL语句将一条新的记录插入部门表:
INSERT
部门(部门号,部门名)
(“04”,“营销部”):.
(14)使用SQL语句求“公关部”的所有职工的加班费总和:
SELECT (加班费)
FROM值班
WHERE部门号IN
(SELECT部门号
FROM
WHERE部门名=“公关部”;
(15)在SQL中,插入、删除、更新命令依次是INSERT、DELETE和
SQ复习资料
一、选择题
1、必须运行在NT或2000 服务器版的SQL SERVER 2000的版本是( )
A、标准版 B、开发者版 C、个人版 D、三者都不是
2、SELECT语句属于SQL语言中的( )
A、DDL语言 B、DML语言 C、DCL语言 D、DQL语言
3、下列系统表中会出现在每个数据库中的主系统表是( )
A、sysdatabases B、sysobjects C、sysusers D、master
4、对一个重要的只读数据库,我们经常采用 ( )方法备份数据。
- - 10 - - A、完全数据库备份 B、差异备份
C、数据库文件和文件组备份 D、事务日志备份
5、下面能够备份数据库的角色是 ( )
A、服务器管理员 B、安全管理员 C、磁盘管理员 D、进程管理员
6、下列数据库中,包含所用用户数据库和模板数据库的数据库是 ( )
A、master B、model C、msdb D、pubs
7、用户自定义存储过程文件存储在( )文件中。
A、sysobjects B、sysusers C、sysdatabases D、sysindexes
8、在SQL SERVER中用于单行注释的是( )
A、/* */ B、&& C、-- D、@
9、事务日志文件的扩展名为 ( )
A、LDF B、NDF C、DBF D、MDF
10、下同哪种备份包含自上次备份以来一行修改几次的所有修改 ( )
A、完全数据库备份 B、差异备份
C、数据库文件和文件组备份 D、事务日志备份
11 、下面数据类型,在定义时需要给出数据长度的是( )
A、int B、varchar C、text D、money
12、在建立约束时即自动建立索引的是 ( )
A、建立检查约束时 B、建立外部键约束时
C、建立默认约束时 D、建立惟一性约束时
13、下面哪种文件类型不能导入SQL SERVER中?( )
A、WORD B、EXECL C、FoxPro D、TXT文档
14、SQL Server 2000是一个基于 ( )的关系数据库管理系统。
A B/S模式 B C/S模式 C SQL模式 D 以上都不是
15、 在SQL Server 2000中,一个数据库可最多创建( )个表。
A 1024 B 20亿 C 8092 D 256
16、 SQL Server 2000支持的整数型数据类型包括bigint、int、smallint、tinyint,其中int的数值范围为( )。
A) -263到263-1 B) -231到231-1 C) -215到215-1 D) 0到255
17 SQL Server 2000支持的货币型数据类型包括money、smallmoney,其中money的数值范围为( )。
A) -263到263-1 B) -231到231-1 C) -215到215-1 D) 0到255
18 假设表中某列的数据类型为varchar(100) ,而输入的字符串为"ahng3456",则存储的是()。
A) ahng3456,共8字节 B) ahng3456和92个空格
C) ahng3456和12个空格 D) ahng3456和32个空格
19 默认情况下,SQL SERVER 使用()作为增长速度的单位,最少增长()。
(1) A) KB B) MB C) B D) GB
(2) A) 1M B) 2M C) 1KB D) 2KB
20 在SQL SERVER 2000中,数据库创建后,可以增加或删除数据文件,但不能删除()。
A) 辅助数据文件 B) 主数据文件
C) 自建数据库的数据文件 D) 任何数据文件
21 SQL Server把所有的工作负荷分解为( )任务。
A) 服务器和客户端 B) 不同服务器之间
C) 所有客户端 D) 以上都不是
22 SQL Server 2000的文件包括: 主数据文件、辅助数据文件和( )。
- - 11 - - A) 索引文件 B) 日志文件
C) 备份文件 D) 数据库文件
23 ( )是指组成表的各列的名称及数据类型,也就是日常表格的"栏目信息"。
A) 表型 B) 记录 C) 字段 D) 关键字
24 ( )能够创建数据库。
A) 有CREATE DATABASE权限的用户 B) 任何SQL Server用户
C) 任何Windows用户 D) 任何混合用户
25 SQL Server 2000 客户端工具安装对硬盘空间的最低要求是( )MB。
A) 180MB B) 170MB C) 65MB D) 90MB
26 SQL Server 2000 完全安装对硬盘空间的最低要求是()MB。
A) 180MB B) 170MB C) 65MB D) 90MB
27 SQL Server 2000 采用的身份验证模式有( )
A) 仅WindowsNT身份验证模式 B) 仅SQL Server身份验证模式
C) 混合模式及仅WindowsNT身份验证模式 D) 以上都不对
28 以下( )不属于数据库对象
A) 表和视图 B) 数据类型和默认值 C) 触发器 D) 存储过程
29 下列( )不属于SQL Server 2000在安装时创建的系统数据库。
A) master B) model C) msdb D) userdb
30 数据库管理系统、操作系统、应用软件的层次关系从核心到外围分别是( )。
A.数据库管理系统、操作系统、应用软件 B. 操作系统、数据库管理系统、应用软件
C.数据库管理系统、应用软件、操作系统 D. 操作系统、应用软件、数据库管理系统
31下列哪个不是数据库系统必须提供的数据库控制功能( )。
A、安全性 B、完整性 C、并发控制 D、可移植性
32关系模型的完整性约束中,实体完整性规则是指关系中( )。
A.不允许有主行 B.属性值不允许为空
C.主键值不允许为空 D.外键值不允许为空
33 事务的原子性是指( )。
A. 事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
34 SQL Server中,为便于管理用户及权限,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为( )。
A.帐户 B.角色 C.登录 D. SQL Server用户
35在Transact-SQL中,使用INSERT命令添加数据,若需要添加一批数据应使用( )语句。
A.INSERT„VALUES B.INSERT„SELECT C.INSERT„DEFAULT D.A B C均可
36 “保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。”这是指数据的( )。
A.安全性 B.完整性 C.并发控制 D.恢复
37关系数据库中的视图属于4个数据抽象级别中的( )。
A.外部模型 B.概念模型 C.逻辑模型 D.物理模型
38关系数据库系统设计中,在数据库设计的( )阶段,需要将E-R模型转换为关系数据模型。
A.概念设计 B.物理设计 C.逻辑设计 D.运行阶段
39 SQL语言中最重要的也是使用最频繁的语句是( )。
A.SELECT B.INSERT C.UPDATE D.DELETE
40 与HAVING子句一起使用的子句是( )。
A.ORDER BY B.WHERE C.JOIN D.GROUP BY
- - 12 - - 41 SQL Server2000触发器主要针对下列语句创建( )。
A.SELECT.INSERT.DELETE B.SELECT.UPDATE.INSERT
C.INSERT.UPDATE.CREATE D.INSERT.UPDATE.DELETE
42 Transact-SQL对标准SQL的扩展主要表现为( )。
A.加入了程序控制结构和变量 B.加入了建库和建表语句
C.提供了分组(Group By)查询功能 D.提供了Min.Max等统计函数
43 有关存储过程的叙述中不正确的是( )。
A.SQL Server中定义的过程被称为存储过程
B.存储过程可以带多个输入参数,也可以带多个输出参数
C.可以用EXECUTE(或EXEC)来执行存储过程
D.使用存储过程可以减少网络流量
44.设有一个关系:DEPT (DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成 WHERE DNAME LIKE ( )
A. _ _ W _ % B. _ %W_ _ C. _W_ _ D. _W_ %
45 SQL基本表的创建中是通过( )实现参照完整性规则的。
A.主键子句 B.外键子句 C.检查子句 NULL
46在文件系统中,所具有的数据独立性是 ( )
A.系统独立性 B.物理独立性 C.逻辑独立性 D.设备独立性
47嵌入式SQL的预处理方式,是指 ( )
A.识别出SQL语句,加上前缀标识和结束标志 B.把嵌入的SQL语句处理成函数调用形式
C.对源程序进行格式化处理 D.把嵌入的SQL语句编译成目标程序
48 DBMS的并发控制子系统,保证了事务( )的实现
A.原子性 B.一致性 C.隔离性 D.持久性
49数据库的概念模型独立于( )。
A、具体的计算机和DBMS B、E-R图 C、信息世界 D、现实世界
50( )是存储在计算机内有结构的数据的集合。
A、数据库系统 B、数据库 C、数据库管理系统 D、数据结构
51层次型、网状型和关系型数据库划分的原则是( )。
A、记录长度 B、文件大小 C、联系的复杂程度 D、数据之间的联系
52数据库的( )是指数据库的正确性和相容性。
A、安全性 B、完整性 C、并发控制 D、备份
53层次型数据库结构是( )。
A、图形结构 B、树型结构 C、二维表 D、综合结构
54创建表之间的关系时,正确的操作是( )。
A.关闭当前打开的表 B.打开要建立关系的表
C.关闭所有打开的表 D.关闭与之无关的表
55有一个关系:学生 (学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于()
A.实体完整性约束 B.参照完整性约束
C.用户自定义完整性约束 D.关键字完整性约束
56 以下对SQL Server描述不正确的是( )。
A. 支持XML B. 支持用户自定义函数
C. 支持邮件集成 D. 支持网状数据模型
57 如果在SQL Server上运行一个非常大的数据库,为取得较好效果应选用安装( )。
A. 企业版 B. 标准版 C. 个人版 D. 开发版
58 语句“USE master GO SELECT * FROM sysfiles GO”包括( )个批处理。
- - 13 - - A. 1 B. 2 C. 3 D.4
59 SQL Server的字符型系统数据类型主要包括( )。
A. Int、money、char B. char、varchar、text
C. datetime、binary、int D. char、varchar、int
60 如果要在SQL Server中存储图形图像、Word文档文件,不可采用的数据类型是( )。
A. binary B. varbinary C. image D. text
61下面关于Timestamp数据类型描述正确的是:( )。
A. 是一种日期型数据类型 B. 是一种日期和时间组合型数据类型
C. 可以用来替代传统的数据库加锁技术 D. 是一种双字节数据类型
62 下列命令不能执行的是( )。
A. SELECT * FROM [select] B. SELECT * FROM @MyTable
C. SELECT * FROM [MyTable] D. SELECT * FROM MyTable
63 下面关于索引的描述不正确的是( )。
A. 索引是一个指向表中数据的指针 B. 索引是在列上建立的一种数据库对象
C. 索引的建立和撤消对表中的数据毫无影响 D. 表被撤消时将同时撤消在其上建立的索引
64 下面关于聚集索引和非聚集索引说法正确的是( )。
A. 每个表只能建立一个非聚集索引 B. 非聚集索引需要较多的硬盘空间和内存
C. 一张表上不能同时建立聚集和非聚集索引 D. 一个复合索引只能是聚集索引
65“Create Unique Index AAA On 学生表(学号)”将在学生表上创建名为AAA的( )。
A. 惟一索引 B. 聚集索引 C. 复合索引 D. 唯一聚集索引
66 以下软件产品中,是数据库管理系统的是( )。
A. PowerBuilder B. DB2 C. Delphi D. Visual Basic
67 Delphi是( )。
A. 数据库软件 B. 图形处理软件
C. 系统软件 D. 应用开发软件
68 SQL Server2000标准版不支持的操作系统是( )。
A. Windows 2000 Server B. Windows NT Server
C. Windows98 D. Windows 2000 Advanced Server
69 如果希望完全安装SQL Server2000,则应选择( )。
A. 典型安装 B. 最小安装 C. 自定义安装 D. 仅连接
70要想使SQL Server2000数据库管理系统开始工作,必须首先启动( )。
A. SQL Server服务器 B. 查询分析器
C. 网络实用工具 D. 数据导入和导出程序
71 用于配置客户端网络连接的工具是( )。
A. 企业管理器 B. 客户端网络实用工具
C. 查询分析器 D. 联机帮助文档
72当数据库损坏时,数据库管理员可通过何种方式恢复数据库( )。
A. 事务日志文件 B. 主数据文件
C. DELETE语句 D. 联机帮助文件
73 SQL Server2000系统中的所有系统级信息存储于哪个数据库( )。
A. master B. model C. tempdb D. msdb
74 下面关于tempdb数据库描述不正确的是( )。
A. 是一个临时数据库 B. 属于全局资源
C. 没有权限限制 D. 是用户建立新数据库的模板
75下列标识符可以作为局部变量使用( )。
A. [@Myvar] B. My var C. @Myvar D. @My var
- - 14 - - 76 Transact-SQL支持的程序结构语句中的一种为( )。
A. Begin…End B. If…Then…ELSE
C. Do Case D. Do While
77 不属于SQL Server2000系统全局变量的是( )。
A. @@Error B. @@Connections
C. @@Fetch_Status D. @Records
78 属于事务控制的语句是( )。
A. Begin Tran、Commit、RollBack
B. Begin、Continue、End
C. Create Tran、Commit、RollBack
D. Begin Tran、Continue、End
79 下列SQL Server2000语句中出现语法错误的是( )。
A. DECLARE @Myvar INT B. SELECT * FROM [AAA]
C. CREATE DATABASE AAA D. DELETE * FROM AAA
80 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。
A. 插入 B. 修改 C. 删除 D. 查询
81关于数据描述对的是( )
A数据是数字与符号的集合 B程序也可称为数据
C描述事物的符号记录称为数据 D图形图像等类型属于多媒体范围,不算数据
82数据库的定义不对的是( )
A数据仓库 B 可共享的数据集合
C有较小冗余的数据集合 D 较高独立性的数据集合
83数据库管理系统是( )。
A 可供一般用户使用的系统 B 一个软件硬件相结合的系统
C 供管理员使用的系统 D 介于用户与操作系统间的一个软件
84关于数据库的数据控制功能不包括( )
A数据库恢复 B安全性控制 C 分布式控制 D并发控制
85数据模型是( )
A表示实体间联系的模型 B现实世界数据的描述
C用表来表示 D信息模型的具体化
86进行自然联接运算的两个关系必须具有( )
A相同属性个数 B 公共属性 C 相同关系名 D 相同关键字
87 DB、DBMS和DBS三者间的关系是( )
A DB包括DBMS和DBS B DBS包括DB和DBMS
C DBMS包括DBS和DB D DBS与DB和DBMS无关
88 SQL的查询语句的WHERE子句中,关于空值对的是()
A字段=NULL B 字段<>NULL C 字段 IS NULL D 字段 NOT IS NULL
89 关于关系系统不正确的说法是( )
A 是一个软件系统 B是RDBMS C 支持关系模型的系统 D 支持表结构的系统
90 以下的英文缩写中表示数据库管理系统的是( )。
A.DB B.DBMS C.DBA D.DBS
91 DBMS是( )。
A. 操作系统的一部分 B.一种编译程序
C.在操作系统支持下的系统软件 D.应用程序系统
92 SQL语言中,删除一个表的命令是( )
- - 15 - - A. DELETE B. DROP C. CLEAR D. REMOVE
93 ( )是按照一定的数据模型组织的,长期存储在计算机内,可为多个用户共享的数据的聚集。
A.数据库系统 B.数据库 C.关系数据库 D.数据库管理系统
94 ( )处于数据库系统的核心位置。
A.数据模型 B.数据库 C.数据库管理系统 D.数据库管理员
95 ( )是数据库系统的基础。
A.数据模型 B.数据库 C.数据库管理系统 D.数据库管理员
96 数据管理技术发展阶段中,文件系统阶段与数据库系统阶段的主要区别之一是数据库系统( )。
A.有专门的软件对数据进行管理 B.采用一定的数据模型组织数据
C.数据可长期保存 D.数据可共享
97 关系数据模型通常由3部分组成,它们是( )。
A. 数据结构、数据通信、关系操作 B. 数据结构、关系操作、完整性约束
C. 数据通信、关系操作、完整性约束 D. 数据结构、数据通信、完整性约束
98 要想成功地运转数据库,就要在数据处理部门配备( )。
A.部门经理 B.数据库管理员 C.应用程序员 D.系统设计员
99下列说法不正确的是( )。
A.数据库避免了一切数据重复 B.数据库减少了数据冗余
C.数据库数据可为经DBA认可的用户共享 D.控制冗余可确保数据的一致性
100 所谓概念模型,指的是( )。
A.客观存在的事物及其相互联系 B.将信息世界中的信息数据化
C.实体模型在计算机中的数据化表示D.现实世界到机器世界的一个中间层次,即信息世界
101 在概念模型中,将实体所具有的某一特性称为( )。
A.外码 B.候选码 C.属性 D.实体型
102 在数据库技术中,实体-联系模型是一种( )。
A. 逻辑数据模型 B. 物理数据模型 C. 结构数据模型 D. 概念数据模型
103 一个学生可以同时借阅多本图书,一本图书一次只能由一个学生借阅,学生和书之间为( )的联系。
A.一对一 B.一对多 C.多对多 D.多对一
104 一个仓库可以存放多种零件,每种零件可以存放在不同的仓库中,仓库和零件之间为( )的联系
A.一对一 B.一对多 C.多对多 D.多对一
105 E-R图中的联系可以与()实体有关。
A.0个 B.1个 C.一个或多个 D.多个
106用E/ R图表示学生选课,图中正确的是()。
- - 16 - -
107下列关于数据库运行和维护的叙述中,( )是正确的。
A.只要数据库正式投入运行,标志着数据库设计工作的结束。
B.数据库的维护工作就是维护数据库系统的正常运行。
C.数据库的维护工作就是发现错误,修改错误。
D.数据库正式投入运行标志着数据库运行和维护工作的开始。
108 DBMS对数据库的维护功能主要通过( )实用程序实现。
A.数据装载程序 B.备份程序
C.文件重组织程序 D.性能监控程序
109下面( )不是数据库系统必须提供的数据控制功能。
A.安全性 B.可移植性 C.完整性 D.并发控制
110( )是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位
A.程序 B.命令 C.事务 D.文件
111 事务是数据库操作的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于( )状态。
A.安全性 B.一致性 C.完整性 D.可靠性
112多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一样使用它,为此,数据库系统必须进行( )。
A.安全性控制 B.完整性控制 C.并发控制 D.可靠性控制
113解决并发操作带来的数据不一致性问题普遍采用( )。
A.封锁 B.恢复 C.存取控制 D.协商
114 在SQL Server中,有关页的叙述中正确的是( )。
A.页是除行外的最小数据单位
B.一个页有8KB
C.表中的行不能跨页存放,一行的数据必须在同一个页上
D.8个连续的页称为1个簇
115 以下关于SQL语句的书写准则中不正确的是( )。
A. SQL语句对大小写敏感,关键字需要采用大写形式
B. SQL语句可写成一行或多行,习惯上每个子句占用一行
C. 关键字不能在行与行之间分开,并且很少采用缩写形式
D. SQL语句的结束符为分号“;”
116 对于数据库的管理,SQL Server的授权系统将用户分成四类,并将它们按权限大小分层,其中- - 17 - - 权限最大的是( )
A 一般用户 B 系统管理员 C 数据库拥有者 D 数据库对象拥有者
117 使用SQL语句进行查询操作时,若希望查询结果中不出现重复元组,应在SELECT子句中使用( )保留字。
A. UNIQUE B.ALL C.EXCEPT D.DISTINCT
118 在以下SELECT 语句的子句中,放在最后的应该是( )子句。
A.GROUP BY B.HAVING C.WHERE D.ORDER BY
119 若要修改基本表中某一列的数据类型,需要使用ALTER语句中的( )子句。
A. DELETE B. DROP C. MODIFY D. ADD
120 向基本表中增加一个新列后,原有元组在该列上的值是( )。
A.TRUE B.FALSE C.空值 D.不确定
121 查询中需要统计元组的个数时,应使用( )函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
122 查询中需要统计某列中值的个数应使用( )函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
123 若用如下的SQL语句创建一个student表:
CREATE TABLE student( NO CHAR(4) NOT NULL,
NAME CHAR(8) NOT NULL,
SEX CHAR(2),
AGE SMALLINT );
可以插入到student表中的是( )。
A.('1031','曾华',男,23) B.('1031','曾华',NULL,NULL)
C.(NULL,'曾华','男',23) D.('1031',NULL,'男',23)
第126题到第128题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩
124 检索学生姓名及其所选修课程的课程号和成绩,正确的SELECT语句是( )。
A. SELECT ,SC.C#,
FROM S WHERE S.S#=SC.S#;
B. SELECT ,SC.C#,
FROM SC WHERE S.S#=;
C. SELECT ,SC.C#,
FROM S,SC WHERE S.S#=SC.S#;
D. SELECT ,SC.C#, FROM S,SC;
125 检索选修课程“C2”的男生中的最高成绩,正确的SELECT语句是( )。
A. SELECT MAX(GRADE) FROM SC
WHERE CN='C2’ AND SEX='男';
B. SELECT MAX(GRADE) FROM SC,C,S
WHERE CN=‘C2‘ AND SEX=’男‘;
C. SELECT MAX(GRADE) FROM SC,S
WHERE SC.C#=C.C# AND CN=’C2‘ AND SEX=’男‘;
D. SELECT MAX(GRADE) FROM SC,C,S
WHERE SC.C#=C.C# AND SC.S#=S.S# AND CN='C2' AND SEX='男';
- - 18 - - 126 检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是( )。
A. SELECT S#,SUM(GRADE) FROM SC
WHERE GRADE>=60
GROUP BY S#
ORDER BY 2 DESC
HAVING COUNT(*)>=4
B. SELECT S#,SUM(GRADE)
FROM SC
WHERE GRADE>=60
GROUP BY S#
HAVING COUNT(*)>=4
ORDER BY 2 DESC
C. SELECT S#,SUM(GRADE)
FROM SC
WHERE GRADE>=60
HAVING COUNT(*)>=4
GROUP BY S#
ORDER BY 2 DESC
D. SELECT S#,SUM(GRADE)
FROM SC
WHERE GRADE>=60
ORDER BY 2 DESC
GROUP BY S#
HAVING COUNT(*)>=4
127 SQL Server提供了4种通配符,?、%、[ ]、和^。若要表示一个4位的字符串,该字符串以T开头,后四位是1到5的数字,正确的表示方法是()。
A.'T????' B.'T%' C.'T[1-5][1-5][1-5][1-5]'
D.'T[1,2,3,4,5][1,2,3,4,5][1,2,3,4,5][1,2,3,4,5]'
128 在Transact-SQL中,查询时将student表的bh列标题命名为“编号”的正确操作是( )。
A.SELECT bh 编号 B. SELECT 编号 bh
FROM student FROM student
C.SELECT bh=编号 D. SELECT bh AS 编号
FROM student FROM student
第129题到第131题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE成绩
129 查询所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是( )。
A. SELECT SN,AGE,SEX FROM S
WHERE AGE>(SELECT AGE FROM S WHERE SN='王华')
B. SELECT SN,AGE,SEX FROM S
WHERE AGE>ANY
( SELECT AGE FROM S WHERE SN='王华')
- - 19 - - C. SELECT SN,AGE,SEX FROM S
WHERE AGE>ALL
( SELECT AGE FROM S WHERE SN='王华')
D. SELECT SN,AGE,SEX FROM S
WHERE AGE>SOME
( SELECT AGE FROM S WHERE SN='王华')
130查询选修了课程号为“C2”的学生中成绩最高的学生的学号,不正确的SELECT语句是( )。
A. SELECT S# FROM SC WHERE C#='C2' AND GRADE>=ALL
( SELECT GRADE FROM SC WHERE C#='C2')
B. SELECT S# FROM SC WHERE C#='C2' AND GRADE IN
( SELECT MAX(GRADE) FROM SC WHERE C#='C2')
C. SELECT S# FROM SC WHERE C#='C2' AND GRADE=
( SELECT MAX(GRADE) FROM SC WHERE C#='C2')
D. SELECT S# FROM SC WHERE C#='C2' AND GRADE>=ANY
( SELECT GRADE FROM SC WHERE C#='C2')
131查询所有没有被学生选过的课程的名称,正确的SELECT语句是( )。
A. SELECT FROM C JOIN SC ON SC.C#=C.C# WHERE C.C# IS NULL
B. SELECT FROM C LEFT JOIN SC ON SC.C#=C.C# WHERE SC.C# IS NULL
C. SELECT FROM SC LEFT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
D. SELECT FROM SC RIGHT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
132 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )
A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb
133在SQL Server中,以下( )约束属于域完整性约束。
A.DEFAULT B.CHECK C.NULL D.FOREIGN KEY
134有关默认对象与默认约束的叙述中正确的是( )。
A.默认约束是嵌入到表的结构中,默认对象是独立于表的
B.删除表时默认约束与默认对象同时被删除
C.默认约束能实现的功能默认对象也能实现
D.一个默认对象可以绑定到多个列上
135 “保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。”这是指数据的( )。
A.安全性 B.完整性 C.并发控制 D.恢复
136 关系数据库中,实现实体之间的联系是通过表与表之间的()
A.公共索引 B.公共存储 C.公共元组 D.公共属性
137 在数据系统中,对存取权限的定义称为()。
A.命令 B.授权 C.定义 D.审计
138 SQL Server 2000提供了4层安全防线,其中“SQL Server通过登录账号设置来创建附加安全层。用户只有登录成功,才能与SQL Server建立一次连接。”属于( )。
A. 操作系统的安全防线 B. SQL Server的运行安全防线
C. SQL Server数据库的安全防线 D. SQL Server数据库对象的安全防线
139 下列关于数据文件与日志文件的描述中,正确的是( )。
A.一个数据库必须有三个文件组成:主数据文件、次数据文件和日志文件
B.一个数据库可以有多个主数据库文件
C.一个数据库可以有多个次数据库文件
D.一个数据库只能有一个日志文件
140为了防止一个用户的工作不适当地影响另一个用户,应该采取( )
A.完整性控制 B.安全性控制 C.并发控制 D.访问控制
- - 20 - - 141数据库中存放两个关系:教师(教师编号,姓名)和课程(课程号,课程名,教师编号),为快速查出某位教师所讲授的课程,应该( )
A 在教师表上按教师编号建索引 B 在课程表上按课程号建索引
C 在课程表上按教师编号建索引 D 在教师表上按姓名建索引
142 如果要修改表的结构,应该使用SQL语言的命令( )
A UPDATE TABLE B MODIFY TABLE
C ALTER TABLE D CHANGE TABLE
143 已知职工和职工亲属两个关系,当职工调出时,应该从职工关系中删除该职工的元组,同时在职工亲属关系中删除对应的亲属元组,在SQL语言中,定义这个完整性约束的短语是( )
A ON DELETE ALL B ON DELETE RESTRICT
C ON DELETE SET NULL D ON DELETE CASCADE
144 安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库被删除后,不影响系统的正常运行,这个数据库是( )
A master数据库 B model数据库
C tempdb数据库 D pubs数据库
145有一个网络数据库应用系统,其中一台计算机A存有DBMS软件、所有用户数据和应用程序,其余各节点作为终端通过通信线路向A发出数据库应用请求,这种方式属于( )
A.集中式数据库体系结构 B.主从式数据库体系结构
C.客户机/服务器数据库体系结构 D.分布式数据库体系结构
146已知关系R如图1所示,可以作为R主码的属性组是( )
R
A
1
1
2
1
1
B
2
3
4
4
3
C
3
4
5
3
4
5
D
4
5
6
4
7
6 3 4
图1
A ABC
B ABD
C ACD
D BCD
147已知成绩关系如图2所示。
执行SQL语句:
SELECT COUNT(DISTINCT学号)
FROM成绩
WHERE分数>60
查询结果中包含的元组数目是( )
成绩
学号 课程号 分数
S1 C1 80
S1 C2 75
- - 21 - - S2 C1 null
S2 C2 55
S3 C3 90
图2
A 1
B 2
C 3
D 4
148已知关系:厂商(厂商号,厂名) PK=厂商号
产品(产品号,颜色,厂商号) PK=产品号,FK=厂商号
假设两个关系中已经存在如图4所示元组:
厂商 产品
厂商号 厂名产 产品号 颜色 厂商号
C01 宏达 P01 红 C01
C02 立仁 P02
C03 广源
图4
若再往产品关系中插入如下元组:
I(P03,红,C02) II(P01,蓝,C01)
III(P04,白,C04) IV(P05,黑,null)
能够插入的元组是( )
A I,II,IV B I,III C I,II D I,IV
二、填空题
1. SQL Server2000采用( )计算模型,通过中央服务器集中存储数据资源。
2. SQL Server2000采用的结构化查询语言称为 ( )。
3. SQL Server2000客户机传递到服务器上的一组完整的数据和SQL语句称为 ( )。
4. SQL Server2000的datetime数据类型主要用来存储( )和( )的组合数据。
5. 函数LEFT(‘cbcdef’,2)的结果是 ( )。
6. SQL Server2000中的整数类型分别为tinyint、smallint、int、和bigint,它们分别占用( )、( )、( )和( )个存储字节。
7. SQL Server2000提供的最常用的管理工具是( )和( )。
8. 在一个已存在数据的表中增加不带默认值的列,一定要保证所增加的列允许( )值。
9. 一个局部变量的使用范围局限于一个( )内,即两个( )语句之间。
10. SQL Server2000中为局部变量赋值的语句是( )和 ( ),( )可以一次给多个变量赋值,而 ( ) 只能给一个变量赋值。
11. 触发器是一种特殊的 ( ) ,基于 ( )而创建,主要用来保证数据的完整性。
12. 局部变量的开始标记为( ),全局变量的开始标记为( )。
13. 在SQL Server2000中,每个程序块的开始标记为关键字( ),结束标记为关键字( )。
14. 在循环结构的语句中,当执行到关键字( )后将终止整个语句的执行,当执行到关键字( )后将结束一次循环体的执行。
15.判断使用FETCH语句读取数据是否成功的全局变量为( )。
16. 要访问SQL Server2000数据库服务器,用户必须提供正确的( )和( )。
- - 22 - -
黄 C03 17. 打开和关闭游标的语句关键字分别为( )和( )。
18. 在SQL Server2000中,一个事务是一个( )的单位,它把必须( )或( )的一组操作捆绑在一起。
19. 建立一个存储过程的语句关键字为( ),执行一个存储过程的语句关键字为( )。
20. 单行或行尾注释的开始标记为( ),多行注释的开始标记为( ),结束标记为( )。
21. SQL Server2000与Windows 2000等操作系统完全集成,可以使用操作系统的用户和域账号作为数据库的( ) 。
22. 安装SQL Server2000时需要以本地 ( )身份登录操作系统。
23. SQL Server2000服务管理器程序的主要作用是( )、暂停、( )服务器。
24. SQL Server2000主数据文件、次数据文件和事务日志文件默认的扩展名分别为( )、 ( )和( )。
25. SQL Server2000的数据库分为( )和( )两种类型。
26. 每个SQL Server2000数据库下都包括 ( )、( )、tempdb 和 msdb 四个系统数据库。
27. 一般可以使用( )命令来标识Transact-SQL批处理的结束。
28. varchar数据类型可以自动去掉字段或变量尾部的 ( )以节省空间。
29. 在SQL Server2000中,通常使用( )数据类型来表示逻辑数据。
30. 函数Right(‘abcdef’,2)的结果是( ) 。
31. 在SQL Server2000中主要是通过使用( )运行Transact-SQL语句。
32.( )系统数据库主要用来进行复制、作业调度和管理报警等活动。
33. SQL Server2000支持两种形式的变量,即 ( ) 和( )。
34. 在SQL Server2000中,一个事务处理控制语句以关键字( )开始,以关键字( )或( )结束。
35. 触发器是一种特殊的存储过程,它可以在对一个表上进行插入、删除和( )操作中的任一种或几种操作时被自动调用执行。
36. CHECK约束被称为检查约束,UNIQUE约束被称为( )约束。
37. 找回被删除表的惟一方法是事先做好数据库的( )工作。
38. 可以将视图理解为存储在SQL Server数据库中的一条经过预编译的( )语句。
39. 常见的SQL Server2000的版本一般包括( )、 标准版 、( )、开发版等。
40. SQL Server中的数据类型主要包括( )、 字符 、( )、二进制、位和双字节等类型。
41. Microsoft SQL Server2000是运行在( )操作系统平台上的、逻辑模型为( )型数据库管理系统。
42. 对表中记录的维护工作主要有增加、( )和( )操作,均可通过企业管理器或Transact-SQL语句完成。
43. 在Transact-SQL语句中需要把日期时间型数据常量用( )括起来。
44. 使用create database命令定义一个数据库,定义其数据文件以关键字( )开始,定义日志文件以关键字( )开始。
45. 修改数据库定义的命令关键字为( ),删除整个数据库的命令关键字为( )。
46. 在SQL Server中,打开一个数据库使之成为当前库,有( )种方法,其中之一使用的命令关键字为( )。
47. 在SQL Server中,通常不需要用户建立索引,而是通过使用( )约束和( )约束,由系统自动建立索引。
48. 定义局部变量的语句关键字为( ),被定义的各变量之间必须用( )字符分开。
49. 在SQL Server中,每个程序块的开始标记为关键字( ),结束标记为关键字( )。
- - 23 - - 50. 每次执行使用游标的取数、修改或_删除_操作的语句时,能够对表中的( )个记录进行操作。
51. 每个存储过程可以包含( )Transact-SQL语句,可以在过程体中的任何地方使用( )语句结束过程的执行,返回到调用语句后的位置。
52. 对用户授予和收回数据库操作的语句关键字分别为( )和( )。
53. 在授予用户访问权限的语句中,所给表名选项以关键字( )开始,所给用户名选项以关键字( )开始。
54. 在收回用户访问权限的语句中,所给表名选项以关键字( )开始,所给用户名选项以关键字( )开始。
55. SQL Server2000服务器可以被多台客户机访问,数据库服务器仅返回客户端应用程序所需要的数据,这样做的好处是可以减少( )。
56. SQL Server2000提供了动态的自我管理机制,能够自动增大或缩小数据库所占用的( )。
57.在网络环境下,当多个用户同时访问数据库时,就会产生并发问题,SQL Server2000是利用
( )完成并发控制的。
58. 如果在Windows NT/2000上安装SQL Server2000,需要事先设置至少一个( )。
59. 默认情况下,SQL Server2000服务器的名字为( )。
60. 在网络多用户环境下,在停止SQL Server2000服务之前,最好先执行( )操作。
61. SQL Server2000将数据组织成用户可以看见的逻辑组件,而在磁盘上则作为( )实现。
62. 常用的数据库对象主要包括缺省、约束、用户、图表、用户自定义数据类型、( )、索引、( )、触发器、( )等。
63. SQL Server2000中的数据类型通常是指字段列、存储过程参数和( )的数据特征。
64. 在SQL Server2000中,通常使用( )数据类型来表示逻辑数据。
65. SQL Server2000中的整数类型包括( )、( )、( )和( )四种。
66. 如果希望修改数据库的名字,可以使用的系统存储过程是( )。
67. 数据库备份和恢复的Transact-SQL语句分别是( )和( )。
68. SQL Server2000中引入索引主要是为了加( )速度,也可保证数据的惟一性。
69. 索引可以加速selcet语句中Order By和( )选项的执行速度。
70.
71.
72.
73.
索引一经创建就完全由SQL Server2000系统 ( ) 选择和维护。
索引会影响对基本表的( )、( )和( )等操作的速度。
从是否改变基本表记录的物理位置角度可将索引分为( ) 和( ) 索引两类。
聚集索引与非聚集索引相比,查询速度更( ) 。
74. 注释是一些说明性的文字,而不是 ( ) 语句,不参与程序的编译。
75. 索引可以由系统根据约束条件自动建立,也可以由用户通过命令或菜单方式建立,但它的( )和( )将根据需要由系统自动实现,无须用户过问。
76. 基本表中的记录数越( ),每条记录占用的字节数越( )时,使用索引就越有利。
77. 创建索引的命令关键字为( ),删除索引的命令关键字为( )。
78. 在索引命令中使用关键字CLUSTERED或NOCLUSTERED分别表示将建立的是( )或( )索引。
79. 在基本表的某个列上建立索引,可以使基本表中的所有记录按该列值的( )排列。
80. 当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个( )唯一和( )的索引。
81. 当指定基本表中某一列或若干列为UNIQUE约束时,则系统将在这些列上自动( )一个唯一值( )。
82. 若规定基本表中某一列或若干列为非空和唯一值双重约束,则这些列就是该基本表的- - 24 - - ( ),若只规定为唯一值约束,则( )空值重复出现。
83. 在SQL Server2000中,前后相邻的语句之间可以使用( )、( )或( )字符分开。
84. 在条件结构的语句中,关键字IF和ELSE之间和ELSE之后,可以使用( )语句,也可以使用具有( )格式的语句块。
85. 声明游标语句的关键字为( ),该语句必须带有( )子句。
86. 使用游标对基本表进行修改和删除操作的语句中,WHERE选项的格式为“( )”。
87. 在一个存储过程定义的AS关键字前可以定义该过程的( ),AS关键字之后为该过程的( )。
88. 创建和删除一个触发器的语句关键字为( )和( )。
89. 在一个表中最多只能有一个关键字为( )的约束,关键字为FOREIGN KEY的约束可以出现( )次。
90. CHECK约束被称为( )约束,UNIQUE约束被称为( )约束。
91. 使用一种约束时,可以使用关键字( )和标识符( )的选项命名该约束,也可以省略该选项由系统自动命名,因为用户很少再使用其约束名。
92. 当一个表带有约束后,执行对表的各种( )操作时,将自动( )相应的约束,只有符合约束条件的合法操作才能被真正执行。
93. 在SQL Server2000中,数据库的安全机制分为4个等级,分别为客户端( )的安全、数据库的( )安全、数据库使用安全和数据库对象的使用安全。
94.数据库系统中传统的三种数据模型有层次模型、( )和( )。
95.关系模式的三类完整性是( )、( )和用户自定义的完整性。
96.聚合函数( )的语义是不重复列的计数。
97.视图是定义在( )之上的虚表,它实质是在内存中经过编译的( )语句。
98.向已存在的表的某一列或某几列添加主键约束,表中已有的数据在这几列上需要满足两个条件:( ) 。
99. 数据是信息的符号表示或称载体;信息是数据的内涵,是数据的语义解释。例如“世界人口已达到20亿”,这是( )。
100. 关系数据库是采用( )作为数据的组织方式。
101. 当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的( )。
102. 联系既可以存在不同的实体之间,还可以在( )存在。
103. ( )是用于管理SQL Server对象的方便而实用的图形化工具,它是SQL Server工具中最重要的一个,通过它可以对SQL Server数据库进行管理和操作。
104. ( )是一个可以交互执行SQL语句和脚本的图形工具,它的主要功能是编辑、编译和执行T-SQL语句,并显示命令结果。
105. ( )用于监视与分析SQL Server 活动、SQL Server服务器的网络进出流量或发生在SQL Server上的事件。
106.( )是指保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。
107.数据库的存取控制机制主要包括两部分:( )和进行权限检查。
108.安全认证是指数据库系统对用户访问数据库系统时所输入的( )和( )进行确认的过程。
109.SQL Server的用户或角色分为二级:一级为( );另一级为( )。
Server有一个默认的登录账号( ),在SQL Server系统中它拥有全部权限,可以执行所有的操作。
111. SQL Server 2000有两种安全认证模式,即( )和( )。
- - 25 - - 112.求0至9随机整数的表达式是( )
113.求一个字符串的第四个字符的asc码值的表达式 ( )
114.求从现在开始115天后的时间表达式( )。
115.( )是一种常用的改善数据库性能的技术。
116. 使用create database命令定义一个数据库,包括定义( )文件和( )文件两个部分。
三、 名词解释、简答
1.数据库
2.表
3.索引。
4.存储过程
5. DTS
6.如何验证SQL Server系统的正确安装结果?
7.创建数据库的3种方法
8.创建索引的3种方法
9.当备份某个数据库时,SQL Server执行哪些操作
10.为什么说SQL Server是关系系统,试举例说明。
有何优缺点?
四、判断题
1.安装Microsoft SQL Server 2000 企业版对操作系统的最低要求可以是Microsoft Windows 2000
Professional。( )
2.每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。( )
3.认证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL Server系统的认证模式。( )
4.在创建表时,不能指定将表放在某个文件上,只能指定将表放在某个文件组上。如果希望将某个表放在特定的文件上,那么必须通过创建文件组来实现。( )
5.当用户定义的数据类型正在被某个表的定义引用时,这些数据类型不能被删除。( )
6.在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。( )
7.索引越多越好。( )
8.视图本身没有数据,因为视图是一个虚拟的表。( )
9.创建触发器的时候可以不是表的所有者或数据库的所有者。( )
10.在一个表上只能创建一个主键。 ( )
11.建立索引可以提高对表的的更新速度。 ( )
s xp系统上应安装sql server 2000 个人版。 ( )
13.表中可以有多个外键。( )
14.存储过程由应用程序调用,在客户机上执行。 ( )
server 2000 中不存在其它dbms系统中的逻辑数据类型。 ( )
16.表的数据行唯一特性可以由主键来实现。 ( )
17.数据文件只能是一个文件组的成员。 ( )
18.只要得到了sql server服务器的登陆帐号及密码, 就可以访问其管理的数据库中的数据。
( )
19.创建视图时不能参考临时表. ( )
20.在一个表上只能建一个聚簇索引. ( )
21.在一个表上可以由多个列组合作为一个主键。 ( )
22.用户不能定义全局变量,但可以修改。 ( )
23.主键是不能为null的。 ( )
24.事务日志文件不属于任何文件组。 ( )
- - 26 - - 25.要访问数据库中的数据,必须得到访问该数据的功能许可。 ( )
server 的导入功能是将原来备份的数据,再重新还原到数据库中。 ( )
27.在数据库系统中,数据独立性指数据之间的相互独立,互不依赖。( )
28.关系型数据库系统中,无论设计关系多么合理,也一定存在数据冗余。( )
29.表中任意两行的值不能相同,任意两列的值也不能相同。( )
30.如果A表中有相对于B表的外键,则B表不能直接删除,一定要A表删除后B表才能删除。( )
31.表上的主键可以由多个列组成,一个表上也可以创建多个主键。( )
Server用户不能定义全局变量,但可以查询全局变量。( )
Server的事务日志文件记录了所有对数据库访问的操作。( )
34.触发器和引发该触发器的操作是作为一个事务处理的。( )
35.数据库系统中,用户是最重要的。 ( )
36.数据库是整个数据库系统的基础。 ( )
37.数据库中表有数据存储,视图也有数据存储。 ( )
38.在数据表定义时设置外键是数据库的安全性控制之一。 ( )
39.一个表中可以同时存在多个候选索引. ( )
40.唯一性约束(unique)可以自动创建主键. ( )
41.在外键上一般应考虑建立索引。 ( )
42. 关系图实现关系模型中的域完整性。 ( )
43.由同一张E-R生成关系模型的关系个数是唯一的。 ( )
44. 局部临时表只能对创建他的用户是可见的。( )
45.实体的多对多联系必须形成一个独立的关系。( )
46. 在表中可以建立多个标识列(identity). ( )
47.Sql标准语言是采用集合操作。( )
五、根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业
varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
procedure xxk3
as
begin
select 学号,avg(成绩) as 平均成绩
from score
group by 学号
end
procedure xxk4
(
@a char(8),@b varchar(10),@c numeric(5,2)
)
as
begin
update score
set 成绩=@c
where 学号=@a and 课程名=@b
- - 27 - - end
procedure xxk5
(
@a char(8),@b varchar(10),@c numeric(5,2)
)
as
begin
insert into score
values(@a,@b,@c)
end
procedure xxk6
(
@a char(8),@b varchar(10)
)
as
begin
delete from score
where 学号=@a and 课程名=@b
end
5. create table students (
学号 char(8) primay key,
姓名 varchar(8),
年龄 int,
专业 varchar(20),
入学日期 datetime
)
6. ALTER DATABASE AAA
MODIFY FILE (
NAME = AAA_data,
SIZE = 5,
MAXSIZE=10 )
7. 假设Students表中已存在大量学生记录,求所有“计算机软件”专业学生的平均年龄,如果平均年龄大于19则显示“平均年龄超过19”,否则显示“平均年龄没有超过19”。
8. SELECT *
FROM Students
WHERE DATEPART(year,入学日期) =DATEPART(year,GETDATE())
- - 28 - - procedure xxk3
as
begin
select 学号,max(成绩)
from score
group by 学号
end
10. DECLARE @MyNO CHAR(8)
SET @MyNO='20030001'
IF (SELECT 专业 FROM Students WHERE 学号=@MyNO)='计算机软件'
BEGIN
SELECT AVG(成绩) AS 平均成绩
FROM Score
WHERE 学号=@MyNO
END
ELSE
PRINT '学号为' +@MyNO+'的学生不存在或不属于软件专业'
GO
11. declare @a numeric(5,2)
set @a=(select avg(成绩) from score)
select *
from score
where 成绩>=@a
12. declare @a numeric(5,2),@b numeric(5,2)
set @a=(select max(成绩) from score)
set @b=(select min(成绩) from score)
print @a-@b
procedure xxk2
as
begin
select x.学号,x.姓名,x.专业,count(*) as 门数
from students x,score y
where x.学号=y.学号
group by x.学号,x.姓名,x.专业
end
六、 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:
学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,
专业 char(10),年级 int)
课程(课程号 char(4),课程名 char(10),课程学分 int)
选课(学生号 char(7),课程号 char(4),成绩 int)
- - 29 - - 按分析下列所给程序语句的相应功能。
1.select *
from 学生
where exists (select *
from 选课
where 学生.学生号=选课.学生号
group by 选课.学生号 having count(*)=3
)
2.select 专业,count(*) as 专业人数
from 学生
group by 专业
order by 专业人数 desc
3.select 专业,性别,count(*) as 人数
from 学生
group by 专业,性别
order by 专业
4.select x.*,课程名,课程学分,成绩
from 学生 x,课程 y,选课 z
where x.学生号=z.学生号 and y.课程号=z.课程号
5.select *
from 学生
where not exists (select y.课程号
from 学生 x inner join 选课 y on x.学生号=y.学生号
where x.姓名=@a and not exists (select *
from 选课
where 学生.学生号=选课.学生号 and y.课程号=选课.课程号
)
)
七、在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:
商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)
商品表2(商品代号 char(8),产地 char(6),品牌 char(6))。
按照下列所给的每种功能写出相应的查询语句。
1. 查询品牌为”Hair”所用商品的商品代码、数量、单价
2.商品库中查询出每种商品的总价值,并按降序排列出来。
3.从商品库中查询出数量最多的一种商品。
- - 30 - -
4.从商品库中查询出同一类商品多于一种的所有分类名。
5.查询每种品牌商品的总数量及品牌。
6.商品库中查询出同一产地的商品只有一种的所有商品。
八、有一个“学生-课程”数据库,数据库中包括三个表:
(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:
SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
根据下列数据库和表,用T-SQL完成下列操作(1题2', 2至7题,每题3')。
1、查所有选修过课的学生的学号
2、 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
3、查考试成绩有不及格的学生的学号
4、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
- - 31 - -
5、查询每门课程的学生最高低分数
6、查询与“刘晨”在同一个系学习的学生
7、将计算机科学系全体学生的成绩置零
九、 操作题
完成下列操作:
1、查询全体学生的详细记录
2、查询年龄在20至23岁之间的学生的姓名、系别、和年龄
3、计算1号课程的学生平均成绩
4、创建一个名为SALE的数据库,其主文件名为SALE_dat,日志文件名为SALE_log,实际存储在c:program filesMicrosoft sql servermssqldata上,其初始大小分别为10M和5M,每次允许增量为10%,最大允许增加到15M和20M;
- - 32 - -
5.建立saler表,要求该表含saler_id , saler_name , phone , fax 几列,具体类型自定,saler_id列非空;
6.修改saler表,将saler_name 列改为varchar(50),允许空,删除Fax列,并增加一个"address"列;
7.向saler表中添加三条记录,其中一条记录的saler_id 为 123 ,有一条记录的phone为23328998;
8.修改SALE数据库中saler表指定的saler_id 为123记录的值,指定其saler_id 为1234,saler_name 为
Jonny,phone 为22228888 ,address 为 ShangHai ;
9.删除saler表中所有电话为23328998的记录;
- - 33 - -
10. 先删除表saler中的所有数据,然后删除表saler,最后将SALE数据库删除;
十、完成下列操作:
1、 向Student表增加“入学时间”列,其数据类型为日期型。
2、删除Student表
3、查询全体学生的学号与姓名
4、查所有选修过课的学生的学号
5、查所有年龄在20岁以下的学生姓名及其年龄
6、查所有姓刘的学生的姓名、学号和性别
7、查姓“欧阳”且全名为三个汉字的学生的姓名
8、计算1号课程的学生平均成绩
9、查询学习1号课程的学生最高分数
10、将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入Student表中
- - 34 - -
11、将学生95001的年龄改为22岁
12、删除学号为95019的学生记录
13、删除计算机科学系所有学生的选课记录
十一、以书中教务管理数据库为例,用T-SQL语句完成完成下列查询功能:
1.显示每个学生的学号、姓名、班级、课程名称、成绩及总分。
2.显示各班的各门功课的最高分、最低分和平均分。
3.检索84年、85年出生的学生姓名、班级、性别、年龄和出生日期。
4.显示各位教师的姓名、任教课程及相应班级及上课地点。
5.统计不同职称的教师的人数,并显示教师姓名、职称。
- - 35 - -
6.显示上海、南京、北京等地的学生姓名、地址,并统计相应的人数。
7.显示书名,出版社,作者及价格;
8.将所有书的价格打九折显示;
9.显示84年以后出生的学生的姓名,性别,班级及出生日期;
10.显示g99402班的男生的所有信息;
11.按出生日期排序显示学生的姓名,性别,出生日期及住址;
12.显示每个学生的学号,总分;
13.按学号排序显示每个学生的学号,姓名,课程号及成绩;
14.显示每个学生的学号,姓名,课程名称及成绩;
15.显示成绩不及格,及80分以上的学生学号,姓名,课程名称及成绩;
- - 36 - -
16.显示不同班级的各课程的最高分,最低分及平均分;
17.显示林红同学不选的课程号;
18 显示成绩都大于80分的学生的学号
十二、某科研部门为了进行科研情况管理,设计了如下三个数据表:
科研课题表KYKT:KTID(课题编号).KTNAME(课题名称).KTJF(课题经费)(万元计)
科研情况表KYQK:RYID(人员编号).KTID(课题编号).SBF(设备费).GZL(工作量:日).SYJF(使用经费)
科研人员表KYRY:RYID(人员编号).RYNAME(人员姓名).ZC(职称).SEX(性别).ADDR(地址)
按要求写出SQL查询语句:
(1) 查询课题经费大于100万元的课题编号及其名称。
(2) 查询同时参加编号为101和105课题的科研人员编号。
(3) 查询科研情况表中所有科研人员的编号。
(4) 检索67号科研人员的信息。
(5) 检索102号课题的平均工作量
(6) 检索工作量在300-400日课题编号.人员编号及工作量.并按工作量降序排序。
(7) 在科研人员中追加一个科研人员(53,DAIHONG,DOTOR,MALL,TIAJIN)。
(8) 删除58号科研人员的所有科研课题。
(9) 修改203号课题的课题经费为100万元。
- - 37 - - (10) 把69号科研人员的工作量减少10% 。
一、选择题
1. A 2. D 3. B 4. A 5. A 6. B 7. A 8. C 9. A 10. D
11. B 12. D 13. A 14. B 15. B 16. B 17. A 18. A 19. B A 20. B
21. A 22. B 23. C 24. A 25. D 26. A 27. C 28. B 29. D 30. B
31. D 32. C 33. A 34. B 35. B 36. A 37. A 38. C 39. A 40. D
41. D 42. A 43. A 44. B 45. B 46. B 47. B 48. B 49. A 50. B
51. D 52. B 53. B 54. B 55. C 56. D 57. A 58. B 59. B 60. D
61. C 62. B 63. B 64. B 65. A 66. B 67. D 68. C 69. A 70. A
71. B 72. A 73. A 74. D 75. C 76. A 77. D 78. A 79. B 80. D
81. C 82. A 83. D 84. A 85. A 86. B 87. B 88. C 89. C 90. B
91. C 92. B 93. B 94. C 95. A 96. B 97. B 98. B 99. A 100. D
101. C 102. D 103. C 104. C 105. C 106. C 107. D 108. D 109. B 110. C
111. B 112. C 113. A 114. B 115. A116. B 117. D 118. D 119. C 120. C
121. C 122. B 123. B 124. C 125. D 126. B127. D 128. D 129. B 130. D
131. B 132. D 133. B 134. A 135. A 136. D 137. B 138. A 139 C.140. C
141. C 142. C 143. D 144. D 145. D146. B147. B148. D
二、填空题
1. 客户机/服务器(或C/S)2. Transact-SQL 3. 批处理4. 日期 时间5.’cb’6. 1 2 4 8
7. 企业管理器 查询分析器 (空) 9. 批处理 GO 10. SELECT SET select set
11.存储过程 表 12. @ @@ END 14. BREAK CONTINUE 15.@@FETCH_STATUS
16.登录帐号 口令(密码) 17. OPEN CLOSE 18. 并发控制 同时执行 同时不执行
19. CREATE PROC EXEC 20.-- /* */ 21. 注册账号(或登录账号)22.系统管理员
23. 启动 停止24. mdf ndf ldf 25. 系统数据库 用户数据库 26. master model 27. GO
28. 空格 30.‘ef’31. 查询分析器 33. 局部变量 系统变量
34. BEGIN TRAN COMMIT [TRAN] ROLLBACK 35. 更新 36. 唯一值 37. 备份 38. SELECT
39.企业版 个人版 40. 数值 日期时间 41. windows 关系 42.删除 修改 43. 单引号
44. FILE ON LOG ON 45. ALTER DATABASE DROP DATABASE 46. 2 USE
47. 主码 唯一值 48. DECLARE 逗号 END 50. 单(一)51. 多条 RETURN(返回) 52.
GRANT REVOKE TO FROM 55. 网络流量56. 硬盘空间
57. 数据封锁机制 58.域用户账号59. 本地计算机名 60. 暂停 61. 操作系统文件
62.表 视图 存储过程 63. 局部变量 64. bit 65 bigint int smallint tinyint
66. sp_renamedb Database Restore Database 68. 查询 69. Group By
70. 自动71.插入 删除 修改 72. 聚集 非聚集 73. 快74. 可执行75. 打开 重建
76. 多 多 INDEX DROP INDEX 78. 聚集 非聚集 79. 升序或降序
80. 非空 聚集 81.建立(创建) 索引 82. 备用(侯选码)码 不允许 83. 空格 分号 换行
84. 单条 END 85. DECLARE CURSOR 查询(或SELECT)
86. WHERE CURRENT OF <游标名>) 87. 参数 过程体
88. CREATE TRIGGER DROP TIRGGER 89. PRIMARY KEY 多 90.检查 唯一值
91. CONSTRAINT <约束名> 92. 更新 检查 93.操作系统 登录 94.网状模型 关系模型
95.实体完整性 参照完整性 96. “count(distinct 列名)” 97.表或视图 select
98.没有重复值和都不能为空 99. 信息 100. 二维表 101. 物理独立性 102.一个实体内部
103. 企业管理器 104. 查询分析器 105. 服务器网络实用工具106. 数据的安全性
107.定义用户权限108.账号 口令109.服务器级用户或角色 数据库级用户或角色
110sa(SystemAdministrator) 111.Windows安全认证模式 SQL Server认证模式
- - 38 - - 112.Floor(10*rand(1)) 113.ascii(substring(字符串名,4,1))
114.dateadd(day, 115 ,getdate() )115. 索引 116. 数据 日志
三、名词解释、简答
1.数据库:数据库是存储数据和其他数据库对象的操作系统文件,是数据库服务器的主要组件,是数据库管理系统的核心。
2.表:表是数据库中的主要对象,用来存储各种各样的信息。表是由行和列组成的。
3.索引:索引就是表中数据和相应存储位置的列表。
4.存储过程:存储过程是存储在服务器上的一组预编译的Transact-SQL语句。
5. DTS:数据转换服务
6.如何验证SQL Server系统的正确安装结果
答:一般如果安装过程中没有出现错误提示,那么就可以认为安装是成功的。也可以使用一些方法来验证SQL Server系统的是否正确安装,如:检查Microsoft SQL Server的服务和工具是否存在,应该自动生成的系统数据库和样本数据库是否存在,以及有关文件和目录是否正确等。
7.创建数据库的3种方法
答:在Microsoft SQL Server系统中,有3种创建数据库的方法:
(1) 使用CREATE DATABASE语句
(2) 使用Create Dacabase Wizard
(3) 使用SQL Server Enterprise Manager
8.创建索引的3种方法
答:在Microsoft SQL Server系统中,有3种创建索引的方法:
(1) 使用CREATE INDEX语句
(2) 使用Create Index Wizard
(3) 使用Index Turning Wizard
9.当备份某个数据库时,SQL Server执行哪些操作
答:当备份某个数据库时,SQL Server执行如下操作:
(1)检查点机制检查数据库,记录最早的事务日志记录的日志序列号;
(2)通过直接阅读磁盘,把全部的数据页写进备份介质中
(3)从捕捉的序列号到日志末尾,写全部的事务日志记录
10.为什么说SQL Server是关系系统,试举例说明。
答:SQL语言是一种高度非过程性的关系数据库语言,采用的是集合的操作方式,操作的对象和结果都是元组的集合,同时SQL语言集数据查询、数据定义、数据操纵、数据控制为一体,功能强大,得到了越来越大广泛的应用。比如一个学生表S,学号、姓名、性别、出生年月,都存在着关系。
有何优缺点?
答:SQL是结构化查询语言的缩写,虽然叫查询语言,但它的功能已经远远超出了查询,是一种集多种功能为一体的关系数据库标准语言。它是一种高度非过程性的关系数据库语言,采用的是集合的操作方式,操作的对象和结果都是元组的集合,用户只需知道“做什么”,无需知道“怎么做”,因此SQL语言接近英语自然语言,结构简洁、易学易用。同时SQL语言集数据查询、数据定义、数据操纵、数据控制为一体,得到了越来越广泛的应用。
四、判断题
1.×2√3.×4.√5.√6.√7.×8.√9.×10×11×12√13√14×15√16√17. √18×19.√20√21√22.×23.√24.√25×26.×27.×28√29. ×30√ 31.×32.√33 ×34√35×36. ×37.×38×39√40×41√42×43×44.√45√46.×47.√
五、根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业
- - 39 - - varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
1
**显示出AAA库中每个学生的平均成绩。
2.
**修改score表中学号为@a的值、课程名为@b的值的学生的成绩为@c的值。
3
**向score表中插入学号为@a的值、课程名为@b的值、成绩为@c的值的学生成绩记录。
4
***从score表中删除学号为@a的值、课程名为@b的值的学生成绩记录。
5.
****创建Students表。
6.
***将AAA数据库的初始大小更改为5MB,最大空间限定为10MB。
7. IF (Select Avg(年龄) From Students Where 专业=’计算机软件’)>19
SELECT ‘平均年龄超过19’
ELSE
SELECT ‘平均年龄没有超过19’
8.
**从Students表中查询出所有当年(系统时间)入学的学生记录。
9.
***显示出AAA库中每个学生的最高成绩
10.
**首先定义一个名为@MyNo的局部变量,并给它赋初值,如果@MyNo属于计算机软件专业,则显示出平均成绩,否则显示“学号为@MyNo的学生不存在或不属于软件专业”。
11.
**从score表中查询出大于等于平均成绩的所有记录。
12.
**求出score表中最高成绩与最低成绩的分数之差。
13.
***显示出AAA库中每个学生的学号、姓名、专业等信息及选课门数
六、 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:
学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,
专业 char(10),年级 int)
课程(课程号 char(4),课程名 char(10),课程学分 int)
选课(学生号 char(7),课程号 char(4),成绩 int)
按分析下列所给程序语句的相应功能。
1.
**从教学库中查询出同时选修了3门课程的全部学生。
2.
**从教学库中查询出每个专业的学生人数,并按人数多少降序排列。
3.
**从教学库中查询出每个专业每种性别的学生人数,并按专业排列。
4.
**从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。
- - 40 - - 5.
***从教学库中查询出选修了姓名为@a的学生的全部选课的所有学生。
七、在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:
商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)
商品表2(商品代号 char(8),产地 char(6),品牌 char(6))。
按照下列所给的每种功能写出相应的查询语句。
1. Select商品表1.商品代号,数量,单价
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and商品表2.品牌=‘Hair’
2. select *,单价*数量 as 总价值
from 商品表1
order by 总价值 desc
3. select *
from 商品表1
where 数量=some(select max(数量)
from 商品表1)
distinct 分类名
from 商品表1
group by 分类名 having count(*)>1
5. Select 品牌,sum(数量) as 总数量
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号
group by 品牌
6. select 商品表1.*,产地
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and 产地 in (select 产地 from 商品表1 x,商品表2 y
where x.商品代号=y.商品代号
group by 产地 having count(*)=1)
八、有一个“学生-课程”数据库,数据库中包括三个表:
(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:
SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
根据下列数据库和表,用T-SQL完成下列操作(1题2', 2至7题,每题3')。
1、
SELECT DISTINCT Sno
FROM SC;
2、
CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20),
Ssex CHAR(1),
- - 41 - - Sage INT,
Sdept CHAR(15));
3、SELECT DISTINCT Sno
FROM Course
WHERE Grade <60;
4、SELECT Sno, Grade
FROM SC
WHERE Cno='3'
ORDER BY Grade DESC;
5、
SELECT CNO,MIN(Grade)
FROM SC
GROUP BY CNO;
6、
SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept
FROM Student
WHERE Sname='刘晨');
7、
UPDATE SC
SET Grade=0
WHERE „CS‟=
( SELECT Sdept
FROM Student
WHERE =);
九、 操作题
完成下列操作:
1、
SELECT *
FROM Student;
2、
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;
3、SELECT AVG(Grade)
FROM SC
WHERE Cno='1';
4、
CREATE DATABASE SALE
ON
( NAME=SALE_data,
FILENAME='c:program filesMicrosoft sql ',
SIZE=10,
MAXSIZE=15,
- - 42 - - FILEGROWTH=10%)
LOG ON
(NAME='SALE_log',
FILENAME='c:programfilesMicrosoftsqlservermssqldatasale_'
SIZE=5,
MAXSIZE=20,
FILEGROWTH=10%)
GO
table saler
( saler_id numeric(10,0) NOT NULL,
saler_name char(100),
phone numeric(8,0),
fax varchar(30)
)
6.
alter table saler
alter column saler_name varchar(50) NULL
go
alter table saler
add address char(100) NULL
GO
alter table saler
drop column fax
go
SALE
Go
Insert saler
( saler_id , saler_name , phone , address )
Values
(„123',' Tony','27406483','NewYork')
Go
Insert saler
( saler_id , saler_name , phone , address )
Values
(„2366',' Tony','23328998','Sydney')
8.
Use SALE
Go
UPDATE saler
SET saler_id = „1234' ,
- - 43 - - saler_name = „Jonny „ ,
phone = „22228888' ,
address = „ShangHai' ,
WHERE saler_id = „123'
go
9.
Use SALE
Go
DELETE
FROM saler
WHERE phone = „23328998'
Go
10.
Use SALE
truncate saler
go
DROP TABLE saler
Go
DROP DATABASE SALE
GO
十、完成下列操作:
1、ALTER TABLE Student ADD Scome DATE;
2、DROP TABLE Student ;
3、SELECT Sno, Sname
FROM Student;
4
SELECT DISTINCT Sno
FROM SC;
5、SELECT Sname, Sage
FROM Student
WHERE Sage <20;
6、SELECT Sname, Sno, Ssex
FROM Student
WHERE Sname LIKE '刘%';
7、SELECT Sname
FROM Student
WHERE Sname LIKE '欧阳__';
8、SELECT AVG(Grade)
FROM SC
WHERE Cno='1';
- - 44 - - 9、
SELECT MAX(Grade)
FROM SC
WHERE Cno='1';
10、INSERT
INTO Student
VALUES ('95020', '陈冬', '男', 'IS', 18);
11、UPDATE Student
SET Sage=22
WHERE Sno='95001';
12、DELETE
FROM Student
WHERE Sno=„95019‟;
13、DELETE
FROM SC
WHERE 'CS'=
(SELETE Sdept
FROM Student
WHERE =);
十一、以书中教务管理数据库为例,用T-SQL语句完成完成下列查询功能:
1.
select
t_id,t_name,_id,_name,student_ from student,course,student_course
where t_id=student_t_id and
_id=student__id
order by t_id
compute sum(grade) by t_id
2. select _id,max(grade),min(grade),avg(grade) from student,student_course
where t_id=student_t_id
group by _id
order by _id
3select student_name,class_id,sex,2007-year(birth)as age,birth from student
where year(birth)=1984 or year(birth)=1985
4
select
r_name,_name,teacher_course__id,teacher_course__classroom
from teacher,course,teacher_course_class
where r_id=teacher_course_r_id
teacher_course__id=_id
5. select teacher_name,profession
from teacher
order by profession
compute count(profession) by profession
6. select student_name,home_addr from student
- - 45 - -
and where home_addr like '%上海%' or home_addr like '%南京%'or home_addr like '%北京%'
compute count(student_name)
7. select book_name,publish_company,author,price from book
8
select book_name,publish_company,author,price*0.9 from book
9.
select student_name,sex,class_id,birth from student
where year(birth)>1984
10. select * from student where class_id='g99402' and sex='1'
11. select student_name,sex,birth,home_addr from student
order by birth
12. select student_id,sum(grade) from student_course
group by student_id
13. select
t_id,t_name,student__id,student_ from
student,student_course
where t_id=student_t_id
order by t_id
t_id,t_name,_name,student_
from student,course,student_course
where t_id=student_t_id
_id=student__id
and
order by t_id
15. select
t_id,t_name,_id,_name,student_ from student,course,student_course
where t_id=student_t_id and
_id=student__id and (grade<60 or grade>=80)
order by t_id,grade
16. select class_id,max(grade)as max,min(grade) as min ,avg(grade) as avg from
student,student_course
where t_id=student_t_id
group by class_id
order by class_id
17. select course_id from course
where course_id not in(select course_id from student_course,student where
t_id=student_t_id and t_name='林红')
18
Select student_id from student_course
Group by student_id having min(grade)>80
十二、某科研部门为了进行科研情况管理,设计了如下三个数据表:
科研课题表KYKT:KTID(课题编号).KTNAME(课题名称).KTJF(课题经费)(万元计)
科研情况表KYQK:RYID(人员编号).KTID(课题编号).SBF(设备费).GZL(工作量:日).SYJF(使用经费)
- - 46 - - 科研人员表KYRY:RYID(人员编号).RYNAME(人员姓名).ZC(职称).SEX(性别).ADDR(地址)
按要求写出SQL查询语句:
(11)
SELECT KTID,KTNAME FROM KYKT WHERE KTJF>100
(12)
SELECT FROM KYQK AS K1,KYQK AS K2 WHERE = AND =’101’AND
=’105’ 或
SELECT RYID FROM KYQK WHERE KTID=’101’ AND RYID IN (SELECT RYID FROM KYQK WHERE
KTID=’105’)
(13)
SELECT DISTINCT RYID FROM KYQK
(14)
SELECT * FROM KYRY WHERE RYID=’67’
(15)
SELECT AVG(GZL) FROM KYQK WHERE KTID=’102’
(16) SELECT KTID,RYID,GZL FROM KYQK WHERE GZL BETWEEN 300 AND 400
(17) INSERT INTO KYRY VALUES(‘53’,DAIHONG,DOCTOR,MAIL,TIANJING)
(18)
DELECT FROM KYQK WHERE KYID=’58’
(19) UPDATE KYKT SET KTJF=100 WHERE KTID=’203’
(20)
UPDATE KYQK SET GZL=0.9*GZL WHERE RYID=’69’
关系模式的规范化理论
掌握:函数依赖;关键字定义;关系模式的规范化(1NF-BCNF)。
理解:无损连接分解;Armstrong公理;多值依赖;4NF。
一、填空题
1. 从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据冗余度大、修改异常、插入异常和_________。
2. 如果一个满足1NF关系的所有属性合起来组成一个关键字,则该关系最高满足的范式是______(在1NF、2NF、3NF范围内)。
3. 在函数依赖中,平凡的函数依赖根据Armstrong推理规则中的_______________律就可推出。
4. 关键字是__________决定关系的属性全集。
5. 在一个关系模式中,所有关键字中的属性构成一个集合,称为_______;
6. 主属性集中的属性称为_____________,非主属性集中的属性称为____________。
7. 两个函数依赖集F和G等价的充分必要条件____________.
二、选择题
1. 下面关于函数依赖的叙述中,不正确的是 ( )
- - 47 - - A. 若X→Y,Y→Z,则X→YZ B. 若XY→Z,则X→Z,Y→Z
C. 若X→Y,Y→Z,则X→Z D. 若X→Y,Y'包含Y,则X—Y'
2. 下面关于函数依赖的叙述中,不正确的是 ( )
A. 若X→Y,X→Z,则X→YZ B. 若XY→Z,则X→Z,Y→Z
C. 若X→Y,WY→Z,则XW→Z D. 若X→Y,则XZ→YZ
3. 设有关系模式R(A,B,C,D)和R上的函数依赖集FD={ A→B,B→C},则R
的主码应是
A. A B. B C. AD D. CD
4. 关系模型中的关系模式至少是( )
A. 1NF B. 2NF C. 3NF D. BCNF
5. 关系模式R中属性全部是主属性,则R的最高范式必定是( )
A. 2NF B. 3NF C.BCNF D.4NF
6. 2NF如何规范为3NF( )
A. 消除非主属性对码的部分函数依赖 B.消除非主属性对码的传递函数依赖
C.消除主属性对码的部分和传递函数依赖 D. 消除非平凡且非函数依赖的多值依赖
7. 设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F ( )
A. 是无损联接,也是保持FD的分解 B. 是无损联接,但不保持FD的分解
C. 不是无损联接,但保持FD分解 D. 既不是无损联接,也不保持FD的分解
8. 关系模式R分解成ρ = {R1,„,Rk},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r)间的关系满足 ( )
A. r mρ(r) B. mρ(r) r C. r = mρ(r) D. r≠mρ(r)
三、名词释义,简要说明它们满足的FD条件。
1. 2NF
2. 3NF
3. BCNF
四、应用题
1. 现有如下关系模式: R(A#,B#,C,D,E) 其中:A#B#组合为码 R上存在的函数依赖有A#B#→E,B#→C,C→D
(1).该关系模式满足2NF吗?为什么?
(2).如果将关系模式R分解为:
R1(A#,B#,E)
R2(B#,C,D) 指出关系模式R2的码,说明其最高满足第几范式? (在1NF~BCNF之内)。
(3).将关系模式R分解到BCNF。
(4).在E-R模型中,如果实体间是1∶M的联系,如何设计相应部分的关系模型?
2. 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = {D→A,D→B},试写出关系模- - 48 - - 式R的候选键,并说明理由。
3. 设有关系模式R(A,B,C,D,E,F)其函数依赖集为F={E→D,C→B,CE→F,,B→A},判断CE为候选键。
4. 假设某商业集团数据库中有一关系模式R如下:
R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:(1) 每个商店的每种商品只在一个部门销售;
(2) 每个商店的每个部门只有一个负责人;
(3) 每个商店的每种商品只有一个库存数量。
试回答下列问题:
(1) 根据上述规定,写出关系模式R的基本函数依赖;
(2) 找出关系模式R的候选码;
(3) 试问关系模式R最高已经达到第几范式?为什么?
(4) 如果R不属于3NF,请将R分解成3NF模式集。
- - 49 - -
发布评论