SQL课后题答案整理 下载本文

内容发布更新时间 : 2024/5/5 11:27:02星期一 下面是文章的全部内容请认真阅读。

第一章 关系型数据库—基本概念和操作 课后习题: ========

【注意:每一章后面的课后习题,是作业,也是期末考试主要的题源,期末试卷中约50分的试题就从这些题目中选取】

1.各用一句话说明以下概念

关系数据库,实例,属性,域,记录(元组),候选键,主键,外键

1) 一个关系数据库是由若干二维表和表之间的关联组成,这个库也叫一个“实

例(instance)”。

2) 表的第一行是“表头”,它并不是数据,而是说明每一列的数据应该“是什

么”,以及取值范围和其它约束条件,“表头”的每个字段叫属性(attribute),属性的取值范围及其他约束条件叫域(field)。属性是描述数据的数据,叫元数据。

3) 每个表的各个属性不能重名,不同表的属性可以重名。一个表也可以叫一个

关系,表中的数据,有的是本表实体的数据,有的是与其它表的联系,比如“表8:选课表”,“课程号”和“学号”列是联系。

4) 每张表从第二行往后是数据部分、每一行叫一条记录,或一个元组。记录中

的每一列可以叫一个字段。6.每张表至少应该有一个,也可以有多个属性,可以唯一的确定一条记录,这种属性叫候选键(candidate key),比如,表5:“学生表”的“学号”肯定是候选键,而“姓名”如果加上不允许重复的约束条件,也是候选键,否则不是。

5) 当一个表中有多个候选键,可以从中任选一个作为主键(prime key) ,当一个

表只有一个候选键,它自然就是主键。主键可以是数值,可以是字符串或其它类型,但无论如何主键的值不能为空,不同记录的主键值也不能重复。 6) 外键(foreign key):在本表中是主键,而在其它表中可能不是主键,叫外

键。比如,“表8:选课表”的“课程号”和“学号”在该表中都不是主键,是可以重复的。而在“表7:课程表”和“表5:学生表”中,却是各自的主键。外键说明了一个表和另一个表的关联,是关系数据库中重要的键。

第二章 关系型数据库—SQL语言

本章习题

(1)本章“8 小结”表中提到的重点关键词、谓词、句型、概念。 (2)本章所有例题(结合上机)阅读理解。 实验2:SQL语言(使用MS SQL Server)

要求重复本章所有例题,并能加以适当变化,主要是谓词的变化。

分类 数据定义DDL 基本句型和关键字 其它重要关键字和谓词 重要概念 CREATE DADABASE 数据库名; NCHAR和CHAR的区别; 数据库主文件,次文CREATE TABLE 表名 件,日志文件的概念(列名 类型,?表级约束) 及其扩展名 INSERT INTO 表名 (属性列表)VALUES(值列表); UPDATE表名 SET 列名=表达式, WHERE行选择条件 SELECT *|列名,? FROM 表名|视图名,? WHERE 行选择条件; 例31-33内连接查询句法; CREATE VIEW视图名SELECT 语句; 数据操作DML 数据查询DQL LIKE和 _, % ; SELECT 聚集函数名(形参) AS 别名FROM 表名 WHRER行选择条件; 列的别名的用途; 结果集; 脏数据; 外键的必要性 视图; 视图最重要的作用 索引, 索引的优点和缺点 视图 索引 AS CREATE INDEX索引名 ON 表名|视图名(列名,?); 第二章【附录】 关系代数理论 本章习题:

1 用100字左右简述关系数据的三层模型

2 本章“2.3 关系代数的原始运算”“选择”、“投影”、“笛卡尔积”、“并集”、“差集”和“重命名”。请根据课件第二章的例题,猜测一下,这六个原始运算对应SQL语言的那个主句、子句或谓词。 3本章“2.4连接和类似连接的运算”给出了几个链接查询结果集的表格样例(比如部门表和雇员表的自然连接),写出相应的SQL语句。 1. 外模式 比如SQL的视图,用户完全可见 向上映射 概念模式:主要描述数据、类型、关系、比如SQL语句,用户部分可见 约束、用户操作等。 向上映射 内模式:描述数据库的物理存储 用户看不到 操作系统的文件系统,向上映射 有些数据库有独立的文件系统 2.“选择”:select “投影”:SELECT test FROM A

“笛卡尔积”:SELECT 选课表.*,学生表.*,课程表.*

“并集”:WHERE ...OR...“差集”:WHERE...AND... “重命名”:EXEC sp_rename '表名.原列名', '新列名';

3.自然连接 (?)

自然连接是写为 (R ? S) 的二元运算(相当于C语言的双目运算),这里的 R 和 S 是关系。自然连接的结果是在R和S 中公共属性名字上相等的所有元组的组合。例如下面是表格“雇员”和“部门”和它们的自然连接:

雇员

Name

EmpIDeptNad me

部门 DeptNaManage

me r 财务 销售 生产

雇员 ? 部门 Name

EmpIDeptNaManage

d me r

George Harrie

t George Harriet

Harry 3415 财务 Sally 2241 销售 George 3401 财务 Harrie

2202 销售

t

George Harriet Charles

Harry 3415 财务 Sally 2241 销售 George 3401 财务 Harri

2202 销售

t

SELECT 雇员.*,部门.* from 雇员,部门

WHERE 雇员.DeptName =部门.DeptName ;

或是SELECT * from 雇员 NATURAL JOIN 部门;(SQL SERVER2005不能用) θ-连接(内连接)

考虑分别列出车模和船模的价格的表“车”和“船”。假设一个顾客要购买一个车模和一个船模,要求船模比车模便宜。在关系上的θ-连接 CarPrice ≥ BoatPrice 生成所有可能选项的一个表,提供给顾客几种购买选择。(请试写出下表的SQL语句)

车 CarModCarPriel ce CarA 20'000 CarB 30'000 CarC 50'000

BoatModBoatPri

el ce Boat1 10'000 Boat2 40'000 Boat3 60'000

车 船

CarModCarPriBoatModBoatPri

el ce el ce CarA 20'000 Boat1 10'000 CarB 30'000 Boat1 10'000 CarC 50'000 Boat1 10'000 CarC 50'000 Boat2 40'000

SELECT * from 车,船 车.CarPrice > 船.BoatPrice

除法 (÷)