MySQL從刪庫到跑路(5):where之再向虎山行

where之再向虎山行

 “哈哈哈哈,看你這幾天沒來上課,我還以爲你去拜什麼高人爲師了?原來就是這個爛番薯、臭鳥蛋的小賣部大爺學裝逼,你逗我玩呢?哈哈哈哈哈”

 “哈哈哈哈,一個老屌絲,一個小屌絲,死一邊去吧!”

 望着班長、學習委員、紀檢委員離去的背影,李有爲握緊拳頭的手,微微有些顫抖。

 他很想跳起來給三人幾耳屎,可是對方各個都是又高又帥又有錢的人物,裝逼實力已經快要到達逼王級別,他這個裝逼水平一級的渣渣只能在心中詛咒他們,生娃兒莫得屁眼兒,日*日到鋼板。

 大爺反倒波瀾不驚、寵辱皆忘,淡然笑道:“”勝敗兵家事不期,包羞忍辱是男兒。,當年韓信都受過胯下之辱,你今天這點事兒那就是毛毛雨,那都不叫事兒!我們還是開始今天的學習吧!一個星期後,就是學校一年一度的裝逼考試大賽,我保證讓你揚眉吐氣,一鳴驚人。”

 “真的嗎?”李有爲的目中突然閃出金光,“我真的可以嗎?”

 “請把疑問句變成肯定句,男人要自信!”

 "come baby,讓暴風雨來得更猛烈洗吧!"李有爲瘋狂咆哮着,心中重新燃起了熊熊烈火。

 “開課前先考驗一下你的學習水平,現在我這裏有一個需求,我要你查詢出生地A省A市,B省B市,C省C市,D省D市,E省E市,身高170以上,顏值220以上,情感狀態(is_single)是單身的妹子的名字的姓名(name),身高(height)、年齡(age)、體重(weight),出生地(birthpalce),現居地(address)等相關信息。”

 聽了大爺的題目,李有爲當即會心一笑
在這裏插入圖片描述
 開機,啓動heidisql,編寫SQL代碼,整個過程行雲流水,穩得一批,不到一分鐘,優美而整潔的SQL代碼便呈現在大爺眼前。

SELECT
	name,
	height,
	age,
	weight,
	looks,
	birthplace
FROM
	human_base_info
WHERE
	(
		birthplace = 'A省A市'
		OR birthplace = 'B省B市'
		OR birthplace = 'C省C市'
		OR birthplace = 'D省D市'
		OR birthplace = 'E省E市'
	)
AND sex = 'F'
AND height >= 170
AND looks >= 220

 看了李有爲的SQL代碼,大爺的臉上在次流露出無比讚許的神色,但是這種讚美的神色轉瞬即逝,大爺突然話鋒一轉道:“如果我多加幾個省市,你是不是一直要or下去呢?有沒有一個更簡單、有沒的方法呢?”

三花聚頂,五氣朝元,赤橙紅綠青藍紫七種不同的精光不斷從大爺的體內澎涌而出,李有爲看着大驚失聲,“難道大爺就是站在裝逼大陸頂端的那個最強者,遇神阻將神消滅,遇仙攔將仙誅殺,人送外號“逼王之王“的裝逼界至尊,逼神阿六敦
在這裏插入圖片描述
 大爺看着李有爲,如是說道。
 “聽你大爺給你講一講in 和 not 的用法”

IN

IN 操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。
條件範圍可以看做是一個在用括號"()"包起來的集合,集合裏的元素用逗號分隔。
例如這樣('A省A市','B省B市','C省C市','D省D市','E省E市')
出生地只要滿足集合裏的任意一個條件都可以匹配成功。

因此,原來的SQL可以修改成這樣

SELECT
	NAME,
	height,
	age,
	weight,
	looks,
	birthplace
FROM
	human_base_info
WHERE
	birthplace IN (
		'A省A市',
		'B省B市',
		'C省C市',
		'D省D市',
		'E省E市'
	)
AND sex = 'F'
AND height >= 170
AND looks >= 220

 李有爲一看果然比原來,簡單、優雅、明瞭了許多。這時候大爺突然又把話鋒一轉,“如果我要看,出生地不是A省A市,B省B市,C省C市,D省D市,E省E市,身高170以上,顏值220以上,情感狀態(is_single)是單身的妹子的信息呢。”

 李有爲聽完後,心中隨即涌起一股裝逼的渴望,但是他竭力剋制住自己的情緒,在大爺面前表現出不卑不亢的樣子。
在這裏插入圖片描述
以前他會這樣寫

SELECT
	NAME,
	height,
	age,
	weight,
	looks,
	birthplace
FROM
	human_base_info
WHERE
	birthplace != 'A省A市'
AND birthplace != 'B省B市'
AND birthplace != 'C省C市'
AND birthplace != 'D省D市'
AND birthplace != 'E省E市'
AND sex = 'F'
AND height >= 170
AND looks >= 220

但是聽了大爺的話後,他會這樣寫

SELECT
	NAME,
	height,
	age,
	weight,
	looks,
	birthplace
FROM
	human_base_info
WHERE
	birthplace NOT IN (
		'A省A市',
		'B省B市',
		'C省C市',
		'D省D市',
		'E省E市'
	)
AND sex = 'F'
AND height >= 170
AND looks >= 220

在這裏插入圖片描述
 大爺看了之後,但當場實名錶揚了李有爲一番,胳膊和手共同組成了“666”的形狀。

 “小夥子不錯,竟然能夠提前猜出 not的用法。

NOT

not在where語句中只有一個作用,否定它後面所更的任何條件。

IN ('A省A市','B省B市','C省C市','D省D市','E省E市'),表示匹配在集合中的任意一個數據
NOT IN ('A省A市','B省B市','C省C市','D省D市','E省E市'),則表示匹配不是集合中的任意一個數據

 其實李有爲只是用了聯繫的觀點看問題,既然 SQL的相關關鍵詞都是英語單詞,那麼英語單詞的意思放在固定的場景中也是特定的咯。比如說IN NOT NULL等等

 今天聽了大爺講的話後,他對空值和非空值的過濾也掌握。最開始大爺講這裏的時候他開了小差,但是經過今天這一堂課後,他已經熟練於心了。
 大爺說,human_base_info表裏面有一個人的age是空的,要迅速定位這個人的信息只需要

SELECT * FROM human_base_info WHERE age IS NULL

在這裏插入圖片描述

選擇非空值,也可以用其他方式實現,這裏只是舉例

SELECT * FROM human_base_info WHERE age IS NOT NULL

 做完這些,這通操作,李有爲整個人不禁有些飄飄然了,但是他一想到自己現在是忍辱負重、臥薪藏膽,於是他連忙告誡自己。
在這裏插入圖片描述
一週後就是學校一年一度的裝逼考試大會,被人冷眼嘲諷的李有爲在學習了《MySQL從刪庫到跑路》之後,會在學校裏掀起怎樣的風雲?他的人生又會掀開怎樣的篇章?

預知後事如何,請聽下回分解!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章