MySql之SQL語(yǔ)句學(xué)習(xí)筆記(五)

文章摘要:
1缸托、AVG 函數(shù)
2左敌、COUNT()
3、FIRST() 函數(shù)
4俐镐、LAST() 函數(shù)
5矫限、MAX() 函數(shù)
6、MIN() 函數(shù)
7佩抹、SUM() 函數(shù)
8叼风、GROUP BY 語(yǔ)句
9、HAVING 子句
10棍苹、UCASE() 函數(shù)
11无宿、LCASE() 函數(shù)
12、MID() 函數(shù)
13枢里、LEN() 函數(shù)
14孽鸡、ROUND() 函數(shù)
15蹂午、NOW() 函數(shù)
16、FORMAT() 函數(shù)


一彬碱、SQL中函數(shù)類型

  • 1豆胸、面向數(shù)據(jù)庫(kù)列(column)
  • 2、面向數(shù)據(jù)庫(kù)列中的值巷疼。

ps:demo使用到的數(shù)據(jù)庫(kù)信息

mysql> select * from orders;
+------+---------+-------------+------+------------+
| Id_O | Company | OrderNumber | Id_p | OrderPrice |
+------+---------+-------------+------+------------+
|    1 | IBM     | 3532        | 1    |         34 |
|    2 | Baidu   | 2356        | NULL |         62 |
|    3 | Ali     | 6534        | 4    |         56 |
|    4 | Apple   | 4698        | 2    |         78 |
|    5 | Tencent | 6953        | 5    |         24 |
|    6 | Xiaomi  | 7890        | 4    |         10 |
|    7 | LeEco   | 2876        | 9    |         18 |
|    8 | JD      | 3847        | 6    |         47 |
|    9 | Apple   | 8762        | 2    |         90 |
|   10 | Xiaomi  | 9328        | 4    |         52 |
|   11 | Xiaomi  | 1098        | 4    |         27 |
+------+---------+-------------+------+------------+
11 rows in set (0.00 sec)

二晚胡、面向數(shù)據(jù)庫(kù)列的函數(shù)。

1皮迟、AVG 函數(shù)

定義和用法
AVG 函數(shù)返回?cái)?shù)值列的平均值搬泥。NULL 值不包括在計(jì)算中。

  • 語(yǔ)法
SELECT AVG(column_name) FROM table_name
  • 案例
-- 查詢訂單中的報(bào)價(jià)均價(jià)
mysql> select avg(OrderPrice) from Orders;
+-----------------+
| avg(OrderPrice) |
+-----------------+
|         45.2727 |
+-----------------+
1 row in set (0.00 sec)

-- 查看訂單中伏尼,公司報(bào)價(jià)的均價(jià)
mysql> select Company,avg(OrderPrice) from Orders group by Company;
+---------+-----------------+
| Company | avg(OrderPrice) |
+---------+-----------------+
| Ali     |         56.0000 |
| Apple   |         84.0000 |
| Baidu   |         62.0000 |
| IBM     |         34.0000 |
| JD      |         47.0000 |
| LeEco   |         18.0000 |
| Tencent |         24.0000 |
| Xiaomi  |         29.6667 |
+---------+-----------------+
8 rows in set (0.00 sec)

mysql> 

2忿檩、COUNT()

COUNT() 函數(shù)返回匹配指定條件的行數(shù)。

  • 語(yǔ)法
-- 1爆阶、COUNT(column_name) 函數(shù)返回指定列的值的數(shù)目(NULL 不計(jì)入):
SELECT COUNT(column_name) FROM table_name

-- 2燥透、COUNT(*) 函數(shù)返回表中的記錄數(shù):
SELECT COUNT(*) FROM table_name

-- 3、COUNT(DISTINCT column_name) 函數(shù)返回指定列的不同值的數(shù)目:
SELECT COUNT(DISTINCT column_name) FROM table_name

注釋:COUNT(DISTINCT) 適用于 ORACLE 和 Microsoft SQL Server辨图,但是無(wú)法用于 Microsoft Access班套。

  • 案例:
mysql> select count(*) from orders;
+----------+
| count(*) |
+----------+
|       11 |
+----------+
1 row in set (0.00 sec)

mysql> select count(Id_p) from orders;
+-------------+
| count(Id_p) |
+-------------+
|          10 |
+-------------+
1 row in set (0.00 sec)

mysql> select count(distinct Company) from orders;
+-------------------------+
| count(distinct Company) |
+-------------------------+
|                       8 |
+-------------------------+
1 row in set (0.00 sec)

mysql> 

3、FIRST() 函數(shù)

FIRST() 函數(shù)返回指定的字段中第一個(gè)記錄的值故河。
提示:可使用 ORDER BY 語(yǔ)句對(duì)記錄進(jìn)行排序吱韭。

  • SQL FIRST() 語(yǔ)法
SELECT FIRST(column_name) FROM table_name
  • 備注:MySql不支持此函數(shù),可配合排序函數(shù)以及l(fā)imit函數(shù)實(shí)現(xiàn)類似功能鱼的。

4理盆、LAST() 函數(shù)

LAST() 函數(shù)返回指定的字段中最后一個(gè)記錄的值。
提示:可使用 ORDER BY 語(yǔ)句對(duì)記錄進(jìn)行排序凑阶。

  • SQL LAST() 語(yǔ)法
SELECT LAST(column_name) FROM table_name
  • 備注:MySql不支持此函數(shù)猿规,可配合排序函數(shù)以及l(fā)imit函數(shù)實(shí)現(xiàn)類似功能。

5宙橱、MAX() 函數(shù)

MAX 函數(shù)返回一列中的最大值姨俩。NULL 值不包括在計(jì)算中。

  • SQL MAX() 語(yǔ)法
SELECT MAX(column_name) FROM table_name

注釋:MIN 和 MAX 也可用于文本列师郑,以獲得按字母順序排列的最高或最低值环葵。

  • 案例:得到最高的報(bào)價(jià)
mysql> select max(OrderPrice) from orders;
+-----------------+
| max(OrderPrice) |
+-----------------+
|              90 |
+-----------------+
1 row in set (0.00 sec)

6、MIN() 函數(shù)

MIN 函數(shù)返回一列中的最小值宝冕。NULL 值不包括在計(jì)算中张遭。

  • SQL MIN() 語(yǔ)法:
SELECT MIN(column_name) FROM table_name

注釋:MIN 和 MAX 也可用于文本列,以獲得按字母順序排列的最高或最低值猬仁。

  • 案例:得到最低的報(bào)價(jià)
mysql> select min(OrderPrice) from orders;
+-----------------+
| min(OrderPrice) |
+-----------------+
|              10 |
+-----------------+
1 row in set (0.00 sec)

7帝璧、SUM() 函數(shù)

SUM 函數(shù)返回?cái)?shù)值列的總數(shù)(總額)。

  • SQL SUM() 語(yǔ)法
SELECT SUM(column_name) FROM table_name
  • 案例:得到訂單總金額
mysql> select sum(OrderPrice) from orders;
+-----------------+
| sum(OrderPrice) |
+-----------------+
|             498 |
+-----------------+
1 row in set (0.00 sec)

8湿刽、GROUP BY 語(yǔ)句

合計(jì)函數(shù) (比如 SUM) 常常需要添加 GROUP BY 語(yǔ)句的烁。

GROUP BY 語(yǔ)句用于結(jié)合合計(jì)函數(shù),根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組诈闺。

  • SQL GROUP BY 語(yǔ)法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
  • 案例:從訂單中渴庆,得到下訂單的公司
mysql> select company from orders group by company;
+---------+
| company |
+---------+
| Ali     |
| Apple   |
| Baidu   |
| IBM     |
| JD      |
| LeEco   |
| Tencent |
| Xiaomi  |
+---------+
8 rows in set (0.00 sec)

9、HAVING 子句

在 SQL 中增加 HAVING 子句原因是雅镊,WHERE 關(guān)鍵字無(wú)法與合計(jì)函數(shù)一起使用襟雷。

  • SQL HAVING 語(yǔ)法:
SELECT column_name, aggregate_function(column_name) 
FROM table_name 
WHERE column_name operator value 
GROUP BY column_name 
HAVING aggregate_function(column_name) operator value
  • 案例:得到下單大于1次的公司:
mysql> select company from orders group by company having count(company)>1;
+---------+
| company |
+---------+
| Apple   |
| Xiaomi  |
+---------+
2 rows in set (0.00 sec)

三、面向數(shù)據(jù)庫(kù)列的函數(shù)仁烹。

1耸弄、UCASE() 函數(shù)

UCASE 函數(shù)把字段的值轉(zhuǎn)換為大寫(xiě)。

  • SQL UCASE() 語(yǔ)法:
SELECT UCASE(column_name) FROM table_name
  • 案例:得到下單公司的大寫(xiě)名稱
mysql> select distinct ucase(company) from orders;
+----------------+
| ucase(company) |
+----------------+
| IBM            |
| BAIDU          |
| ALI            |
| APPLE          |
| TENCENT        |
| XIAOMI         |
| LEECO          |
| JD             |
+----------------+
8 rows in set (0.00 sec)

2卓缰、LCASE() 函數(shù)

LCASE 函數(shù)把字段的值轉(zhuǎn)換為小寫(xiě)计呈。

  • SQL LCASE() 語(yǔ)法
SELECT LCASE(column_name) FROM table_name
  • 案例:得到下單公司的小寫(xiě)名稱
mysql> select distinct lcase(company) from orders;
+----------------+
| lcase(company) |
+----------------+
| ibm            |
| baidu          |
| ali            |
| apple          |
| tencent        |
| xiaomi         |
| leeco          |
| jd             |
+----------------+
8 rows in set (0.01 sec)

3、MID() 函數(shù)

MID 函數(shù)用于從文本字段中提取字符征唬。

  • SQL MID() 語(yǔ)法:
SELECT MID(column_name,start[,length]) FROM table_name
參數(shù) 描述
column_name 必需捌显。要提取字符的字段。
start 必需总寒。規(guī)定開(kāi)始位置(起始值是 1)扶歪。
length 可選。要返回的字符數(shù)摄闸。如果省略善镰,則 MID() 函數(shù)返回剩余文本。
  • 案例:獲得訂單公司的簡(jiǎn)稱(取三個(gè)字母)
mysql> SELECT MID(City,1,3) as SmallCity FROM Persons;
+-----------+
| SmallCity |
+-----------+
| Lon       |
| New       |
| Bei       |
| Lon       |
| Bei       |
| NULL      |
+-----------+
6 rows in set (0.00 sec)

4贪薪、LEN() 函數(shù)

LEN 函數(shù)返回文本字段中值的長(zhǎng)度媳禁。

  • SQL LEN() 語(yǔ)法
SELECT LEN(column_name) FROM table_name

備注:MySql中,函數(shù)為:length画切。

  • 案例:獲得訂單公司名稱長(zhǎng)度竣稽。
mysql> select length(Company) from orders;
+-----------------+
| length(Company) |
+-----------------+
|               3 |
|               5 |
|               3 |
|               5 |
|               7 |
|               6 |
|               5 |
|               2 |
|               5 |
|               6 |
|               6 |
+-----------------+
11 rows in set (0.00 sec)

5、ROUND() 函數(shù)

ROUND 函數(shù)用于把數(shù)值字段舍入為指定的小數(shù)位數(shù)霍弹。

  • SQL ROUND() 語(yǔ)法
SELECT ROUND(column_name,decimals) FROM table_name
參數(shù) 描述
column_name 必需毫别。要舍入的字段。
decimals 必需典格。規(guī)定要返回的小數(shù)位數(shù)岛宦。

6、NOW() 函數(shù)

NOW 函數(shù)返回當(dāng)前的日期和時(shí)間。
提示:如果您在使用 Sql Server 數(shù)據(jù)庫(kù)真仲,請(qǐng)使用 getdate() 函數(shù)來(lái)獲得當(dāng)前的日期時(shí)間庶弃。

  • SQL NOW() 語(yǔ)法
SELECT NOW() FROM table_name
  • 案例:
mysql> select now() from orders limit 1;
+---------------------+
| now()               |
+---------------------+
| 2017-07-06 19:51:18 |
+---------------------+
1 row in set (0.00 sec)

7拙吉、FORMAT() 函數(shù)

FORMAT 函數(shù)用于對(duì)字段的顯示進(jìn)行格式化院究。

  • SQL FORMAT() 語(yǔ)法:
SELECT FORMAT(column_name,format) FROM table_name
參數(shù) 描述
column_name 必需仪吧。要格式化的字段咒循。
format 必需扶踊。規(guī)定格式裙盾。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末实胸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子番官,更是在濱河造成了極大的恐慌庐完,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徘熔,死亡現(xiàn)場(chǎng)離奇詭異门躯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)酷师,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)生音,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人窒升,你說(shuō)我怎么就攤上這事缀遍。” “怎么了饱须?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵域醇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蓉媳,道長(zhǎng)譬挚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任酪呻,我火速辦了婚禮减宣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玩荠。我一直安慰自己漆腌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布阶冈。 她就那樣靜靜地躺著闷尿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪女坑。 梳的紋絲不亂的頭發(fā)上填具,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音匆骗,去河邊找鬼劳景。 笑死誉简,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盟广。 我是一名探鬼主播描融,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼衡蚂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起骏庸,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤毛甲,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后具被,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體玻募,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年一姿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了七咧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叮叹,死狀恐怖艾栋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛉顽,我是刑警寧澤蝗砾,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站携冤,受9級(jí)特大地震影響悼粮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜曾棕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一扣猫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翘地,春花似錦申尤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至臭杰,卻和暖如春粤咪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渴杆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工寥枝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宪塔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓囊拜,卻偏偏與公主長(zhǎng)得像某筐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冠跷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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