算。 Having子句
Having子句条件表示什么?
在分组聚合之后按某条件过滤分组,使用Having子句确定条件。 视图
什么是视图view?
依据一条SELECT语句产生的一个命名的“虚关系”或“虚表”。视图的数据均来自基本表,并不实际存储。一个定义好的视图可看作基本表,用于定义新的视图,或对之进行查询甚至更新。 一个数据库可定义多个视图。视图的名称不能与已有的表名冲突。视图是数据库模式的一部分。 为何需要视图?
简化计算。
不同用户关心同一表中的不同属性。 提高数据的安全性。
创建视图 如何创建视图?
CREATE VIEW [ owner .]view-name [( column-name , ... )] AS select-without-order-by [with check option] 例如:
CREATE View orderamount As
Select salesorder.orderno, signdate, empid, custid, Sum(quantity) as qty, Sum(singlecost*quantity) as amount
From dba.salesitem, dba.salesorder
Where salesorder.orderno = salesitem.orderno Group by salesorder.orderno, signdate, empid, custid 产生一个虚关系:
orderamount(orderno, signdate, empid, custid, qty, amount)
21
视图查询 如何查询视图?
对视图的查询与表查询遵循相同的语法。
例:计算销售金额最高的订单号、签单日期及销售金额。 Select orderno, signdate, amount From orderamount
Where amount = (Select Max(amount) From orderamount) 对视图的查询将由系统转换为对基本表的查询。 SQL约束和触发器 SQL中的键
键key是最重要的约束。每个表都必须确定自己的键。
每个表都可能有多个属性集可作为键,称为“候选键candicate key”。 一个表只能确定一个主键(Primary Key)。 若某个属性说明为Unique,则它是一个候选键。 主键和Unique属性之间有何区别和联系?
一个表有且仅有一个主键;而Unique属性可有多个或没有。 主键可以是多属性,而Unique只能说明单个属性。 若主键是单个属性,则该属性隐含为Unique。 若主键是多个属性,则每个属性都不可能为Unique。 实施主键约束
什么操作会导致违背键约束?
insert和update可能违背该表的键约束。
SQL实施主键约束即是在insert和update时检验键值,避免空值或重复键值。 参照完整性和外键
SQL中依靠外键保证参照完整性。外键定义时要注意区分参照关系和被参照关系。 说明外键约束
22
是否可定义一个表参照自己? 可以。
例如:salesman(empid, idno, name, managerid, deptid, …) 外键是否可取NULL值? 可以。 SQL系统概况 SQL事务
事务transaction是什么概念? 事务有何特性?ACID。 如何控制事务运行?
事务的一次运行只能是下面两个结果之一: Commit提交;或Rollback退回
Commit指令提交当前事务,完成对数据的更新。
Rollback指令退回当前事务,并取消当前事务对数据已做的更新。 Commit和Rollback都结束当前事务,并自动启动下一个事务。 在多用户多任务环境中,并发事务可能引起哪些问题? 同时更新同一数据 脏读dirty read
不可重复读non-repeatable read 虚行(幻象元组)phantom rows “写锁”write lock是什么概念?
某数据被一个事务修改,在该事务提交或退回之前,其他事务不能修改或删除此数据。 脏读是什么含义?
当事务A修改某数据后,在提交或退回前,该数据被事务B读取,若事务A退回,则事务B读取的数据为“脏数据”,即事务B发生脏读。 不可重读non-repeatable read是什么含义?
事务A先读某行数据,随后事务B修改update或删除delete该行数据并提交,事务A重复再读该行数据,结果就不一致。
23
虚行phantom rows是什么含义?
事务A按某条件C查询一组数据,随后事务B增加insert满足条件C的数据,或修改update条件C相关的数据,使得事务A按原条件C再次查询的结果不一致。也称为“幻象”元组。 “读锁”read lock是什么概念?
当某数据被一个事务处理时,其他事务限制读该数据。 Grant, Revoke指令有何用途?
一、选择题(选择一个最合适的答案)60%
1. 在实体/联系图(E/R图)中,实体集的每个属性都隐含为:
A 多值。 B 单值。 C 不允许为NULL。 D 前三者都不对。 2. “两个实体集之间若有联系,则该联系是唯一的。”这种说法对吗?
A 正确 B 不正确 C 不能断定 D 应该说,若该联系是一对一,则是唯一的。 3. “一个多对一的联系隐含着一对一的联系。”这种说法对吗
A 正确 B 不正确 C 不能断定 D 应该说,多对多的联系隐含一对一联系。 4. 考虑银行业务中“储户”与“帐号”之间的联系,该联系的多重性应该是:
A 一对一 B 多对一 C 一对多 D 多对多
5. 下面哪种约束要求一组属性在任意两个不同实体上的取值不同。
A 键(key)约束。 B 单值约束。 C 参照完整性。 D 域(domain)约束 6. 参照完整性约束要求某个联系中被参照的实体________。
A 至少有一个。 B 有一个且仅一个。 C零个到多个。 D 前三者都不对。 7. 对于一个“弱实体集”, 下面哪种说法不正确:
A 一定有一个多对一的联系到其它实体集。 B 自身属性不能构成完整的键。 C 可单独存在,而无需其它实体集。
D 可以有自己的属性。
8. 关系模型要求各元组的每个分量的值必须是原子性的。对原子性,下面哪种解释不
正确:
A 每个属性都没有内部结构。
B 每个属性都不可分解。
D 属性值不允许为NULL。
C 各属性值应属于某种基本数据类型。
24