1. 程式人生 > >Oracle基本操作(二)

Oracle基本操作(二)

enable 信息 iat 提高 info RoCE zed 數據 number

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;

技術分享圖片
技術分享圖片

Oracle基本操作(二)