1-1、Oracle是啥碗糕

Oracle資料庫就如同微軟的SQL Sever、IBM的DB2及Informax及SYbase一樣,都是屬於大型的資料庫的軟體,也是目前全球佔有率最多的資料庫,它除了可安裝於Windows作業系統外,還可安裝於Unix及Linux作業系統上。
Oracle是美商Oracle公司的產品之一,但其眾多產品中,最讓人們所知道的,是他的資料庫軟體,因此大家說Oracle時,就是指Oracle公司的資料庫了。
Oracle又稱為「甲骨文」,對許多人而言,都認為它是一個不好入門的資料庫,而會有這樣子的感覺,乃是因為它不像SQL Sever有個視窗介面,因此除非使用者使用如TOAD(付費軟體,功能強大,粉貴)或DataStudio(V4.7.2版之前免費,雖不像TOAD功 能強大,但已足夠一般人使用)等視窗軟體,否則只能使用Oracle本身的軟體SQL Plus了,但筆者認為,視窗介面雖好用,但卻是造成使用者對SQL語法一知半解的主因。
想要學會使用Oracle,必需要先了解SQL語法,如 要將Oracle發揮更大的效率,更深入地,還要了解何謂Trigger、Function及Package,這些可都是Oracle資料庫的強項,要了解這些之前,必需要先了解何謂PL/SQL,這一些,筆者都會在後續的單元中講解。
在這裏,筆者只是要讀者了解基本什麼是Oracle,因此Oralce的歷史,並非是我們的討論範圍,準備好了嗎?跟我們進入Oracle的領域了。

 

1-2、下載Oracle

要學習Oracle,必需要先有Oracle資料庫,Oracle最難得的,是他的資料庫,我們可在Oracle的網站上找到,如你想要了解Oracle近 期究竟又有什麼商品的發表,那可至其英文網站http://www.oracle.com或中文網站http://www.oracle.com/tw/index.html查看,如下載Oracle資料庫軟體,那可至http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html中找你所要的版本。
但要注意的是Oracle資料下載業面中的Express Edition的版本,為其所謂的免費版本,其主要的限制是每個資料庫只提供4GB大小容量,且只提供給單一CPU所使用,對於只想練習的人來說,是十分足夠的了。
因Oracle資料庫軟體相當大,因此要先視自己的時間來決定是否下載,另外,筆者曾試過,要將Oracle安裝在Vista,結果無法安裝,後查詢 Oracle網站,才知道原來Oracle要安裝在Vista,必需是Oralce 10g第二版以上版本及Vista必需是Vista Business、Ultimate和Enterprise版才能安裝,因此要使用Oralce使用者,需先注意看自己所使用的Vista是否是 Vista Business、Ultimate和Enterprise版本,若是Windows XP、UNIX或LINUX的使用者,則無此問題。

 

1-3、了解基本SQL語法--Select

要了解Oracle前,必需要先了解基本的SQL語法,在此章節中,我們先就SQL最常用的Select來做討論。在討論前我們先假設二個資料表,分別是部門資料表及員工資料表,各別資料表內容如下:

資料表名稱: department

欄位名稱

欄位說明

欄位大小

PK

depno

部門編號

Varchar2(5)

Y

depnm

部門名稱

Varchar2(30)

N

remark

備註

Varchar2(200)

N

 

資料表名稱: employee

欄位名稱

欄位說明

欄位大小

PK

depno

部門編號

Varchar2(5)

Y

empno

員工編號

Varchar2(8)

Y

empnm

員工姓名

Varchar2(30)

N

 

基本Select架構

 

Select的基本架構,基本來說,是指單一資料表的查詢而言,其語法如下:select 欄位名稱 from 資料表 where 條件內容;

例:

select depno from department where depno like 'A%';

→ 從資料表department中查詢資料表部門編號為A開頭的所有部門編號及部門名稱

多資料表查詢

 

多資料表則是指兩個以上的資料表之間的查詢,多資料表查詢一般是指查詢兩個有關聯的資料表來說,因此一般而言,多資料表的查詢會有where的關聯條件,其語法如下:select 別名A.別名A資料表欄位名稱, 別名B.別名B資料表欄位名稱, ...from 資料表A 資料表A別名,資料表B 資料表B別名, ...where 資料表A與資料表B關聯條件 and 其他條件;

例:

select a.depno, b.empno from department a, employee bwhere a.depno = b.depnoand a.depno like = 'A%';

→從資料表department及employee中查詢部門編號開頭為A的所有部門編號及員工編號

子查詢

 

簡單來說,子查詢是指在查詢語法中,含有另一個查詢語法,由於子查詢是由一個或一個以上的查詢語法組成,因此在查詢的速度上,會比一般的查詢慢上許多,因此如非必要,最好盡可能不用,其語法如下:select 資料表A.欄位名稱, ...from 資料表A where 資料表A.欄位名稱 in (select 資料表B.欄位名稱 from 資料表b where 資料表B條件);

例:

select empno, empnm from employeewhere depno in (select depno from department);

→查詢資料表employee中部門編號存在於資料表department中的員工編號及員工名字

 

以上為SQL最基本的三種Select的用法,Select語法並不難,但難的是要如何運用,多練習、多問、多思考即是方式。而在Oracle中還有幾種常用的查詢:

  1. 查詢所有User:select * from all_users;
  2. 查詢所有資料表:select * from tab;
  3. 查看資料表所有欄位:desc 資料表名稱

另外在Oracle中還有一個虛擬資料表dual,其運用方式,我們將在下個章節中討論。


arrow
arrow
    文章標籤
    Oracle 資料庫 SQL
    全站熱搜

    Condy Lin 發表在 痞客邦 留言(0) 人氣()