1. 程式人生 > >ORACLE初學第一篇

ORACLE初學第一篇

ORACLE理論片

Oracle分為兩部分: 對於一個數據庫系統來說,假設這個系統沒有執行,“物理檔案”,這是從靜態的角度來看
如果從動態的角度來看呢,也就是說這個資料庫系統執行起來了,能夠對外提供服務了,那就意外著資料庫系統啟動了自己的一個“例項”

一、oracle伺服器 所謂oracle伺服器是一個數據庫管理系統,它包括一個oracle例項(動態)和一個oracle資料庫(靜態)。
1、oracle例項:有SGA和一些後臺服務程序組成,在後臺服務程序當中,DBWn PMON CKPT LGWR SMON是必備的後臺程序

2、oracle資料庫: 1)是一個被統一處理的的資料的集合,從物理角度來看包括三類檔案資料檔案,控制檔案,重做日誌檔案。
2)oracle資料庫至少包含一個表空間,表空間至少包含一個段,段由區做成,區有塊組成。需要注意的是表空間可以包含若干個資料檔案,段可以跨同一個表空間的多個數據檔案,區只能在同一個資料檔案內。

二、其他檔案 oracle還設計了其他的關鍵檔案用來為整個系統服務,如配置檔案,密碼檔案,歸檔日誌檔案,還有還有使用者程序和服務程序

三、SQL執行流程 1、如果使用者想提交sql語句,那麼首先你必須要連線到oracle例項,連線到oracle例項有三種途徑
1)如果使用者登陸到執行oracle例項的作業系統上,則通過程序間通訊進行訪問 2)C/S結構訪問 3)三層結構 2、連線
發起連線的應用程式或工具通常稱為使用者程序,連線發起後,oracle伺服器就會建立一個程序來接受連線,這個程序就成為服務程序 3、通訊
伺服器程序代表使用者程序與oracle例項進行通訊,在專用伺服器連線模式下,使用者程序和服務程序是1對1的關係,在共享伺服器模式下,多個使用者程序可能共享一個服務程序。
4、建立會話 當伺服器程序開始和oracle例項進行通訊時,一個會話就被建立了。 5、語句執行
顯然處理一個查詢要經過語法分析,繫結,執行,提取等階段。

四、客戶端與服務端 1、客戶端連線外地服務端: 1)客戶端通過NET.Manger配置,找到對方資料庫伺服器的IP地址和資料庫名
2)通過TOAD(資料庫操作工具)登入對方資料庫,使用者名稱和密碼需要向管理員獲取,登入後完成連線;
2、服務端包括客戶端的功能,額外的擁有伺服器的功能


實踐片

一、建立一個表空間方式1:(固定記憶體大小,注意在E盤建立一個tablespaces資料夾)

 create tablespace ts1 datafile 'E:\tablespaces\ts1.dbf' size 50M;

方式二:(建立可以自動擴充套件的記憶體表空間)

 create tablespace ts2 datafile 'E:\tablespaces\ts2.dbf' size 50M autoextend on next 10M;

方式三:(設定最大增長的空間)

create tablespace ts3 datafile 'E:\tablespaces\ts3.dbf' size 50M autoextend on next 10M maxsize 1024M;

二、更改使用者預設表空間(scott使用者預設表空間為users)

 alter database default tablespace ts1;

通過plSql視覺化工具去view找到dba_users右擊可以開啟Query data檢視可以檢視各個使用者的表空間

三、更改表空間的名字

alter tablespace ts1 rename to tst;

四、刪表空間我們只能刪除沒有使用的表空間(有使用者使用的表空間我們刪不掉,需要解除使用才能刪掉)

drop tablespace ts1 including contents and datafiles;

plsql建立表新增資料方法常用的兩種
1、edit data視窗下直接加但是不能查詢,加完直接提交事務
2、query data視窗新增使用如下語句(按F8:excute一下,再點選下面工具欄的edit data就可以新增資料,提交事務)

select * from A1 t for update

上面的語句是我建立sys使用者下的表所以可以直接查詢,如果我們建立的是scott使用者下的表則需要加上scott.a1進行查詢。
五、刪除表

drop table a1;

六、查詢虛表dual(其他的函式未學到,以後有時間補充)

select * from dual;

select sysdate from dual;//查詢當前日期時間

七、檢視登陸使用者預設的表空間

select username,default_tablespace from user_users;