第四章 中级SQL
1.连接条件 on(允许在参与连接的关系上设置通用的谓词)
eg.
2.外连接的三种形式:
3.连接类型和连接条件
4.视图:视图不是逻辑模型一部分,作为虚关系对用户可见的关系称为视图。
创建语法如下:
物化视图:特定的数据库系统允许存储视图关系,但是他们保证:如果用于定义视图的实际关系改变,视图也跟着修改。这样的视图被称为物化视图。保持物化视图一直在最新状态的过程称为物化视图维护。
5.事务处理:(保障原子性操作)
6.完整性约束
包括 not null 、unique 、check<谓词>
*级联删除(on delete cascade)
如果删除表中元组导致此参照完整性约束被违反,则删除不被拒绝,对引用表相关数据做级联删除。如果给定元组中外码的所有列上均取非空值,则对元组采用外码约束的通常定义。如果某列外码为null,则该院组自动被认为满足约束。
7.(1)SQL日期和时间类型
(2)索引:(加快数据检索)
(3)大对象类型:
(4)用户定义的类型
SQL支持两种形式的用户定义数据类型。独特类型和结构化数据类型(允许创建具有嵌套记录结构、数组和多重集的复杂数据类型)
语法。
SQL提供了drop type 和alter type子句来删除或者修改以前创建过的类型。
域:可以在基本类型上施加完整性约束
eg.
域和类型之间的差别:
8.create table 的扩展:
创建与某个表模式相同的表:
eg.
9.授权
(1)权限的授予:
grant<权限列表> on<关系名或视图名> to<用户/角色列表>
eg.
grant select on department to Amit,Satoshi
(2)权限的收回
revoke<权限列表> on<关系名或视图名> to<用户/角色列表>
eg.
revoke update(budget) on department from Amit,Satoshi;
(3)模式授权
只有模式的拥有这才能够执行对模式的任何修改
eg.
grant references(dept_name) on department to Mary
(4)权限的转移(允许用户再次授权)
(5)权限收回
从一个用户/角色那里回收权限可能导致其他角色/用户失去该权限,这一行为称作级联回收。(默认/cascade)
非级联回收:revoke restrict
如果要加上关联角色 granted by 角色
10.角色
一个用户或者一个角色的权限包括:
·所有直接授予用户/角色权限
·所有授予给用户/角色所拥有的角色的权限