1. 程式人生 > >Oracle基礎知識01

Oracle基礎知識01

小白入門筆記

前記:該筆記我是在朋友那拷貝的Oracle培訓視訊下總結出來的,然後增加了一下自我的理解,網上的資源一大把,之前想要入門Oracle,但是一個小白想要入門,看著網上的資料眼花繚亂,所以特意把自己學習筆記記錄一下,可能會存在很多錯誤,可能知識點不全,但是這是我的一個成長曆程,也是我的第一篇部落格,短時間內工作上還用不到Oracle,希望以後當我用到時,在回憶Oracle資料庫的內容的時候,看著這些內容能夠快速回憶起來。筆記我是先寫在有道雲筆記上的,然後在寫上來的。如果有需要的,之後可以發有道雲的筆記共享連結。

 

可能有很多小白看這個也有點蒙,因為沒有實操截圖,但是這個我是在練習完後再總結的,所以沒有截圖。還有我覺得小白入門的一大難題就是軟體,這個真的抱歉,軟體我也是從我朋友那拷的,所以沒有辦法提供,但是網上的資源一大把,安裝文件頁一大把,軟體的下載和安裝真的不想在弄了,弄的話還要解除安裝我現在安裝好的。所以自求多福吧。

下面就是正文了......

使用者介紹

在裝好Oracle 11g 資料庫和 PLSQL 之後,會有預設會有三個使用者,其中包括兩個系統使用者

Oracle登入使用者 SYS 和 SYSTEM

 

SYS使用者

SYSTEM使用者

地位

Oracle的一個超級使用者

Oracle預設的系統管理員

作用

主要用來維護系統資訊和管理例項

通常用來管理Oracle資料庫的使用者、許可權和儲存等

登入身份

只能以SYSDBA或SYSOPER角色登入

可以以Normal方式登入

還有一個普通使用者,使用者名稱為scott,該使用者下有幾張測試表,可以用這個使用者下的測試表進行練習。

注意:這三個使用者的密碼在安裝 Oracle 11g資料庫的時候,在安裝步驟裡已經設定好了密碼,同時 scott 普通使用者在安裝的時候需要解除鎖定才能使用。

SYS使用者登入時注意需要選擇登入身份,不能以normal身份登入。

 

 

入門第一步:建立表空間

表空間概念:

百度百科:Oracle表空間

1:表空間概念:

表空間是資料庫中最大的邏輯單位,Oracle資料庫採用表空間將相關的邏輯元件組合在一起,一個Oracle資料庫至少包含一個表空間。每個表空間由一個或多個數據檔案組成,一個數據檔案只能與一個表空間相聯絡。

在每一個數據庫中都有一個名為SYSTEM的表空間,即系統表空間,該表空間是在建立資料庫或資料庫安裝時自動建立的,用於儲存系統的資料字典表、程式單元、過程、函式、包和觸發器等。

2:表空間型別:

永久性表空間:一般儲存表、檢視、過程和索引等的資料。

臨時性表空間:只用於儲存系統中短期活動的資料。

撤銷表空間:用來幫助回退未提交的事務資料。

 

自我理解表空間:

如果有學過MySQL,這個表空間暫時可以想象成MySQL的資料庫,表空間裡面可以包含多張表,MySQL資料庫裡面也可以包含多張表,剛剛學完這部分,Oracle表空間很多特性還沒學到,所以我這邊暫時是這樣理解的;

如果沒有學過MySQL,可以把Oracle資料庫想象成一個圖書館,表空間就是裡面的一個房間,表空間裡的表就是房間裡面的一個書架,書架上面書的擺放規則就是你所設定的列,書架上的書就是你存放的資料。

 

建立表空間:

說了表空間的概念,現在來說說怎麼建立表空間;

表空間分類:

1. 永久表空間:

存放資料庫中永久化儲存的物件,表、檢視、儲存過程等。

2. 臨時表空間:

存放資料庫操作中中間執行的過程,執行結束後存放的內容被自動釋放掉,不進行永久儲存。

3. UNDO表空間:

儲存事務所修改資料的舊值,也就是被修改前的資料。利用UNDO表空間可以對資料進行撤銷、回滾的操作。

SQL語句:

--建立表空間(永久表空間)

CREATE TABLESPACE 表空間名

DATAFILE 表空間儲存路徑                                                -- 資料檔案路徑

SIZE 表空間起始大小                                                         -- 資料檔案的初始大小

AUTOEXTEND ON                                                            -- 開啟自動擴充套件

NEXT 擴充套件大小                                                                  -- 自動擴充套件的大小

MAXSIZE UNLIMITED;                                                      -- 設定表空間最大大小(無限擴充套件)

 

--建立表空間(臨時表空間)

CREATE TEMPORARY TABLESPACE 臨時表空間名

TEMPFILE 臨時表空間建立路徑                                        -- 資料檔案路徑

SIZE 臨時表空間起始大小                                                 -- 資料檔案的初始大小

AUTOEXTEND ON                                                           -- 開啟自動擴充套件

NEXT 擴充套件大小                                                                 -- 每次自動擴充套件的大小

MAXSIZE UNLIMITED                                                      -- 最大大小

 

關於UNDO表空間,暫時沒有用到,所以不是很清楚,從網上找了一篇部落格,感覺還可以,之後又用到時再來細說;

關於UNDO表空間部落格轉載連結

 

建立表空間舉例:

注:我這邊使用的是膝上型電腦,採用的是本地環境,Oracle資料庫安裝在Windows系統上。

 

--以sys賬號登入

--建立表空間(永久表空間)

CREATE TABLESPACE mytbs

DATAFILE 'd:\mytbs.dbf' --資料檔案路徑

SIZE 10m --資料檔案的初始大小

AUTOEXTEND ON --自動擴充套件

NEXT 1M --自動擴充套件的大小

MAXSIZE UNLIMITED --最大大小

 

--建立表空間(臨時表空間)

CREATE TEMPORARY TABLESPACE mytemptbs

TEMPFILE 'd:\mytemptbs.dbf' --資料檔案路徑

SIZE 10m --資料檔案的初始大小

AUTOEXTEND ON --自動擴充套件

NEXT 1M --自動擴充套件的大小

MAXSIZE UNLIMITED --最大大小

 

注意:普通使用者沒有建立表空間許可權,即如果用Scott賬戶去建立則無法成功,這裡我用的是SYS使用者。

 

入門第二步:建立新使用者

在使用Oracle資料庫時,我們肯定不能一直使用系統管理員使用者或者測試使用者,要為自己建立一個新使用者作為自己的專用賬戶。

建立使用者語法:

CREATE   USER   user                                                               -- 使用者名稱

IDENTIFIED   BY   password                                                      -- 密碼

[DEFAULT  TABLESPACE    tablespace]                                   -- 指定永久表空間

[TEMPORARY TABLESPACE    tablespace]                             -- 指定臨時表空間

 

注意:[ ] 裡面的語句代表是可選項,即在建立使用者時可以寫,也可以不寫。

 

舉例:

--建立使用者

CREATE USER vashon

IDENTIFIED BY vashon123

DEFAULT TABLESPACE mytbs -- 這個表空間是上面建立好的永久表空間

TEMPORARY TABLESPACE mytemptbs; -- 這個表空間是上面建立好的臨時表空間

 

注意:新建好的使用者時沒辦法登入的,還需要對這個使用者賦予許可權,才能讓他可以執行某些操作。

 

入門第三步:使用者許可權修改

許可權修改包括賦予使用者許可權和刪除使用者許可權。

 

--給新使用者授權

GRANT CONNECT TO user;                                  -- 授予連線許可權

GRANT RESOURCE TO user;                               -- 授予資源許可權

 

--回收許可權

REVOKE CONNECT FROM user;                         -- 回收連線許可權

REVOKE RESOURCE FROM user;                      -- 回收資源許可權

 

注:這裡應該可以具體到設定使用者能夠執行哪些操作(增刪查改),但是我找到的學習視訊沒有詳細講,所以只能又百度一篇部落格,找到了一些內容。

  grant create session to vashon;//授予vashon使用者建立session的許可權,即登陸許可權

 

  grant unlimited tablespace to vashon;//授予vashon使用者使用表空間的許可權

 

  grant create table to vashon;//授予建立表的許可權

 

  grant drop table to vashon;//授予刪除表的許可權   

 

     grant drop any table tovashon;//  注意:即使以上是以管理員登陸並授權但還會提示許可權不夠,需要指定 "any"

 

  grant insert table to vashon;//插入表的許可權

 

     grant insert any table to vashon;//注意:即使以上是以管理員登陸並授權但還會提示許可權不夠,需要指定 "any"

 

  grant update table to vashon;//修改表的許可權

 

     grant update any table to vashon;//注意:即使以上是以管理員登陸並授權但還會提示許可權不夠,需要指定 "any"

 

  grant all to public;//這條比較重要,授予所有許可權(all)給所有使用者(public)

 

  2、oralce對許可權管理比較嚴謹,普通使用者之間也是預設不能互相訪問的,需要互相授權

 

  

  grant select on tablename to vashon;//授予vashon使用者檢視指定表的許可權

 

     grant select any table to vashon;// 授予使用者檢視本使用者下所有表的許可權

 

  grant drop on tablename to vashon;//授予刪除表的許可權

 

  grant insert on tablename to vashon;//授予插入的許可權

 

  grant update on tablename to vashon;//授予修改表的許可權

 

  grant insert(id) on tablename tovashon;

 

  grant update(id) on tablename tovashon;//授予對指定表特定欄位的插入和修改許可權,注意,只能是insert和update

 

  grant alert all table to vashon;//授予vashon使用者alert任意表的許可權

 

  五、撤銷許可權

 

  基本語法同grant,關鍵字為revoke

 

  六、檢視許可權

 

  select * from user_sys_privs;//檢視當前使用者所有許可權

 

  select * from user_tab_privs;//檢視所用使用者對錶的許可權

 

  七、操作表的使用者的表

 

  

 

  select * from vashon.tablename

 

  八、許可權傳遞

 

  即使用者A將許可權授予B,B可以將操作的許可權再授予C,命令如下:

 

  grant alert table on tablename tovashon with admin option;//關鍵字 with admin option

 

  grant alert table on tablename tovashon with grant option;//關鍵字 with grant option效果和admin類似

---------------------

作者:國境之南_ywx

來源:CSDN

原文:https://blog.csdn.net/yangwenxue_admin/article/details/47323131

版權宣告:本文為博主原創文章,轉載請附上博文連結!

 

當用戶建立好了之後就可以使用安裝好的PLSQL軟體登入,PL/SQL Developer是一個整合開發環境,專門開發面向Oracle資料庫的應用。

 

這樣我們就可以以 vashon 賬戶登入。

 

我擦,有道雲整好的格式複製上來竟然成了純文字貼上,心態炸了......

好吧,共享一下有道雲連結:Oracle基礎知識01--有道雲筆記