MYSQL必知必會(huì)筆記

SELECT語(yǔ)句

使用select語(yǔ)句,必須至少有兩條信息急膀,想選擇什么沮协,從哪選擇。

單個(gè)語(yǔ)句結(jié)束必須加上分號(hào)卓嫂,SQL語(yǔ)句不區(qū)分大小寫慷暂。

檢索單個(gè)列

select pro_name from products

檢索多個(gè)列

在多個(gè)列名并列,使用逗號(hào)分隔開來(lái)

select pro_id,pro_name,pro_price from products

檢索所有列

使用通配符'*'來(lái)標(biāo)識(shí)所有的列

select * from products

檢索不同的行

使用select檢索某一列時(shí),會(huì)將該列中所有行的數(shù)據(jù)都檢索出來(lái)行瑞,如下圖所示

Distinct.png

如何檢索行值不同的列奸腺,使用DISTINCT關(guān)鍵字,只返回行值不同的列

select distinct vend_id from products

DISTINCT關(guān)鍵字默認(rèn)作用在所有的列上血久,而不僅僅是前置列突照。

限制結(jié)果

LIMIT關(guān)鍵字可以限制返回的行數(shù)

select prod_name from products limit 5,5;

選取從第五行開始的五行。MySQL行計(jì)數(shù)從0開始 氧吐,從行0開始選擇讹蘑,則省略0

排序檢索數(shù)據(jù)

排序數(shù)據(jù)

如果希望選擇出來(lái)的數(shù)據(jù)根據(jù)某個(gè)列的值進(jìn)行排序,可以使用ORDER BY關(guān)鍵字

select prod_name from products order by prod_name;

按多個(gè)列排序數(shù)據(jù)

與select選擇多列一樣筑舅,只需用逗號(hào)將列名分隔開來(lái)即可

select prod_name from products order by prod_price,prod_name

指定排序方向

order by關(guān)鍵字的默認(rèn)排序方向時(shí)增序座慰,如果想要降序使用DESC關(guān)鍵字

select pro_name from products order by prod_prices desc

DESC關(guān)鍵字默認(rèn)只作用于關(guān)鍵字前面的那個(gè)列,其與DISTINCT關(guān)鍵字不同翠拣,如果想要多個(gè)列都適用降序版仔,則在每個(gè)列之后都增加DESC關(guān)鍵字。

ORDER BY關(guān)鍵字與LIMIT搭配使用误墓,可以選擇指定的幾行蛮粮,比如說(shuō)選擇價(jià)格最低的商品的名字

select prod_name from products order by prod_price desc limit 1;

LIMIT語(yǔ)句應(yīng)該位于ORDER BY語(yǔ)句之后

過(guò)濾語(yǔ)句

WHERE過(guò)濾語(yǔ)句

使用select語(yǔ)句時(shí)可以用where設(shè)置搜索條件

where.png

用BETWEEN關(guān)鍵字的時(shí)候,需要范圍的開始值和結(jié)束值优烧,比如

select prod_name from products where prod_price between 5 and 10

在表中蝉揍,當(dāng)一個(gè)列不包含值,稱其為空值NULL畦娄,與字段包含0、空字符串或僅僅包含空格不同

WHERE語(yǔ)句也可以用來(lái)直接判空

select prod_name from products where prod_price is NULL

ORDER BY語(yǔ)句可以與WHERE語(yǔ)句搭配弊仪,置于WHERE語(yǔ)句之后

AND和OR操作符可以用來(lái)增加WHERE語(yǔ)句的多樣性

select prod_name from products where prod_id=1 or prod_id=12
select pro_name from products where vend_id=1003 and prod_price<=10;

在計(jì)算的時(shí)候熙卡,AND的優(yōu)先級(jí)高于OR的優(yōu)先級(jí),根據(jù)實(shí)際情況励饵,對(duì)AND或者OR并列的子句進(jìn)行加括號(hào)處理

IN關(guān)鍵字

WHERE語(yǔ)句用來(lái)指定要匹配值的清單關(guān)鍵字驳癌,功能與OR相當(dāng)

對(duì)于IN的合法取值由逗號(hào)分隔開全部在圓括號(hào)中

select prod_name from products where vend_id in (1002,1003) order by prod_name

為什么要使用IN操作符:

  • IN操作符的比OR的執(zhí)行速度更快
  • IN的最大優(yōu)點(diǎn)是可以包含其他的SELECT語(yǔ)句

NOT關(guān)鍵字

WHERE語(yǔ)句中的NOT操作符有且只有一個(gè)功能就是否定它之后所跟的任何條件

select prod_name from products where vend_id not in (1002,1003) order by prod_name

LIKE通配符

使用LIKE關(guān)鍵字以及‘%’符號(hào)可以對(duì)字符串內(nèi)容進(jìn)行模糊匹配,‘%’可以匹配多個(gè)甚至0個(gè)字符役听,但是不能匹配NULL內(nèi)容颓鲜;‘_’只能匹配單個(gè)字符

select prod_id from products where prod_name like '%anvil%'
select prod_id from products where prod_name like '_nvil'

正則表達(dá)式匹配

正則表達(dá)式意義為只要列值中出現(xiàn)我想要匹配的字符,即可進(jìn)行返回

基本匹配

select prod_id from products where prod_name regexp '1000'

‘.’是正則表達(dá)式中的一個(gè)特殊字符典予,可以表示任意內(nèi)容

OR匹配

可以使用OR關(guān)鍵字進(jìn)行或的匹配

select prod_id from products where prod_name regexp '1000|2000'

[ ] 匹配多個(gè)字符

select prod_id from products where prod_name regexp '[123] ton'

這里的[123]就是上述關(guān)鍵字OR表示的1|2|3的意思甜滨,如果是一個(gè)范圍,可以用[1-5]這樣的形式來(lái)表示瘤袖,不僅僅是數(shù)字衣摩,字母也可以[a-z]

特殊字符匹配

如果想要匹配‘.’這樣的特殊字符如何匹配呢,上面也提到‘.’可以匹配任何字符

使用’\\‘進(jìn)行轉(zhuǎn)義

select prod_id from products where prod_name regexp '\\.'

拼接字段和別名

選擇列時(shí)可能會(huì)希望將幾個(gè)列的值并列在一起顯示捂敌,并且指定為一個(gè)新的名字艾扮。

拼接的關(guān)鍵字是Concat函數(shù)既琴,別名的關(guān)鍵字是AS函數(shù)

select concat(vend_name,' (',vend_country,' )') as vend_title from products order by vend_name
concat.png

計(jì)算字段

MySQL還可以對(duì)檢索出來(lái)的數(shù)據(jù)進(jìn)行數(shù)學(xué)計(jì)算,包括+泡嘴、*甫恩、-、/

select prod_id,quantity,item_price,quantity*item_price as expanded_price from products where order_num=20005
計(jì)算字段.png

聚集函數(shù)

聚集函數(shù).png
select avg(prod_price) as avg_price from products;
select count(*) as row_sum from products;//count(*)對(duì)表中所有的行進(jìn)行計(jì)數(shù)酌予,不管表中包含的是空值(NULL)還是非空值
select count(prod_id) as id_num from products;//只對(duì)列中具有值的行進(jìn)行計(jì)數(shù)磺箕,忽略NULL值
select max(prod_price) as max_price from products;
select min(prod_price) as min_price from products;
select sum(prod_price) as sum_price from products;

以上五個(gè)聚集函數(shù)默認(rèn)都是對(duì)所有的行進(jìn)行計(jì)算,如果使用DISTINCT關(guān)鍵字在列名之前霎终,默認(rèn)只會(huì)計(jì)算不同的值

select avg(distinct prod_price) as avg_price from products;//只計(jì)算價(jià)格不同值的平均值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滞磺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子莱褒,更是在濱河造成了極大的恐慌击困,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件广凸,死亡現(xiàn)場(chǎng)離奇詭異阅茶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)谅海,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門脸哀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人扭吁,你說(shuō)我怎么就攤上這事撞蜂。” “怎么了侥袜?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蝌诡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我枫吧,道長(zhǎng)浦旱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任九杂,我火速辦了婚禮颁湖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘例隆。我一直安慰自己甥捺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布裳擎。 她就那樣靜靜地躺著涎永,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上羡微,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天谷饿,我揣著相機(jī)與錄音,去河邊找鬼妈倔。 笑死博投,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盯蝴。 我是一名探鬼主播毅哗,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼捧挺!你這毒婦竟也來(lái)了虑绵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤闽烙,失蹤者是張志新(化名)和其女友劉穎翅睛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黑竞,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捕发,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了很魂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扎酷。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖遏匆,靈堂內(nèi)的尸體忽然破棺而出法挨,到底是詐尸還是另有隱情,我是刑警寧澤幅聘,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布坷剧,位于F島的核電站,受9級(jí)特大地震影響喊暖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撕瞧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一陵叽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丛版,春花似錦巩掺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春独令,著一層夾襖步出監(jiān)牢的瞬間端朵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工燃箭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冲呢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓招狸,卻偏偏與公主長(zhǎng)得像敬拓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子裙戏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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