1. 程式人生 > >資料處理之函式的使用

資料處理之函式的使用

1. 拼接:將值聯結到一起構成單個值。
Concat()拼接串,即把多個串連線起來形成一個較長的串。
例如:SELECT Concat(vend_name, '(', vend_country, ')') FROM vendors ORDER BY vend_name;
2. note
一個未命名的列不能用於客戶機應用中,因為客戶機沒有辦法引用它。
別名(alias)是一個欄位或值得替換名。別名用AS關鍵字賦予。
3. 算術計算,支援加減乘除


4. 文字處理函式
Left()返回串左邊的字元;
Length()返回串的長度;
Locate()找出串的一個子串;
Lower()將串轉換為小寫;
LTrim()去掉串左邊的空格。
Right()返回串右邊的字元;
RTrim()去掉串右邊的空格。
Soundex()返回串的SOUNDEX值;一個將任何文字串轉換為描述其語音表示的字母數字模式的演算法。
SubString()返回子串的字元;
Upper()將文字轉換為大寫;
Trim()去掉串左右兩邊的空格。
5. 日期和時間處理函式


6. 數值處理函式


7. 彙總資料:聚集函式


(1)COUNT()函式有兩種使用方式
a. 使用COUNT(*)對錶中行的數目進行計數,不管表列中包含的是空值(NULL)還是非空值。
b. 使用COUNT(column)對特定列中具有值的行進行計數,忽略NULL值。
(2)對非數值資料使用MAX()和MIN()
雖然MAX()和MIN()一般用來找出最大和最小的數值或日期值,但MySQL允許將它用來返回任意列中的最大值和最小值,包括返回文字中的最大值和最小值。在用於文字資料時,如果資料按相應的列排序,則MAX()返回最後一行,MIN()返回最前面的行。
(3)NULL值
MAX()函式、MIN()函式、SUM()函式忽略列值為NULL的行。
(4)聚集不同值DISTINCT的使用
以上五個聚集函式都可以如下使用:
a. 對所有的行執行計算,指定ALL引數或不給引數(因為ALL是預設行為);
b. 只包含不同的值,指定DISTINCT引數。
例如:
SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003;
注:取平均值時只考慮供應商為1003的各個不同的價格;
7. 分組資料


GROUP BY子句指示MySQL分組資料,然後對每個組而不是整個結果集進行聚集。


8. 過濾分組
所有型別的WHERE子句都可以用HAVING來代替。唯一的差別是WHERE過濾行,而HAVING過濾分組。
HAVING和WHERE的差別:WHERE在資料分組前進行過濾,HAVING在資料分組後進行過濾。
例如:SELECT vend_id, COUNT(*) AS num_prods FROM products WHERE prod_price >= 10 GROUP BY vend_id HAVING COUNT(*) >= 2;
9. SELECT子句順序
SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> LIMIT