傻瓜数据Oracle基础语句整理(二)

视图

基础模板

CREATE [ OR REPLACE ] [ [NO] FORCE ] VIEW
[schema .] view
[(alias…) inline_constraint(s)]
[out_of_Line_constraint(s)]
AS subquery
[
WITH{READ Only |check OPTION [CONSTRAINT constraint]}
];

注释:
CREATE [OF REPLACE 是否覆盖] [[NO] FORCE 是否允许强制创建] VIEW
[视图本身所属的方案] 视图名字
[视图内关联的字段和约束]
[约束]内关联相反的字段
AS subquery
{
WITH{只读 |满足视图增加删除等子条件}}
}

1.增加视图约束
ALTER VIEW [schema.] view
ADD [CONSTRAINT constraint_name]
{
UNIQUE (column[,column]…)
| PRIMARY KEY(column[,column]…)
| FOREIGH KEY(coumn[,column]…)
| CHECK (condition)
}
[constraint_state]
注释:
ALTER VIEW [所属] 视图名
ADD [CONSTRAINT 约束名]
{
UNIQUE (列 [列1]····) 唯一约束
| PRIMARY KEY(列 [列1]····) 主键约束
| FOREIGH KEY(列 [列1]····) 外键约束
|CHECK(condition) 检查约束
}
[约束状态]

2、删除视图约束
ALTER VIEW [schema.] view
DROP CONSTRAINT constraint_name
注释:
ALTER VIEW [所属] 视图名字
DROP CONSTRAINT 约束名

3、删除视图
DROP VIEW [schema.] view [CASCADE CONSTRAINTS]
注释:
DROP VIEW [所属]视图名字 [CASCADE CONSTRAINTS]删除视图时连带删除约束

存储过程

基础创建模板

CREATE[OF REPLACE] PROCEDURE[schema.] procedure
[parameter_name [[IN] datatype [{:=| DEFAULT} expression] | {OUT | IN OUT} [NOCOPY] datatype] [,…]
{IS|AS}
BODY:

注释
CREATE [是否覆盖同名] PROCEDURE [所属] 存储过程名字
[参数名字 [[IN传入型参数] 类型 [{:= | DEFAUT}expression]默认值]| {OUT | IN OUT} datatype 表示传出或者传入传出] [,-----]
{IS|AS}连接词
BODY:存储过程的主体

1、SHOW SERVEROUTPUT 查看 SERVEROUTPUT 服务的状态
2、SET SERVEROUTPUT ON 打开SERVEROUTPUT服务
3、SELECT * FROM USER_SOURCE WHERE NAME=“存储过程的名字” ORDER BY LINE 查看存储过程
4、SHOW ERRORS PROCEDUES 存储过程名字 显示所有的存储过程
5 EXEC 存储过程名字 执行存储过程

触发器

DML触发器

基础创建模板

CREATE [OF REPLACE] TRIGGER [schema.] trigger_name
{BEFORE |AFTER| INSTEAD OF}
{DELETE |INSERT|UPDATE
[OF colume[,colume]······]
}
[
OR
{
DELETE | INSERT | UPDATE
[OF column[,column]```]
}
]
可以添加多个
{ ON [schema.] table | [schema.]view }
[FOR EACH ROW]
[FOLLOWS [schema.]tigger[,[schema.] trigger] …]
[ENABLE | DISABLE]
[WHEN (condition)]
tigger_body
注释
CREATE [OF REPLACE 可否允许同名] TRIGGER [所属]触发器名字
{BEFORE|AFTER|INSTEAD OF} 前触发 后触发 替换型触发
{DELETE |INSERT |UPDATE [OF column[,colmn]]} 删除|增加|修改 列 可以添加多个
{ON [所属] 表名 | [所属] 视图名字}
[FOR EACH ROW] 行级触发器 无则是语句级触发器
[FOLLOWS [所属.]触发器名字 [,[所属]触发器名字]]表示触发器触发的顺序
[WHEN(condition)]触发器触发的子条件
tigger_body 触发器函数主题。

DDL触发器

基础创建模板

CREATE [OF REPLACE] TRIGGER [schema.] tigger_name
{BEFORE | AFTER}
{
ddl_event [or ddl_event]…
|datebase_event[or datebase_event]
}
ON{[schema.] SCHEMA |datebase}
[FOLLOWS [schema] tigger [,[schema] tigger]````]
[ENABLE |DISABLE]
[WHEN(condition)]
tigger_body

注释:
CREATE [OF REPLACE] TIGGER [所属]触发器名字
{BEFORE |AFTER}触发器名字
{
ddl事件[或者 ddl事件] | datebases事件[or datebase事件]
}
[FOLLOWS [所属]触发器 [所属]触发器]触发器触发顺序
[ENBALE |DISABLE] 设置该触发器是否是可用状态
[WHEN(condition)] 触发子条件
tigger_body 触发器主体

复合触发器

CREATE [OF REPLACE] TRIGGER [schema.] trigger_name
FOR
{
DELETE |INSERT | UPDATE
[OF column [,column]…]
}
[ OR
{
DELETE |INSERT | UPDATE
[OF column [,column]…]
}
]
ON
{
[schema.] table |[schema.]view
}
COMPOUND TRIGGER
{
BEFORE STATEMENT IS tps_body END BEFORE STATEMENT
| BEFORE EACH ROW IS tps_body END BEFORE EACH ROW
| AFTER STATEMENT IS tps_body END AFTER STATEMENT
| AFTER EACH ROW IS tps_body END AFTER EACH ROW
}

COMPOUND TRIGGER 定义为复合型触发语句
BEFORE STATMENT 前语句级触发
BEFORE EACH ROW 前行级触发
AFTER STATEMENT 后语级触发
AFTER EACH ROW 后行级触发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值