一睬魂、創(chuàng)建計(jì)算字段
1、拼接
SELECT CONCAT(vend_name,' (',vend_country,')')
FROM vendors
ORDER BY vend_name;
以上的SELECT語(yǔ)句連接以下4個(gè)元素:
☆存儲(chǔ)在vend_name列中的名字
☆包含一個(gè)空格和一個(gè)左圓括號(hào)的串
☆存儲(chǔ)在vend_country列中的國(guó)家
☆包含一個(gè)右圓括號(hào)的串
2间涵、使用MySQL的RTRIM()去掉串右邊的空格卧檐,LTRIM()去掉串左邊的空格帘瞭,TRIM()去掉串左右兩邊的空格
SELECT CONCAT(RTRIM(vend_name),' (',RTRIM(vend_country),')')
FROM vendors
ORDER BY vend_name;
3朱浴、使用別名
SELECT CONCAT(RTRIM(vend_name),' (',RTRIM(vend_country),')') AS vend_title
FROM vendors
ORDER BY vend_name;
二、使用數(shù)據(jù)處理函數(shù)
大多數(shù)SQL實(shí)現(xiàn)支持以下類(lèi)型的函數(shù):
□用于處理文本串(如刪除或填充值顶捷,轉(zhuǎn)換值為大寫(xiě)或小寫(xiě))的文本函數(shù)
□用于在數(shù)值數(shù)據(jù)上進(jìn)行算術(shù)操作(如返回絕對(duì)值挂绰,進(jìn)行代數(shù)運(yùn)算)的數(shù)值函數(shù)
□用于處理日期和時(shí)間值并從這些值中提取特定成分(例如,返回兩個(gè)日期之差服赎,檢查日期有效性等)的日期和時(shí)間函數(shù)
□返回DBMS正使用的特殊信息(如返回用戶(hù)登錄信息葵蒂,檢查版本細(xì)節(jié))的系統(tǒng)函數(shù)
1.文本處理函數(shù)
SOUNDEX是一個(gè)將任何文本串轉(zhuǎn)換為描述其語(yǔ)音表示的字母數(shù)字模式的算法。
例如customers表中有一個(gè)顧客Coyote Inc.,其聯(lián)系名為Y.Lee重虑,但如果這是輸入錯(cuò)誤践付,此聯(lián)系名實(shí)際應(yīng)該是Y.Lie。
SELECT cust_name,cust_contact
FROM customers
WHERE SOUNDEX(cust_contact)=SOUNDEX('Y.Lie');
2.日期和時(shí)間處理函數(shù)
SELECT cust_id,order_num
FROM orders
WHERE Date(order_date)BETWEEN'2005-09-01'AND'2005-09-30';
=SELECT cust_id,order_num
FROM orders
WHERE Year(order_date)=2005 AND Month(order_date)=9;
3.數(shù)值處理函數(shù)
三缺厉、匯總數(shù)據(jù)
1.聚集函數(shù)
聚集函數(shù)運(yùn)行在行組上荔仁,計(jì)算和返回單個(gè)值的函數(shù)。
①AVG()函數(shù)---可用來(lái)返回所有列的平均值芽死,也可以用來(lái)返回特定列或行的平均值。
例:使用AVG()返回products表中所有產(chǎn)品的平均價(jià)格:
SELECT AVG(prod_price)AS avg_price
FROM products
WHERE vend_id =1003;
②COUNT()函數(shù)
③MAX()/MIN()函數(shù)
④SUM()函數(shù)
SUM()可以用來(lái)返回指定列值的和次洼,也可以用來(lái)合計(jì)計(jì)算值关贵。
☆除了
2.聚集不同值
用DISTINCT關(guān)鍵字聚集不同值:
3.組合聚集函數(shù)
輸入:
輸出:
四卖毁、分組數(shù)據(jù)
1.創(chuàng)建分組
使用GROUP BY子句分組
另外揖曾,使用WITH ROLLUP關(guān)鍵字,可以得到每個(gè)分組以及每個(gè)分組匯總級(jí)別(針對(duì)每個(gè)分組)的值亥啦。例如:
輸出:
2.過(guò)濾分組---HAVING子句
例如:
☆WHERE過(guò)濾行炭剪,Having過(guò)濾分組。
上面的例子翔脱,WHERE子句過(guò)濾所有prod_price至少為10的行奴拦,然后按vend_id分組數(shù)據(jù),HAVING子句過(guò)濾計(jì)數(shù)為2或2以上的分組届吁。
3.分組和排序---group by+order by
輸入:
輸出:
4.SELECT子句順序(回顧)