今天学的模式对象,感觉学的不是太好,趁着自习时间来梳理一遍,以便以后查阅使用
1、模式对象---序列(sequence)
在创建序列之前必须先在system中给对象exam设置sequence模式
grant create sequence to exam;
创建序列:
-- Create sequence
create sequence seq_course
minvalue 1 ---最小值
maxvalue 9999999999999999999 ---最大值
start with 1 ---起始值
increment by 10 ---每次增加的数
cache 20; ---缓存
检查序列:
从序列中取出下一个值: select seq_course.nextval from dual;
从序列中取出当前值: select seq_course.currval from dual;
2、 模式对象 --- 同义词(synonym)
在创建序列之前必须先在system中给对象exam设置synonym模式
管理员授权: grant create synonym to exam;
创建同义词:
create or replace synonym st for exam.course -----exam对象--- course:是exam对象下的一张表
使用: select * from st ;
3、 模式对象 ---- 视图(view)
create table person
(
name varchar(100) not null,
birth date default sysdate,
sex char(1) check(sex in (‘m‘,‘f‘,‘n‘))
);
insert into person values(‘tom1‘,default,‘f‘);
insert into person values(‘tom2‘,sysdate-100,‘f‘);
insert into person values(‘tom3‘,sysdate-200,‘f‘);
select * from person;
select
name,
to_char(birth,‘YYYY"年"MM"月"DD"日"‘) as birth,
decode(sex,‘f‘,‘女‘,‘m‘,‘男‘,‘妖‘) as sex
from person;
grant create view to exam;
------------------------------------------
创建修改视图
create or replace view v_person
as
select
name,
to_char(birth,‘YYYY"年"MM"月"DD"日"‘) as birth,
decode(sex,‘f‘,‘女‘,‘m‘,‘男‘,‘妖‘) as sex
from person;
删除视图
drop view v_person;
使用视图--当成表来用(查询用)
select * from v_person
视图: 1、把复杂的东西简单化 2、作为一个表进行使用(隐藏部分)