oracle數據庫結構及基本操做

本篇博客主講oracle數據庫的基本操做,做爲目前世界上使用範圍最廣的數據庫管理系統,充分體現出其功能的強大和可靠。首先,oracle數據庫結構是咱們必須瞭解的,有助於掌握oracle數據庫操做。sql

系統簡介

ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分佈式數據庫爲核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。數據庫

oracle數據庫結構及基本操做

如圖所示:
SGA---爲數據庫提供服務
PGA---爲用戶提供服務
整個系統主要分爲兩大部分:
(一)實例-管理端
內存結構---SGA:共享池 數據緩衝區 日誌緩衝區
後臺進程---維持與數據庫交互
(二)數據庫
數據文件 控制文件 日誌文件c#

特色

  • 完整的數據管理功能
  • 完備關係的產品
  • 分佈式處理功能
  • 用ORACLE能輕鬆的實現數據倉庫的操做

    邏輯結構

    邏輯結構由邏輯存儲結構(表空間,段,範圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和數據庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關係造成了數據庫的關係設計。服務器

oracle數據庫結構及基本操做

  • 段(Segment):是表空間中一個指定類型的邏輯存儲結構,它由一個或多個範圍組成,段將佔用並增加存儲空間。
  • 範圍(Extent):是數據庫存儲空間分配的邏輯單位,一個範圍由許多連續的數據塊組成,範圍是由段依次分配的。
  • 數據塊(Block):是數據庫進行IO操做的最小單位,oracle數據庫是以多個Oracle數據庫塊爲單位。

表空間session

system:系統表空間,存放關於表空間名稱、控制文件、數據文件等管理信息,它屬於sys、system模式。不能刪除或重命名
sysaux:輔助系統表空間,用於減小系統表空間負荷,提升效率
temp:臨時表空間,存放臨時表和臨時數據,用於排序
users:用戶表空間,存放永久性用戶對象及私有信息,也成數據庫表空間。每一個數據庫都應有一個用戶表空間,建立用戶時分配給用戶
undo:重作表空間,用來幫助回退未提交的事務數據數據結構

文件結構

數據庫的物理存儲結構是由一些多種物理文件組成,主要有:oracle

  • 控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。
  • 數據文件:存儲數據,以.dbf作後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。
  • 重作日誌文件:用於進行數據庫的實例恢復。
  • 日誌文件:記錄數據庫修改信息。
  • 參數文件:記錄基本參數。
  • 口令文件:容許sysdba、sysoper和sysasm遠程鏈接到實例並執行管理任務。
  • 歸檔日誌文件:使用這些文件好數據庫備份,能夠恢復丟失數據文件。
  • 警告文件:show parameter background_dump_dest---使用共享服務器鏈接
  • 跟蹤文件:show parameter user_dump_dest---使用專用服務器鏈接

基本操做

1、數據庫開啓、關閉

//進入數據庫app

su - oracle
sqlplus / as sysdba                    #以最高管理員sysdba登陸
SQL> help index                       #查看命令列表
SQL> show user                      #查看當前用戶

//開啓、關閉數據庫(三階段)分佈式

SQL>startup                                #開啓:實例--數據庫裝載--數據庫打開
SQL>shutdown immediate        #關閉:數據庫關閉--卸載數據庫--實例

oracle數據庫結構及基本操做
//啓用、關閉監聽ide

lnsrctl start
lnsrctl stop

oracle數據庫結構及基本操做

2、建立數據庫

dbca
#建立數據庫(若是不彈窗口執行: export DISPLAY=:0.0)
執行成功會跳出建立數據庫頁面,按如下步驟操做

oracle數據庫結構及基本操做

oracle數據庫結構及基本操做

oracle數據庫結構及基本操做

oracle數據庫結構及基本操做
接下來等安裝進度完成便可!

3、表空間操做

//建立表空間

SQL>create tablespace tbs_work
datafile ‘/orc/app/oracle/oradata/aaa01.dbf’
size 10M autoextend on; #支持自動擴展

oracle數據庫結構及基本操做
//調整表空間大小
方法一:修改空間大小

SQL>alter database datafile
'/orc/app/oracle/oradata/aaa01.dbf'
resize 80M;

oracle數據庫結構及基本操做
方法二:添加數據文件

SQL>alter tablespace tbs_work
add datafile
'/orc/app/oracle/oradata/aaa02.dbf'
size 40M autoextend on;

oracle數據庫結構及基本操做
//表空間權限

alter tablespace tbs_work read only;
alter tablespace tbs_work write read;

oracle數據庫結構及基本操做

//刪除表空間

drop tablespaces tbs_work including contents;

4、CDB與PDB操做

//查詢當前所在容器

SQL> startup
SQL> show con_name

//查詢數據庫全部容器

SQL> show pdbs;

//CDB切換到PDB

SQL> alter pluggable database orclpdb open;   #修改可插拔庫orclpdb打開狀態
SQL> alter session set container=orclpdb;          #CDB下切換會話到PDB中

oracle數據庫結構及基本操做

//PDB切換到CDB

SQL> shutdown immediate                                  #在PBD中關閉插拔數據庫
SQL> startup                                                          #在PBD中開啓插拔數據庫
SQL> alter session set container=cdb$root;      #切換會話到CDB

oracle數據庫結構及基本操做

5、用戶管理

//建立表空間

SQL>create tablespace school
  2  datafile '/orc/app/oracle/oradata/school01.dbf'
  3  size 100M;

//建立用戶(建立好未賦予權限,因此不能登陸)

SQL> create user c##jack
  2  identified by 123123                 
  3  default tablespace school              #默認表空間
  4  temporary tablespace temp            #定義臨時表空間
  5  quota unlimited on school               #不設定配額
  6  password expire;                             #設定密碼,下次登陸修改

//更改用戶密碼

SQL> alter user c##jack identified by abc123;

//刪除用戶

SQL> drop user c##jack cascade;

oracle數據庫結構及基本操做
//用戶受權

SQL> grant connect, resource to c##jerry; #授予鏈接和管理數據庫權限
SQL> revoke connect, resource from c##jerry;

oracle數據庫結構及基本操做
//用戶登陸

sqlplus -----c##jerry(用戶名)----123123(密碼)----新密碼---登錄成功

oracle數據庫結構及基本操做
//用戶切換

coon sys/abc123 as sysdba #切換到sysdba
conn---c##jerry---123123 #切換到c##jerry

oracle數據庫結構及基本操做

6、表的操做

create table info
2 (
3 id number(4) constraint PK_id primary key, #constraint PK_id:約束-約束名稱
4 name varchar2(10),
5 score number(5,2),
6 born date,
7 address varchar2(50)
8 );

//查看錶結構

desc info;

oracle數據庫結構及基本操做
//插入數據

insert into info values(1,'zhangsan',88,to_date('2018-10-9','yyyy-mm-dd'),'nanjing');

//查看錶格

select * from info;

oracle數據庫結構及基本操做

7、事務

  • 事務:在不違反約束的條件下,sql語句要麼執行成功,要麼都不執行。
    //事務提交

    insert into info values(2,'lisi',88,null,null); #插入數據
    commit; #提交

oracle數據庫結構及基本操做
//事務回滾

insert into info values(3,'wangwu',77,null,null); #插入數據
rollback; #回滾

oracle數據庫結構及基本操做
//設置自動提交

set autocommit on; #自動提交,回滾無效
set autocommit off; #關閉自動提交

oracle數據庫結構及基本操做

本篇博文介紹了oracle數據庫結構及基本操做,下一篇在此基礎將系統介紹oracle數據庫的對象,期待你們共同窗習!

相關文章
相關標籤/搜索