一、关系代数
传统的集合运算是二目运算,包括并、交、差、广义笛卡儿积4种运算。
并:R\JS = {t\te Rvte S}
关系数据库还有一些专门的运算,主要有投影、选择、连接、除法和外连接。
投影:投影操作从关系中选择出若干属性列组成新的关系,该操作对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。
选择:选择操作在关系中选择满足给定条件的所有元组。
连接:连接从两个关系的笛卡儿积中选取属性间满足一定条件的元组。
除法:
外连接:
二、元祖演算
在元组演算中,元组演算表达式简称为元组表达式,其一般形式为
三、SQL语言
1、基本表的操作
- 定义基本表 : create table
- 修改基本表: alter table
- 删除基本表: drop table
- 建立索引:create Cluster index 索引名称 on 表名()
- 删除索引:drop index 表名
2、数据查询:
- 聚集函数: count、sum、avg、max、min
- 分组:group by
- 指定组或聚合应满足的搜索条件: having
- in 和 exists
- like 与通配符 _、 %
- 空值: is null 或 is not null
- 连接查询:
- 嵌套查询: in
- 集合查询: union
3、数据操作:
- 插入数据: insert into 表名(列名1) values(值1)
- 修改数据: update 表名 set 列名1=值1 where 条件
- 删除数据: delete from 表名 where 条件
4、视图操作
- 定义视图:create view
- 删除视图:drop view
- 查询视图:select * from view
- 更新视图: 更新视图信息,就更新相应表的更新。
5、完整性约束
- 声明型完整性约束。 域完整性约束、参照完整性约束、全局约束。
- 处理型完整性约束。触发器实现处理型完整性约束。
- 非空约束: not null 。
- check 约束:限制某些字段的值域。
- 主键约束: primary key
- 候选键约束:唯一性约束 unique not null /unique key
- 外键约束:foreign key
- 断言约束:assertion 实现,方便我们用数据库按照应用系统的业务规则做数据间的平衡。
6、安全机制
- 操作系统权限
ADMINISTER DATABASE TRIGGER | CREATE USER |
ALTER ANY CLUSTER | CREATE VIEW |
ALTER ANY INDEX | DEBUG ANY PROCEDURE |
ALTER ANY LIBRARY | DEBUG CONNECT SESSION |
ALTER ANY PROCEDURE | DELETE ANY TABLE |
ALTER ANY ROLE | DROP ANY CLUSTER |
ALTER ANY SEQUENCE | DROP ANY INDEX |
ALTER ANY TABLE | DROP ANY LIBRARY |
ALTER ANY TRIGGER | DROP ANY OPERATOR |
ALTER ANY TYPE | DROP ANY PROCEDURE |
ALTER DATABASE | DROP ANY ROLE |
ALTER SESSION | DROP ANY RULE |
ALTER SYSTEM | DROP ANY RULE SET |
ALTER TABLESPACE | DROP ANY SEQUENCE |
ALTER USER | DROP ANY TABLE |
AUDIT ANY | DROP ANY TRIGGER |
AUDIT SYSTEM | DROP ANY TYPE |
COMMENT ANY TABLE | DROP ANY VIEW |
CREATE ANY CLUSTER | DROP TABLESPACE |
CREATE ANY INDEX | DROP USER ! |
CREATE ANY LIBRARY | EXECUTE ANY LIBRARY i |
CREATE ANY OPERATOR | EXECUTE ANY OPERATOR |
CREATE ANY PROCEDURE | EXECUTE ANY PROCEDURE |
CREATE ANY SEQUENCE | EXECUTE ANY RULE |
CREATE ANY TABLE | EXECUTE ANY RULE SET |
CREATE ANY TRIGGER | EXECUTE ANY TYPE |
CREATE ANY TYPE | FORCE ANY TRANSACTION |
CREATE ANY VIEW | FORCE TRANSACTION |
CREATE CLUSTER | ANY OBJECT PRIVILEGE |
CREATE LIBRARY | ANY PRIVILEGE |
CREATE OPERATOR | ANY ROLE |
CREATE PROCEDURE | INSERT ANY TABLE |
CREATE PUBLIC SYNONYM | LOCK ANY TABLE |
CREATE ROLE | MANAGE TABLESPACE |
CREATE SEQUENCE | SELECT ANY DICTIONARY |
CREATE SESSION | SELECT ANY SEQUENCE |
CREATE TRIGGER | SELECT ANY TABLE |
CREATE TYPE | UPDATE ANY TABLE |
2.模式对象权限
模式对象权限就是用户对自己的模式和别人的模式具有的权限。
- DML 操作权限:SELECT、INSERT. UPDATE. DELETE。
- DDL 操作权限:ALTER、INDEX、REFERENCES。
权 限 | 授予能力 |
SELECT | 可查询对象 i |
INSERT | 可以把行插入对象中,该权限可授予对象的特定列 |
UPDATE | 可更新对象的行,该权限可授予对象的特定列 |
DELETE | 可从对象中删除行 |
ALTER | 可修改对象 |
INDEX | 可以在表上创建索引 |
REFERENCES | 可以创建引用表的外键 |
EXECUTE | 可以执行函数、软件包、过程、库或类型 |
READ | 可访问目录 |
3.授予系统操作权限
grant select to
4.授予模式对象权限
5.取消系统操作权限
revoke
6.取消模式对象权限
7、触发器
1.DML触发器:由3类数据操作触发:数据插入、数据修改、数据删除。
2.系统触发器:数据库级:数据库的启动、数据库的关闭、数据的登录、数据库的退出、数据库服务器出错。
模式级: 创建对象、修改对象、删除对象。
3.替代触发器: 用于侦测视图数据的操作事件。
8、游标
declare 游标名称 cursor for sql语句
open 游标名称
fetch 游标 into 宿主变量
close 游标名称
9、对象数据库
在SQL 99中,除了可以使用原有的数据类型外,还可以自定义数据类型。
10、嵌入式SQL
在嵌入式程序中编写静态的SQL语句时一般直接用下面这两种语法格式:
EXEC SQL静态SQL语句[INTO宿主变量] 这种格式主要用于执行单条的SQL语句。
EXEC SQL EXECUTE
语句块
END-EXEC;