Mysql必知必會(huì)重點(diǎn)整理11-17章

chap11 使用數(shù)據(jù)處理函數(shù)

11.1 函數(shù)

RTrim():去掉串尾空格

11.2 使用函數(shù)

  1. 理文本串
  2. 在數(shù)值數(shù)據(jù)上進(jìn)行算術(shù)操作
  3. 處理日期和時(shí)間并從這些值中提取特定成分(例如返回兩個(gè)日期之差瘸羡,檢查日期有效性等)的日期和時(shí)間函數(shù)
  4. 返回DBMS正使用的特殊信息

11.2.1 文本處理函數(shù)

為常用的文本處理函數(shù):

函數(shù) 說明
Left() 返回串左邊的字符
Length() 返回串的長(zhǎng)度
Locate() 找出串的一個(gè)子串
LTrim() 去掉串左邊的空格
Right() 返回串右邊的字符
RTrim() 去掉串右邊的空格
Soundex() 返回串的Soundex值
SubString() 返回子串的字符
Upper() 將串轉(zhuǎn)換為大寫

解釋:SOUNDEX()函數(shù)是一個(gè)將任何文本串轉(zhuǎn)換為描述其語音表示的字母數(shù)字模式的算法梗逮,使得能對(duì)串進(jìn)行發(fā)音比較而不是字母比較
舉例:customers表中有一個(gè)顧客Coyote Inc.,其聯(lián)系名為Y.Lee,但是輸入錯(cuò)誤寫為為Y.Lie,采用的方法:

SELECT customers.cust_name,customers.cust_contact FROM customers WHERE SOUNDEX(cust_contact)=SOUNDEX('Y Lie');

11.2.2 日期和時(shí)間處理函數(shù)

日期和時(shí)間采用相應(yīng)的數(shù)據(jù)類型和特殊的格式存儲(chǔ)忆植,以便能快速和有效地排序或過濾躲查,并且節(jié)省物理存儲(chǔ)空間颖系。
下表:常用日期和時(shí)間處理函數(shù)

函數(shù) 說明
AddDate() 增加一個(gè)日期(天、周等)
AddTime() 增加一個(gè)時(shí)間(時(shí)、分等)
CurTime() 返回當(dāng)前時(shí)間
Date() 返回日期時(shí)間的日期部分
DateDiff() 計(jì)算兩個(gè)日期之差
Date_Add() 高度靈活的日期運(yùn)算函數(shù)
Date_Format() 返回一個(gè)格式化的日期或時(shí)間串
Day() 返回一個(gè)日期的天數(shù)部分
DayOfWeek() 對(duì)于一個(gè)日期,返回對(duì)應(yīng)的星期幾
Hour() 返回一個(gè)時(shí)間的小時(shí)部分
Minute() 返回一個(gè)時(shí)間的分鐘部分
Month() 返回一個(gè)日期的月份部分
Now() 返回當(dāng)前日期和時(shí)間
Second() 返回一個(gè)時(shí)間的秒部分
Time() 返回一個(gè)日期時(shí)間的時(shí)間部分
Year() 返回一個(gè)日期的年份部分

迄今為止判导,WHERE子句經(jīng)常過濾的部分為比較數(shù)值和文本,現(xiàn)在可以對(duì)日期進(jìn)行過濾

舉例:查詢出在2005-09-01這天下單的顧客編號(hào)以及下單的數(shù)量

SELECT customers.cust_id,orderitems.order_num FROM customers,orderitems,orders WHERE order_date='2005-09-01';

如果存儲(chǔ)的order_time值為2005-09-01 11:30:05沛硅,而WHERE order_date='2005-09-01'將檢索失敗
解決方法:使用Date()函數(shù)與部分列值進(jìn)行比較
舉例:

SELECT customers.cust_id,orderitems.order_num FROM customers,orderitems,orders WHERE DATE(orders.order_date)='2005-09-01'眼刃;

注:如果想要的是日期,請(qǐng)使用Date():如果想要的僅僅是日期摇肌,則使用該函數(shù)是一個(gè)良好的習(xí)慣擂红,即使知道相應(yīng)的列只包含日期也是如此。
也存在一個(gè)Time()函數(shù)围小,在只要想要時(shí)間時(shí)使用

如果想要檢出2005年9月下的所有訂單昵骤,簡(jiǎn)單的相等測(cè)試也不行,可以采用以下的方法:
方法一:

SELECT customers.cust_id,orderitems.order_num FROM customers,orderitems,orders WHERE DATE(orders.order_date)  BETWEEN '2005-09-01' AND '2005-09-30';

方法二:

SELECT customers.cust_id,
       orderitems.order_num 
FROM customers,orderitems,orders 
WHERE YEAR(orders.order_date)=2005 AND
      MONTH(orders.order_date)=9;

11.2.3 數(shù)值處理函數(shù)

數(shù)值處理函數(shù)僅處理數(shù)值數(shù)據(jù)肯适,這些函數(shù)一般主要用于代數(shù)变秦、三角函數(shù)或幾何運(yùn)算,因此沒有串或日期-時(shí)間處理使用頻繁疹娶。
下表:常用數(shù)值處理函數(shù)

函數(shù) 說明
Abs() 返回一個(gè)數(shù)的絕對(duì)值
Cos() 返回一個(gè)角度的余弦
Exp() 返回一個(gè)數(shù)的指數(shù)值
Mod() 返回一個(gè)數(shù)的余數(shù)
Pi() 返回圓周率
Rand() 返回一個(gè)隨機(jī)數(shù)
Sin() 返回一個(gè)角度的正弦
Sqrt() 返回一個(gè)數(shù)的平方根
Tan() 返回一個(gè)角度的正切

chap12 匯總數(shù)據(jù)

12.1 聚集函數(shù)

我們經(jīng)常需要匯總數(shù)據(jù)而不用把它們實(shí)際檢索出來伴栓,這種類型的檢索大概有以下幾種:

  1. 確定表中的行數(shù)
  2. 獲得表中行組的和
  3. 找出表列的最大值伦连、最小值和平均值
    聚集函數(shù)(aggregate function):運(yùn)行在行組上雨饺,計(jì)算和返回單個(gè)值的函數(shù)

下表:SQL聚集函數(shù)

函數(shù) 說明
AVG() 返回一個(gè)數(shù)的平均值
COUNT() 返回某列的行數(shù)
MAX() 返回某列的最大值
MIN 返回某列的最小值
SUM() 返回某列值之和

12.1.1 AVG()函數(shù)

AVG()函數(shù)對(duì)表中行數(shù)計(jì)數(shù)并計(jì)算特定列值之和,求得該列的平均值
AVG()函數(shù)可用來返回所有列的平均值惑淳,也可以用來返回特定列或行的平均值
例1:返回列中所有數(shù)據(jù)
返回產(chǎn)品表中所有產(chǎn)品的平均價(jià)格

SELECT AVG(products.prod_price) AS avg_price FROM products;

例2:返回特定列或行的平均值
返回特定供應(yīng)商所提供產(chǎn)品的平均價(jià)格

SELECT AVG(products.prod_price) AS avg_price
FROM products
where vend_id=1003;

只用于單個(gè)列:AVG()函數(shù)只能用來確定特定數(shù)值列的平均值额港,而且列名必須作為函數(shù)參數(shù)給出。為了獲得多個(gè)列的平均值歧焦,必須使用多個(gè)AVG()函數(shù)移斩。

12.1.2 COUNT()函數(shù)

COUNT()函數(shù)用于確定表中行的數(shù)目或符合特定條件的行的數(shù)目

  1. COUNT(*):對(duì)表中行的數(shù)目進(jìn)行計(jì)數(shù)
  2. COUNT(column):對(duì)特定列中具有的行進(jìn)行計(jì)數(shù)
    例1:檢索客戶表中客戶的總數(shù)
SELECT COUNT(*) AS num_cust
FROM customers;

例2:只對(duì)具有電子郵件地址的客戶計(jì)數(shù)

SELECT COUNT(cust_email) AS num_cust
FROM customers;

12.1.3 MAX()函數(shù)

例:檢索出產(chǎn)品表中最貴的產(chǎn)品的價(jià)格

SELECT MAX(prod_price) AS max_price
FROM products;

12.1.4 MIN()函數(shù)

例:檢索出產(chǎn)品表中最貴的產(chǎn)品的價(jià)格

SELECT MIN(prod_price) AS min_price
FROM products;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肚医,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子向瓷,更是在濱河造成了極大的恐慌肠套,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猖任,死亡現(xiàn)場(chǎng)離奇詭異你稚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)朱躺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門刁赖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人长搀,你說我怎么就攤上這事宇弛。” “怎么了源请?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵枪芒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我谁尸,道長(zhǎng)病苗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任症汹,我火速辦了婚禮硫朦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘背镇。我一直安慰自己咬展,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布瞒斩。 她就那樣靜靜地躺著破婆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胸囱。 梳的紋絲不亂的頭發(fā)上祷舀,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音烹笔,去河邊找鬼裳扯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谤职,可吹牛的內(nèi)容都是我干的饰豺。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼允蜈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼冤吨!你這毒婦竟也來了蒿柳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤漩蟆,失蹤者是張志新(化名)和其女友劉穎垒探,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怠李,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叛复,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扔仓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褐奥。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖翘簇,靈堂內(nèi)的尸體忽然破棺而出撬码,到底是詐尸還是另有隱情,我是刑警寧澤版保,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布呜笑,位于F島的核電站,受9級(jí)特大地震影響彻犁,放射性物質(zhì)發(fā)生泄漏叫胁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一汞幢、第九天 我趴在偏房一處隱蔽的房頂上張望驼鹅。 院中可真熱鬧,春花似錦森篷、人聲如沸输钩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽买乃。三九已至,卻和暖如春钓辆,著一層夾襖步出監(jiān)牢的瞬間剪验,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工前联, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留功戚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓蛀恩,卻偏偏與公主長(zhǎng)得像疫铜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子双谆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)庫入門 數(shù)據(jù)庫: 保存有組織的數(shù)據(jù)的容器(通常是一個(gè)文件或一組文件).數(shù)據(jù)庫軟件應(yīng)該稱為 DBMS(DataB...
    Mjericho閱讀 493評(píng)論 0 0
  • 第三課: 排序檢索數(shù)據(jù) distinct關(guān)鍵字:distinct 列名1壳咕,列名2,列名3DISTINCT 關(guān)鍵字會(huì)...
    VictorBXv閱讀 1,467評(píng)論 0 8
  • (一)幾個(gè)數(shù)據(jù)庫相關(guān)的概念 1.數(shù)據(jù)庫 數(shù)據(jù)庫: 保存有組織數(shù)據(jù)的容器顽馋。 數(shù)據(jù)的所有存儲(chǔ)谓厘、檢索、管理和處理實(shí)際上是...
    快樂的小飛熊閱讀 515評(píng)論 0 1
  • 轉(zhuǎn)載/王大師 我們國(guó)家花了三十多年時(shí)間寸谜,就走完了歐美發(fā)達(dá)國(guó)家要花三百年多才走完的路竟稳。我們經(jīng)歷了人類有史以來規(guī)模最龐...
    藍(lán)色玻璃心閱讀 125評(píng)論 0 0
  • 初來乍到,多多指教熊痴。喜歡寫作或文學(xué)的小可愛們交友嘛
    安琪吶閱讀 261評(píng)論 0 0