CREATE VIEW VIEW_NAME AS SELECT * FROM BASE_TABLE [WITH READ ONLY] [WITH CHECK OPTION]
查看当前用户可以使用的全部视图web
select * from user_views;
删除视图sql
drop view VIEW_NAME;
建立一个员工视图,其中只显示员工姓名、性别和入职日期数据库
create or replace view empview as select ename,sex,hire from emp;
查看视图结构安全
desc empview;
只能向基于单表的视图添加数据数据结构
insert into empview values(20,'coco','f',sysdate);
create or replace view empview as select * from emp where sar>5000;
向该视图添加数据oracle
insert into empview values(21,'cole','m',sysdate,4000,2);
create or replace view empview as select * from emp where sar>5000 with check option;
此时向视图添加数据时,必须知足sar>5000app
索引是基于表创建的一种数据结构,经过表中的某些字段上创建索引,能够提升系统对表的查询速度
索引表中只保存索引关键字和纪录号,查询时根据索引关键字,能够从索引表中找到对应的纪录号,根据纪录号就能够快速的将纪录指针移到与关键字相对应的纪录上svg
位图索引 只存在与oracle的企业版本中,适合在数据表中的列值重复较多的状况下建立索引函数
--建立不惟一索引
CREATE INDEX index_name on TABLE_NAME(index_column) [pctfree 0];
--建立惟一索引
CREATE UNIQUE INDEX idx_emp_ename on EMP(empno) [pctfree 0];
--建立位图索引
CREATE bitmap INDEX idx2 on EMP(sex);
--可能的值少,重复多
user_indexes
:存放用户所建立的索引信息user_ind_columns
:存放用户索引的字段信息select index_name,column_name,column_position from user_ind_columns where table_name=‘emp‘;
drop index indexname;
同义词是为oracle数据库中的对象建立的别名,使该对象的非建立者也能够直接经过该别名来访问spa
scott若是须要建立公共同义词,必须由管理员sys授予权限
conn sys as sysdba;
grant create public synonym to scott;
以后使用scott/tiger登陆,建立公共同义词
conn scott/tiger;
create public synonym sc for emp;
授予其余用户访问公共同义词的权限
grant select on sc to tom
scott若是须要删除公共同义词,也必须由管理员sys授予权限
conn sys as sysdba;
grant drop public synonym to scott;
以后使用scott登陆,并删除公共同义词
conn scott/tiger;
drop public synonym sc;
私有同义词由当前用户建立,并只能由当前用户才能访问
create synonym sc for emp;
删除私有同义词使用
drop synonym sc;
DBA_SYNONYMS
:是数据库中的全部同义词的描述ALL_SYNONYMS
:是数据库中的全部同义词的描述User_SYNONYMS
:是用户可存取的全部同义词create sequence seqname increment by 1 start with 1 --不能小于minvalue的值 minvalue 1 maxvalue [nomaxvalue] 100 cycle[nocycle] cache[nocache] 20
create sequence seqname increment by 1 start with 3 minvalue 1 maxvalue 10 cycle nocache;
若是须要取出序列的值,可使用如下两个关键字
currval
:表示序列的当前值。刚刚建立的序列没有当前值。必须使用nextval
后才能获取当前值nextval
:表示序列的下一个值
反复执行如下代码后,能够看到序列的值在增长到10以后,从新从1开始增长
select seqname.nextval from dual;
使用如下语句能查看序列的当前值
select seqname.currval from dual;
在向数据表添加数据时,指定记录的主键值由序列生成
create sequence seq;
create table tb( tid integer primary key, nam varchar2(20) );
insert into tb values(seq.nextval,'tom');
insert into tb values(seq.nextval,'jack');
insert into tb values(seq.nextval,'kelly');
删除一个序列
drop sequence seqname;
DBA_SEQUENCE
:存放数据库中的全部序列的描述信息ALL_SEQUENCE
:存放当前用户可存取的全部序列USER_SEQUENCES
:用户序列的说明currval
使用如下语句能查看当前数据库有哪些表空间组成
select tablespace_name from user_tablespaces;
表空间数据 | 做用 |
---|---|
表段 | 存放表数据 |
索引段 | 存放索引数据 |
临时段 | 排序 |
回滚段 | 事务读一致性、回滚 |
sys查看有哪些表空间
select * from v$tablespace;
查看有哪些数据文件
select * from v$datafile;
Oracle自带表空间名称 | 做用 |
---|---|
SYSTEM | 存放着数据库中全部的数据字典。是存放Oracle数据库必要数据的表空间。不建议在其中存放用户本身的数据对象 |
SYSAUX | 该表空间在Oracle10g中被引入,是SYSTEM表空间的辅助表空间。用来存放oracle提供的新功能的模式对象,如:空间数据选项、XMLDB和中间件 |
UNDOTBS1 | 用来记录用户数据发生改变的信息 |
TEMP | 临时表空间,用来存放排序和查询的临时数据。临时表空间特色是不作备份,没有redo日志 |
USERS | 存放用户数据对象的表空间 |
EXAMPLE | 一个自带的示例表空间 |
create [temporary|undo] tablespace [logging|nologging] datafile 'path/name.dbf' size xM reuse [autoextend on next xxxk maxsize xxM|unlimited] [extent management local|dictionary]
temporary
|undo
表示建立表空间的类型,不指定时默认为数据表空间
logging
|nologging
表示是否记录日志
datafile
指定表空间数据文件的存放路径
autoextend on
设定数据文件的空间增加方式
extent management
设定表空间的管理方式,推荐local
create tablespace test nologging datafile 'f:/test01.dbf' size 50M reuse autoextend on next 512k maxsize 100M extent management local;
create temporary tablespace testtemp tempfile 'f:/testtemp01.dbf' size 10M extent management local;
create undo tablespace testundo datafile 'f:/testundo.log' size 10M;
若是test数据表空间的数据文件指定了最大容量maxsize
的值,且该值不是unlimited
时,数据文件有可能在使用过程当中出现容量不足的状况,此时能够为表空间添加数据文件
alter tablespace test add datafile 'f:/test02.dbf' size 50M maxsize unlimited;
或者修改原有数据文件的最大容量
alter database datafile 'f:/test01.dbf' resize 200M;
若是再也不须要某个数据文件,能够删除
alter tablespace test drop datafile 'f:/test02.dbf';
设置表空间为只读,只读表空间不能写数据,可删除数据
alter tablespace test read only
恢复表空间为可读写
alter tablespace test read write
alter tablespace test offline normal;
alter tablesapce test online;
`1.表空间脱机:
alter tablespace test offline normal
2.直接重命名数据文件或移动数据文件
3.修改表空间同数据文件的对应关系
alter tablespace test rename datafile '原数据文件路径和名称' to '新的数据文件路径和名称'
4.表空间联机
alter tablespace test online
当再也不须要某个表空间时,能够删除
drop tablespace test--只删除逻辑名称
including contents --删除表空间中的对象(可选)
and datafiles --包括删除数据文件(可选)
1.若是没有including contents and datafiles选项,将只删除表空间的逻辑名称,并无删除表空间中的数据对象以及数据文件;
2.including contents表示删除表空间中的全部数据对象;
3.and datafiles表示同时删除表空间对应的全部数据文件