模式对象----序列、同义词、视图

今天学的模式对象,感觉学的不是太好,趁着自习时间来梳理一遍,以便以后查阅使用

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、作为一个表进行使用(隐藏部分)

原文地址:https://www.cnblogs.com/sdfd101/p/4954110.html