oracle 之索引,同义词 ,关键词,视图 ,存储过程,函数,触发器

时间:2023-05-02 21:38:32

--创建索引 关键词 index

create[unique] index index_name

      on table_name(column_name [,column_name…])

      [tablespace tablespace_name]

--创建唯一索引 unique index
create unique index suoyinname on student(sname)

--创建同义词 可以理解为其他对象的一个别名,由它映射到另一个对象 关键词 synonym
--有两种 一种是public 一种是私有的
create [public] synonym table_name for user.table_name;

drop [public] synonym table_name;

--创建序列 关键词 sequence
create sequence name start with 1 increment by 1

--返回序列的下一个值 关键字 nextval
select name.nextval as 下一个值 from dual

-- 返回序列的当前值 关键字 currval
select name.currval as 当前值 from dual

--创建视图 关键字 view
create or replace view student_v
as select* from student
--查询视图
select * from student_v
--删除视图
drop view student_v

--存储过程 关键字 procedure

create or replace procedure name(
--定义参数
)
is|as
begin
pl/sql语句块
end

--用EXECUTE命令调用存储过程的格式如下:
execute proc_name(par1,par2…);

--存储过程也可以被另外的PL/SQL块调用,调用的语句是:

declare

  par1,par2;

BEGIN

  proc_name(par1,par2…);

END;

--删除存储过程:
drop procedure proc_name;

--函数:语法:

CREATE[OR REPLACE] FUNCTION<函数名> [(参数列表)]

RETURN数据类型

IS|AS (is或as完全等价 )

[局部变量声明]

BEGIN

PL/SQL函数体

END[<函数名>]

--函数的结束一定要使用return语句返回一个与声明匹配的值

--删除函数可使用如下命令:

drop function funname;

--触发器 关键字 trigger

--语法:

CREATE[ OR REPLACE ] TRIGGER name

{BEFORE | AFTER } { event [ OR ... ] }

ON table [FOR [ EACH ] { ROW | STATEMENT } ]

[WHEN(condition) ]

plsql block| call procedure s_statement

--删除触发器语法:

drop trigger name ON table