Oracle-数据库对象(index、synonsym、view、sequence、tablespace)

同义词synonym

同义词是数据库对象的一个别名,Oracle可以为表、视图、序列、过程、函数、程序包等指定一个别名

有私有同义词,公有同义词

创建同义词

create [ or replace ] [ public ] sysnonym 同义词名称 for  用户名.对象名称 (对象是用户下的表等等)

注意: []中是可选项可加可不加,synonym默认私有

classroom用户下的emp表,给classroom.emyemp 取别名 myemp

create synonym myemp for classroom.emp;
select * from myemp

--相当于

select * from classroom.emp

删除同义词

drop [public] synonym 同义词名称

drop sysnoym myemp

注意:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权

序列sequence

序列是Oracle专有的对象,他用来产生一个自动递增/递减的数列

创建序列

create sequence 序列名称

[increment by n]  -------- 创建序列名称递增的序列值是n,如果n是正数就递增,如果是负数就递减,默认是1

[start with n]    -------- 开始的值为n ,递增默认是minvalue,递减是maxvalue

[{maxvalue n | nomaxvalue}] -------- 最大值

[{minvalue n | nominvalue}] -------- 最小值

[{cycle | nocycle}] -------- 循环/不循环

[{cache n | nocache}] -------- 分配并存入到内存中
例如:

create sequence seq_name

increment by 1

start with 1

nomaxvalue

nocache;

nextval 应在 currval 之前指定 ,二者应同时有效
currval 表示序列的当前值,新序列必须使用一次nextval 才能获取到值,否则会报错
nextval 表示序列的下一个值。新序列首次使用时获取的是该序列的初始值,从第二次使用时开始按照设置的步进递增

查询序列的值

select seq_name.[currval,nextval] from dual;
--序列 在 实际开发中的使用:insert 实现主键自增

insert into emp (eid) values (seq_name.nextval);

修改序列

alter sequence 序列名称 

[increment by n]  -------- 创建序列名称递增的序列值是n,如果n是正数就递增,如果是负数就递减,默认是1

[start with n]    -------- 开始的值为n ,递增默认是minvalue,递减是maxvalue

[{maxvalue n | nomaxvalue}] -------- 最大值

[{minvalue n | nominvalue}] -------- 最小值

[{cycle | nocycle}] -------- 循环/不循环

[{cache n | nocache}] -------- 分配并存入到内存中

删除序列

drop sequence 序列名称

视图

视图对应一条select语句,虚表

查询视图就是在执行查询语句,查询背后的数据库表

视图只是一条查询语句 ,本事没有数据,不占用存储空间

对视图进行 添加 删除 修改 操作,就是 对 数据库表进行 添加 删除 修改 操作

视图的作用

使用视图,可以定制用户数据,聚焦特定的数据。

使用视图,可以简化数据操作。

使用视图,基表中的数据就有了一定的安全性

使用视图,可以合并分离的数据,创建分区视图

创建视图

create [ or replace ] [ { force | noforce } ]view 视图名称 as select语句 [ with read only constraint ]

force:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

noforce:如果基表不存在,无法创建视图,该项是默认选项。

with read only:说明视图是只读视图,不能通过该视图进行增删改,操作默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作)

create or replace view myview01

as

select * from emp

删除视图

drop view 视图名称

索引

索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息

创建索引

create [ unique ] index 索引名称 on 表名(字段名)

删除索引

drop index 索引名称

表空间

表空间是数据库中最大的逻辑单位,Oracle数据库采用表空间将相关的逻辑组件组合在一起,一个Oracle数据库至少包含一个表空间。每个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系

在每一个数据库中都有一个名为SYSTEM的表空间,即系统表空间,该表空间是在创建数据库或数据库安装时自动创建的,用于存储系统的数据字典表、程序单元、过程、函数、包和触发器等

创建表空间

create tablespace 表空间名称

datafile '数据文件路径' size 大小 ------ 初始表空间大小,单位为K或者M

[ autoextend on ] ------是否自动扩展

[ next  大小 ] ------文件满了后扩展大小

[ maxsize 大小 ] ------文件最大大小,值为数值或unlimited(表示不限大小)

[ extent management local ] ------指明表空间类型,本地管理表空间

[ uniform size 大小 ] ------ 指定每个分区大小统一
create tablespace myspace

datafile 'c:/m.ora'size 10M,

'c:/nora'size 10M

extent management local

uniform size 2M

修改表空间

alter tablespace 表空间名称
add datafile '文件路径' size 大小

[ autoextend on ][ next  大小 ][ maxsize 大小 ] 

删除表空间

只是删除表空间
drop tablespace 表空间名称
删除表空和数据文件
drop tablespace 表空间名称 including contents and datafiles

猜你喜欢

转载自blog.csdn.net/NONINETEEN/article/details/86062884
今日推荐