第三部分 SQL语言 主要内容:
1、SQL语言的基本功能 2、基本表、视图的概念
练习题
一、选择题
1 SQL 语言是 B 的语言,易学习. A .过程化
B .非过程化
C .格式化
D .导航式
2 SQL 语言是 C 语言. A .层次数据库 B .网络数据库 3 SQL 语言具有 B 的功能.
A .关系规范化,数据操纵,数据控制B .数据定义.数据操纵,数据控制 C .数据定义,关系规范化,数据控制D .数据定义,关系规范化,数据操纵 4 SQL 语言具有两种使用方式,分别称为交互式SQL 和 C 。 A . 提示式SQL
B .多用户SQL
C .嵌入式SQL D . 解释式SQL C .关系数据库 D .非数据库
6 在SQL 的查询语句中,对应关系代数中“投影”运算的语句是 C A . WHERE B . FROM
C . SELETE D . HAVING
7 在SQL 语言中,实现数据检索的语句是A_. A . SELECT B . INSERT
C . UPDATE D . DELETE
8 在SQL 的SELECT 语句中,与关系代数中“选择”运算对应的命令动词是 C A . SELECT
B . FROM
C . WHERE
D . ORDER BY
9 SELECT 语句执行结果是 C . A .数据项
B .元组
C .表(关系) D .数据库
10 在SQL 语句中,对输出结果排序的语句是_B A . GROUP BY
B .ORDER BY
C . WHERE
D . HAVING
11 . 在SELECT 语句中,需对分组情况满足的条件进行判断时,应使用 D A . WHERE
B . GROUP BY
C . ORDER BY D . HAVING
12 在SELETE 语句中使用*表示_B。 A .选择任何属性
B ,选择全部属性
C .选择全部元组
D .选择主码
13 在SELECT 语句中,使用MAX (列名)时,该“列名”应该 A A .必须是数值型
B .必须是字符型
D . 不限制数据类型
6
C . 必须是数值型或字符型
15 使用CREATE TABLE语句建立的是B_. A .数据库
B .表
C .视图
D .索引
16 下列SQL 语句中,修改表结构的是A_. A . ALTER
B . CREATE
C . UPDATE
D . INSERT
17 在SQL 中使用UPDATE 语句对表中数据进行修改时,应使用的语句是_D . A . WHERE
B . FROM
C . VALUES
D . SET
18 在SQL 中,谓词“EXISTS ”的含义是 B . A .全称量词
B .存在量词
C .自然联接
D .等值联接
19 SQL 中,与“NOT IN ”等价的操作符是_D . A .=SOME
B . <> SOME
C .=ALL
D . <> ALL
20 视图建立后,在数据字典中存放的是 C
A .查询语句B .组成视图的表的内容C .视图的定义
D .产生视图的表的定义
21、一般说来,( D ) 完全可以像一个基本表那样进行更新。
A. 由多个基本表导出的视图
B. 在定义视图的语句中带有集函数的视图
C. 在定义视图的语句中带有DISTINCT关键词的视图 D. 行列子集视图
22、查询姓“张”的学生的详细信息的SQL语句是( A )。
A. SELECT * FROM STUDENT WHERE SNAME LIKE ‘张%’ B. SELECT * FROM STUDENT WHERE SNAME =‘张%’
C. SELECT * FROM STUDENT WHERE SNAME LIKE ‘张_’ D. SELECT * FROM STUDENT WHERE SNAME = ‘张_’
23、视图本身不独立存储在数据库中,既数据库中只存放视图的( A ),而不存放视图的( ),视图是一个( )。
A.定义、对应的数据、虚表
B.定义、对应的数据、实表
C.对应的数据、定义、实表 D.对应的数据、定义、虚表 24、以下(D )事件不会引起数据库触发器触发。
A. 在表中插入记录行 B. 修改记录行 C. 删除记录行 D. 创建一个表 二、查询
现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)。 课程(课程号,名称,学分)。 学习(学号,课程号,分数)。
(1) 检索不学课程号为\课程的学生信息,包括学号,姓名和专业。
SELECT 学号,姓名,专业
7
FROM 学生 WHERE 学号 NOT IN
(SELECT 学号 FROM 学习
WHERE 课程号='C135');
(2)检索至少学过课程号为\和\的学生信息,包括学号、姓名和专业。
SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN
(SELECT X. 学号
FROM 学习 AS X, 学习AS Y WHERE X. 学号=Y. 学号 AND X. 课程号='C135' AND X 课程号=’C219’);
(3)从学生表中删除成绩出现过0分的所有学生信息。
DELETE FROM 学生
WHERE 学号 IN (SELECT 学号 FROM 学习 WHERE 分数=0);
(4)定义\英语\专业学生所学课程的信息视图AAA,包括学号、姓名、课程号和分数。
CREATE VIEW AAA(学号,姓名,课程号,分数) AS SELECT 学号,姓名,课程号,分数
FROM 学生,学习
WHERE 学生. 学号 =学习. 学号 AND 专业=’英语’;
(5) 检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业。
SELECT 学生. 学号,姓名,专业 FROM 学生,学习
WHERE 学生. 学号=学习. 学号 AND 学习. 课程号=课程. 课程号 AND 奖学金<=0 AND 分数>95;
(6) 检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业。
SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 NOT IN
(SELECT 学号 FROM 学习 WHERE 分数<80);
8
(7)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元。
UPDATE 学生 SET 奖学金=1000
WHERE 奖学金<=0 AND 学号 IN (SELECT 学号 FROM 学习 WHERE 分数=100); (8) 定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分。
CREATE VIEW AAA(课程号,名称,学分) AS SELECT 课程号,名称,学分
FORM 课程 WHERE 课程号 IN
(SELECT 课程号 FROM 学习 WHERE 分数=100);
第四部分 数据库完整性 主要内容:
1、三类完整性的定义 2、触发器的作用
练习题:
一、选择题
1. 如果在学生-课程数据库中的SC表上建立了参照完整性约束: Foreign Key (Sno) References Student(Sno), Foreign Key (Cno)References Course(Cno), 则( D )操作可能会违背该约束。
A.在Student表上增加一行记录 B.在Course表上增加一行记录 C.在SC表上删除一行记录 D.在SC表上增加一行记录 2. 如果在学生-课程数据库中的SC表上建立了参照完整性约束: Foreign Key (Sno) References Student(Sno), Foreign Key (Cno)References Course(Cno), 则( D )操作可能会违背该完整性约束。
A.在Student表上增加一行记录 B.在Course表上增加一行记录 C.在SC表上删除一行记录 D.更新SC表上的记录 3. 如果在学生-课程数据库中的SC表上建立了参照完整性约束: Foreign Key (Sno) References Student(Sno), Foreign Key (Cno)References Course(Cno), 则( CD )操作不可能会违背该约束。
9
A.更新SC表中的选课记录 B.更新Course表中的课程记录 C.在Student表上增加一个学生的记录 D.删除SC表中的一条选课记录 4-7题 Student、SC、Course表中已有数据如下:
Student: Course Sno Sname Sdept Ssex Sage CS CS IS 男 女 男 21 20 22 Cno C01 C02 C03 C10 C11 C12 Cno Grade Cname Uuuu Vvvv Wwww Xxxx Yyyy Zzzz Cpno C08 C07 C06 C15 C16 C20 Ccredit 1 2 2 3 1 4 1234501 aaa 1234502 bbb 1234503 ccc SC Sno 1234501 C01 80 1234501 C02 88 1234502 C01 90 1234503 C10 85 1234503 C11 91
4.若在SC表上建立外码:
Foreign Key (Sno) References Student(Sno) ON Delete NO Action ON Update NO Action,
Foreign Key (Cno)References Course(Cno)ON Delete NO Action ON Update NO Action,
则下面能够正常执行的选项是( C )
A.删除Student表中学号为1234501的基本信息 B.将Course表中的课程号C01修改为C100 C.在SC表上删除所有课程号为C01的选课记录
D.在SC表上插入一行选课记录:学号为1234502,课程号为C02,成绩80 5.若在SC表上建立外码:
Foreign Key (Sno) References Student(Sno) ON Delete NO Action ON Update NO Action,
Foreign Key (Cno)References Course(Cno)ON Delete NO Action ON Update NO Action,
10