数据库对象
程序员文章站
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)
)
上一篇: 数据库对象的同义词和序列
下一篇: 消除重复数
推荐阅读
-
php代码之面向对象基础一
-
JavaScript面向对象(4)——最佳继承模式(从深拷贝、多重继承、构造器借用,到组合寄生式继承)
-
Access入门教程 3.4 选择数据库中表和表中的字段
-
js深拷贝,对象深拷贝、数组深拷贝
-
用simplexml_load_string($xml_str)返回的对象访问不存在的属性,empty为true
-
圣诞快乐: 用 GaussDB T 绘制一颗圣诞树,兼论高斯数据库语法兼容
-
javascript函数,属性,对象创建表达式详解
-
mysql不用rand()函数实现随机读取数据库记录的方法
-
分布式数据库HBase
-
php导入excel文件到mysql数据库的方法,