四、表空间、数据库对象
一、同义词(指创建一个名字去引用其他用户的一个表 之后查询不需要再用户名.表名 直接名字即可)
.1、首先超级管理要给用户创建同义词的权限:grant create synonym to wpq;
2、给其查看权限:grant select on emp to wpq;
3、创建同义词:create [or replace] synonym synonym_name for scott.emp;
4、使用同义词:select * from sysnonym_name; 等同于 select * from scott.emp;
增删改查都用同义词来做
二、序列(无意思的列一般作为主键使用 自动增长)
1、创建序列
create or replace sequence MYSEQ
minvalue 1 --序列最小值是1
start with 1 --从1开始默认升序值时1,降序值时-1
nomaxvalue --这里是最大值默认选项 不写自动补齐 升序的最大值是 10^27 降序是-1
increment by 1 -- 如果num正数 就升序 负数就降序默认值是1
nocycle -- 不会重新开始 超标报错
Cycle -- 超标重新开始
cache 30 -提前自动产生30个序列号保存在内存中 提高效率
注意:1、start with:起始值,升序默认1,,降序默认-1
2、increment by:增长数,升序默认1,降序默认-1
3、升序默认最小值1, 最大值10^27
4、降序默认最小值-10^27,最大值-1
2、序列的使用(通过currval和nextval两个伪劣使用)
序列每次运行 加increment by 值:Select myseq.nextval from dual;
返回序列当前值:select myseq.currval from dual;
3、序列的修改
alter sequence myseq
maxvalue 10000
minvalue -300
Increment by -1345
修改后继续已经运行到的nextval增长值继续运算
四、视图(选择一个表的部分数据输出并将结果集保存为视图)
一、创建视图
创建一个emp表部分数据的视图:create view view_name4 as select ename,sal from emp ;
使用视图:select * from view_name;
注意:使用视图可以对视图中的列做增删改查会影响到emp表
如果创建时加with read only: create view view_name4 as select ename,sal from emp with read only ;
则不能增删改等操作视图;
五、索引(将数据自动分成目录 可以理解为字典搜索目录)
一、给emp创建唯一索引
Create unique index 索引名字 on emp(ename);
注意:创建索引时一定要理清给什么数据分配什么索引 例如 主键都是唯一的数据 所以应该分配唯一索引unique
六、表空间(表空间内有多个存储文件供表使用)
一、创建表空间:
create tablespace myspace
datafile 'd:/aaa.ora' size 10m,--设置表空间储存位置和存储容量
'd:/bba.ora' size 5m
extent management local --指定分区的大小 这里和后面可以不写
uniform size 1m
1、 当表空间不足时可以增加一个表空间的文件:
alter tablespace myspace
add datafile 'd:abc.ora'size 10m
2、为用户指定表空间:
alter user scott default tablespace myspace
3、为表指定表空间:
alter table scott.emp default tablespace myspace
4、为索引指定表空间:
Create unique index 索引名字 on emp(ename) tablespace myspace
注意:一旦表和索引指定了表空间之后无法再修改只能扩大
每个表只能使用一个表空间,表可以共用一个表空间,表空间可以创建多个文件存储,一个存储文件只能属于一个表空间