欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库对象

程序员文章站 2022-06-02 13:02:57
...

第四章数据库对象

数据库对象分为四种 说明
同义词 让别的用户查找另一个用户的时候用别名查提高了安全性
序列 序列就是新建一个虚拟的自增表在以后工作上用的非常多
视图 用多个表查出的结果合到一个新的虚拟表提高安全性(必须设置可读)
索引 就是给数据库增加一个目录提高查表的速率

同义词

conn system/1  --登录
create user hope identified by hope;  --创建用户
grant connect to hope;    --授权用户链接

conn  scott/1  --登录另一个用户 scott
grant all on emp to hope;  --授权表emp给hope

conn hope/hope;
select * form scott.emp; --此表可以访问scott表

私有同义词

只有自己可以访问

create synonym newemp for scott.emp;  --创建自己的私有同义词前提就是有访问别的表权限
select * from newemp; --访问emp的同义词

共有同义词

就是在自己的表创建共有的别名可以通过共有的别名来访问提高的安全性创建共有同义词前提得有权限没有权限不可创建

conn system/1  --登录管理员
grant  create public synonym to hope;  --授予创建共有同义词
grant drop public synonym to hope;  --授予删除共有同义词权限

conn hope/hope; 
create public synonym  newemp for scott.emp;  --创建共有同义词
drop public synonym newemp;  --删除共有同义词
drop synonym newemp; --删除私有同义词;

序列

序列就是mysql里面的自增在oracle没有自增得创建一个虚拟的自增表来提供自动增加的函数

create  sequence stu_id
start with 10   --从第一个数开始 这是从第十个数开始基数
increment by 10 --每次自增几个这是每次自增十
maxvalue 3000  --最大自增是几
minvalue 1  --最小从几开始
nocycle   --循环到最大数后从第一开始重复循环
cache 10;  --设置一个缓冲空间可以不设置



select stu_id.Nextval from dual;  --打印下一个数值
select stu_id.currval from dual;  --打印当前数值

drop  sequence stu_id  删除序列

视图

视图就是提供一个安全的查看但视图必须是可读的也可以修改的的但不建议

create view stu_view as select * from scott.emp;  --创建视图(未设置可读)
create view stu_viewRead as select * from scott.emp with read only;  --创建可读视图
--可以联合视图用两个表一起查创建的视图自己想

索引

就当成一本书没有目录想找到你想要的得看一般书本里的所有内容效率很低下,一旦书本有了目录你想要看那个看看目录就很快就找到了 [目录==索引]

索引类型 说明
唯一索引 确定索引里面没有重复的适用于主键索引
组合索引 适合多表联合查询提高优化
反向索引 正常的都是由当前行进行查询的而反向索引就是吧字段反转了更好的数据性能提升
位图索引 这个索引用于大量重复的字段,在重复的字段里从新分配个以下标的索引
索引分区 索引会占用空间将一个索引分成多个区域也方便容量管理
--唯一索引
create unique index item_index on 表名()

--组合索引
create index item_indexS on 表名(1,2);

--反向索引
create index rev_index on 表名(1)  reverse;

alter index rev_index rebuid noreverse;   --?

--位图索引
create  bitmap  index  sex_index on 表名();

--索引分区
	--全局索引
	create index 索引名称 on 表名() global;
	--本地索引
	create index 索引名称 on 表名() local;
	
	--分区
	create index  idx on stuinfo(stuAge) global
	parition by range(stuAge)
	(
    	partition A values less than(20)
        partition B values less than(maxvalue)
    )
   
相关标签: Oracle