計(jì)算字段和數(shù)值處理函數(shù)

拼接字段

MySQL 的不同之處:多數(shù) DBMS 使用+或||來(lái)實(shí)現(xiàn)拼接蚕脏,MySQL 使用 Concat()函數(shù)來(lái)實(shí)現(xiàn)拉背。

拼接兩個(gè)列

將兩列拼接成一個(gè)展示形式:vend_name (vend_country)

mysql> SELECT CONCAT(vend_name, ' (', vend_country, ')') FROM vendors ORDER BY vend_name;
+--------------------------------------------+
| CONCAT(vend_name, ' (', vend_country, ')') |
+--------------------------------------------+
| ACME (USA)                                 |
| Anvils R Us (USA)                          |
| Furball Inc. (USA)                         |
| Jet Set (England)                          |
| Jouets Et Ours (France)                    |
| LT Supplies (USA)                          |
+--------------------------------------------+
刪除多余的空格 RTRIM
SELECT CONCAT(RTRIM(vend_name), ' (', vend_country, ')') FROM vendors ORDER BY vend_name;

顯然 MySQL 還支持LTRIMTRIM分別刪除左邊的空格和兩邊的空格开伏。

使用別名AS

簽名拼接兩列的結(jié)果可以看到,拼接后的列名是CONCAT(vend_name, ' (', vend_country, ')'),這顯然很不友好区宇,所以我們可以使用別名。

mysql> SELECT CONCAT(RTRIM(vend_name), ' (', RTRIM(vend_country), ')') AS vend_title FROM vendors ORDER BY vend_name;
+-------------------------+
| vend_title              |
+-------------------------+
| ACME (USA)              |
| Anvils R Us (USA)       |
| Furball Inc. (USA)      |
| Jet Set (England)       |
| Jouets Et Ours (France) |
| LT Supplies (USA)       |
+-------------------------+

執(zhí)行算術(shù)計(jì)算

執(zhí)行算術(shù)運(yùn)算并擴(kuò)充字段顯示:

mysql> SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;
+---------+----------+------------+----------------+
| prod_id | quantity | item_price | expanded_price |
+---------+----------+------------+----------------+
| ANV01   |       10 |       5.99 |          59.90 |
| ANV02   |        3 |       9.99 |          29.97 |
| TNT2    |        5 |      10.00 |          50.00 |
| FB      |        1 |      10.00 |          10.00 |
+---------+----------+------------+----------------+

MySQL 支持的加減乘除(+ - * 值戳、)算術(shù)運(yùn)算符议谷,并用括號(hào)區(qū)分優(yōu)先級(jí)

now()函數(shù)返回當(dāng)前日期和時(shí)間:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-06-30 16:33:47 |
+---------------------+
1 row in set (0.00 sec)

數(shù)據(jù)處理函數(shù)

函數(shù)我們前面已經(jīng)接觸了,比如 trim()堕虹,rtrim()卧晓,ltrim()

文本處理函數(shù)

upper()

mysql> SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
+----------------+------------------+
| vend_name      | vend_name_upcase |
+----------------+------------------+
| ACME           | ACME             |
| Anvils R Us    | ANVILS R US      |
| Furball Inc.   | FURBALL INC.     |
| Jet Set        | JET SET          |
| Jouets Et Ours | JOUETS ET OURS   |
| LT Supplies    | LT SUPPLIES      |
+----------------+------------------+

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

函數(shù) 說(shuō)明
left() 返回串左邊的字符
length() 返回串的長(zhǎng)度
locate() 找出串的一個(gè)子串
lower() 將串轉(zhuǎn)換為小寫(xiě)
ltrim() 去掉串左邊的空格
right() 返回串右邊的字符
rtrim() 去掉串右邊的空格
soundex() 返回串的 SOUNDEX 值
substring() 返回子串的字符
upper() 將串轉(zhuǎn)換成大寫(xiě)
日期和時(shí)間處理函數(shù)
函數(shù) 說(shuō)明
AddDate() 增加一個(gè)日期(天赴捞、周等)
AddTime() 增加一個(gè)時(shí)間(時(shí)逼裆、分等)
CurDate() 返回當(dāng)前日期
CurTime() 返回當(dāng)前時(shí)間
Date() 返回日期時(shí)間的日期部分
DateDiff() 計(jì)算兩個(gè)日期之差
Date_Add() 高度靈活的日期運(yùn)算函數(shù)
Date_Format() 返回一個(gè)格式化的日期或時(shí)間串
Day() 返回一個(gè)日期的天數(shù)部分
DatOfWeek() 對(duì)于一個(gè)日期,返回對(duì)應(yīng)的星期幾
Hour() 返回一個(gè)時(shí)間的小時(shí)部分
Minute() 返回一個(gè)日期的分鐘部分
Month() 返回一個(gè)日期的月份部分
Now() 返回當(dāng)前日期和時(shí)間
Second() 返回一個(gè)時(shí)間的秒部分
Time() 返回一個(gè)日期時(shí)間的時(shí)間部分
Year() 返回一個(gè)日期的年份部分

基本日期比較:

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

上面的匹配顯然不合理赦政,如果訂單日期精確到時(shí)間的話(huà)胜宇,就無(wú)法匹配上了。

SELECT cust_id, order_num FROM orders WHERE DATE(order_date) = '2005-09-01';

匹配一個(gè)時(shí)間段內(nèi)的數(shù)據(jù):

SELECT cust_id, order_num FROM orders WHERE DATE(order_date) BETWEEN '2005-09-01' and '2005-09-30';
優(yōu)化后
SELECT cust_id, order_num FROM orders WHERE YEAR(order_date) = 2005 and MONTH(order_date) = 9;
數(shù)值處理函數(shù)
函數(shù) 說(shuō)明
Abs() 返回一個(gè)數(shù)的絕對(duì)值
Cos() 返回一個(gè)角度的余弦
Exp() 返回一個(gè)數(shù)的指數(shù)值
Mod() 返回除操作的余數(shù)
Pi() 返回圓周率
Rand() 返回一個(gè)隨機(jī)數(shù)
Sin() 返回一個(gè)角度的正弦
Sqrt() 返回一個(gè)數(shù)的平方根
Tan() 返回一個(gè)角度的正切
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末恢着,一起剝皮案震驚了整個(gè)濱河市桐愉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌从诲,老刑警劉巖靡羡,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿眠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡荆烈,警方通過(guò)查閱死者的電腦和手機(jī)竟趾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)岔帽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人屎飘,你說(shuō)我怎么就攤上這事∏展海” “怎么了押桃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羡忘。 經(jīng)常有香客問(wèn)我卷雕,道長(zhǎng)掰烟,這世上最難降的妖魔是什么沐批? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮先馆,結(jié)果婚禮上煤墙,老公的妹妹穿的比我還像新娘宪拥。我一直安慰自己,他們只是感情好脚作,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布球涛。 她就那樣靜靜地躺著亿扁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪从祝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天稀蟋,我揣著相機(jī)與錄音退客,去河邊找鬼萌狂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛茫藏,可吹牛的內(nèi)容都是我干的霹琼。 我是一名探鬼主播枣申,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挟伙!你這毒婦竟也來(lái)了尖阔?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤介却,失蹤者是張志新(化名)和其女友劉穎齿坷,沒(méi)想到半個(gè)月后龟劲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仰禀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衷咽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡燕酷,死狀恐怖苗缩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酱讶,我是刑警寧澤泻肯,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布灶挟,位于F島的核電站焚挠,受9級(jí)特大地震影響漓骚,放射性物質(zhì)發(fā)生泄漏蝌蹂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一剃允、第九天 我趴在偏房一處隱蔽的房頂上張望斥废。 院中可真熱鬧给郊,春花似錦、人聲如沸统锤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)逾雄。三九已至,卻和暖如春鸦泳,著一層夾襖步出監(jiān)牢的瞬間辽故,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工掉弛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留殃饿,地道東北人乎芳。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓帖池,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親睡汹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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