oracle数据库的基本操作;

  • 创建表空间
  • 插拔数据库
  • 创建用户
  • 创建数据表(事务)
  • 索引
  • 视图
  • 序列
  • 同义词

一,创建表空间 例;

create tablespace school //创建表空间school 2 datafile '/oracle/app/oracle/oradata/school01.dbf' //指定表空间文件存放位置 3 size 10m autoextend on; //指定大小,空间可以扩容

调整表空间大小 1,调整大小

SQL> alter database datafile 2 '/oracle/app/oracle/oradata/school01.dbf' 3 resize 80m;

数据库已更改。

2,添加文件

SQL> alter tablespace school 2 add datafile 3 '/oracle/app/oracle/oradata/school02.dbf' 4 size 20m autoextend on;

表空间已更改。

表空间权限

SQL> alter tablespace school read only; //修改为只读权限

表空间已更改。

SQL> alter tablespace school read write; //权限修改为读写(默认)

表空间已更改。

删除表空间

SQL> drop tablespace school including contents;

表空间已删除。

二,插拔数据库(CDB与PDB转换)

SQL> show con_name //查看当前所在的容器 SQL> show pdbs; //查询数据库的所有容器

将当前数据库CDB转换为PDB

CDB:默认的数据库 PDB:容器型数据库 SQL> alter pluggable database orclpdb open; //修改可插拔库orclpdb打开状态

插接式数据库已变更。

SQL> alter session set container=orclpdb; //CDB下切换会话到PDB中

会话已更改。 SQL> shutdown immediate //在PBD中关闭插拔数据库 插接式数据库已关闭。

SQL> startup //在PBD中打开插拔数据库 插接式数据库已打开。

将PDB切换为CDB

SQL> alter session set container=cdb$root; //切换会话到CDB

三,创建用户

创建用户必须指定一个默认的表空间 在12 C版本,CDB中创建用户,用户名格式为:c##用户名 PDB中创建用户,用户名格式为:用户名 SQL> create user c##jack 2 identified by abc123 //指定密码 3 default tablespace users //指定默认表空间 4 temporary tablespace temp //指定临时表空间 5 quota unlimited on users; //不进行限额 更改用户密码 SQL> alter user c##jack identified by jack123;

删除用户 SQL> drop user c##jack cascade;

四,创建数据表(插入数据,事务)

SQL> create table info 2 ( 3 id number(4), 4 name varchar2(10), 5 score number(5,2), 6 riqi date 7 );

五,事务

在oracle中默认开启事务不进行提交。因此在进行数据操作时,一定要记得提交,或者设定为自动提交。否则数据不能写入硬盘中。 SQL> insert into info values (1,'lisi',80,to_date('2018-08-26','yyyy-mm-dd')); SQL> set autocommit on; //设定自动提交,回滚无效

六,索引

B树索引

create index 索引名称 on 表名(列名)

唯一索引/非唯一索引

create unique index 索引名称 on 表名(列名)

反向索引

create index 索引名称 on 表名(列名)reverse

位图索引

create bitmap index 索引名称 on 表名(列名)

其他索引

create index 索引名称 on 表名(upper(列名)) //大写函数索引

查看索引

select index_name,index_type,table_name,tablespace_name from user_indexes;

查看索引相关信息

select index_name,table_name,column_name from user_ind_columns where index_name like 'EMP%';

重建索引

alter index 索引名称 rebuild;

alter index 索引名称 rebuild tablespace 表空间

合并索引碎片

alter index 索引名称 coalesce;

删除索引

drop index 索引名称

七,视图

创建视图要注意权限问题 SQL> create view vinfo as select * from info; //创建视图 SQL> select * from vinfo; //查询视图 SQL> drop view vinfo; //删除视图

物化视图

首先要通过管理员帐号为c##jack用户赋予权限 SQL> grant create materialized view to c##jack; //创建物化视图权限 SQL> grant query rewrite to c##jack; //查询,重写权限 SQL> grant create any table to c##jack; //创建所有表权限 SQL> grant select any table to c##jack; //查询所有表权限

创建物化视图之前需要创建物化视图日志

create materialized view log on info;

创建物化视图

SQL> create materialized view mtview 2 build immediate //创建完成立马生成新数据 3 refresh fast //刷新数据 4 on commit //提交 5 enable query rewrite //开启查询重写功能 6 as 7 select * from info;

SQL> drop materialized view mtview; //删除物化视图

八,序列

oracle中自增列需要单独进行创建,然后插入数据时进行调用。 创建序列 SQL> create sequence id_seq 2 start with 10 //初始值 3 increment by 1 //增量 4 maxvalue 1000 //最大值 5 nocycle //肺循环 6 cache 50; //缓存

插入数据时调用序列 SQL> insert into info values (id_seq.nextval,'tom',80,to_date('2018-04-10','yyyy-mm-dd')); 查询序列当前值 SQL> select id_seq.currval from dual; 更改序列 SQL> alter sequence id_seq cache 30; 查看序列信息 SQL> select sequence_name,increment_by,cache_size from user_sequences; 删除序列 SQL>drop sequence id_seq;

九,同义词

俗称别名,外号,可以提高数据安全可靠性。 私有同义词:只在当前用户可以使用 公有同义词:所有数据库用户都可以使用 SQL> create synonym pr_info for info; //创建私有同义词 SQL> create public synonym pub_info for info; //创建共有同义词 删除同义词 SQL> drop synonym pr_info; SQL> drop public synonym pub_info;