SQL語法 | PL/SQL | Function | TRIGGER | StoreProc | DBA

2009年10月16日 星期五

最大值 MAX()

MAX() 函數來計算一個欄位的最大值。計算最大值的語法是:

SELECT MAX("欄位名")
FROM "表格名"

舉例來說,若要由我們的範例表格中求出 Sales 欄位的最大值,

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

我們就鍵入,

SELECT MAX(Sales) FROM Store_Information

結果:

MAX(Sales)
$1500

$1500 代表所有 Sales 欄位 ($1500 、$250 、$300 、$700) 內的最大值。

最小值 MIN()

MIN() 函數來計算一個欄位的最小值。計算最大值的語法是:

SELECT MIN("欄位名")
FROM "表格名"

舉例來說,若我們要由我們的範例表格中求出 Sales 欄位的最小值,

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

我們就鍵入,

SELECT MIN(Sales) FROM Store_Information

結果:

MIN(Sales)
$200

$200 代表所有 Sales 欄位 ($1500 、$250 、$300 、$700) 內的最小值。

總合 SUM()

SUM() 函數來計算一個欄位的總合。計算總合的語法是:

SELECT SUM("欄位名")
FROM "表格名"

舉例來說,若我們要由我們的範例表格中求出 Sales 欄位的總合,

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

我們就鍵入,

SELECT SUM(Sales) FROM Store_Information

結果:

SUM(Sales)
$2750

$2750 代表所有 Sales 欄位 ($1500 、$250 、$300 、$700) 的總合。

平均值 AVG()

AVG() 函數來計算平均值。計算平均值的語法是:

SELECT AVG("欄位名")
FROM "表格名"

舉例來說,若我們要由我們的範例表格中求出 Sales 欄位的平均值,

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

我們就鍵入,

SELECT AVG(Sales) FROM Store_Information

結果:

AVG(Sales)
$678.5

$678.5 代表所有 Sales 欄位的平均值: ($1500 + $250 + $300 + $700) / 4。

CONCAT 及 ||

有的時候,我們有需要將由不同欄位獲得的資料串連在一起。

CONCAT() 的語法如下:

CONCAT(字串1, 字串2, 字串3, ...): 將字串1、字串2、字串3,等字串連在一起。請注意,Oracle的CONCAT()只允許兩個參數;換言之,一次只能將兩個字串串連起來。不過,在Oracle中,我們可以用'||'來一次串連多個字串。

來看一個例子。假設我們有以下的表格:

Geography 表格

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

例子1:

MySQL/Oracle:
SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';

結果

'EastBoston'

例子2:

Oracle:
SELECT region_name || ' ' || store_name FROM Geography
WHERE store_name = 'Boston';

結果

'East Boston'

Replace

Replace函數是用來改變一個字串的內容。這個函數的語法如下:

Replace(str1, str2, str3): 在字串 str1 中,當 str2 出現時,將其以 str3 替代。

舉個例子。假設我們有以下的表格:

Geography 表格

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

以下的 Replace 函數,

SELECT REPLACE(region_name, 'ast', 'astern')
FROM Geography;

會獲得如下的結果

region_name
Eastern
Eastern
West
West

如何關/閉 table下所有TRIGGERS?

ALTER TABLE TABLE_NAME  DISABLE ALL TRIGGERS;

ALTER TABLE TABLE_NAME  ENABLE ALL TRIGGERS;