SQL必知必會----第四版(一)

記錄自己學(xué)習(xí)這本書的過程
此篇文章包括檢索、排序檢索數(shù)據(jù)和過濾數(shù)據(jù)

通往其他文章的入口:
SQL必知必會----第四版(二)
SQL必知必會----第四版(三)
SQL必知必會----第四版(四)
SQL必知必會----第四版(五)
SQL必知必會----第四版(六)
SQL必知必會----第四版(七)

所有例子都基于product表
product表.png

一、檢索

檢索的關(guān)鍵為SELECT

  • 檢索表中一列數(shù)據(jù)
SELECT p_country 
FROM product;
檢索表中一列數(shù)據(jù).png

??多條SQL語句必須以;分隔呕诉。單條SQL語句有的需要加议街,有的不需要加。即使不一定需要,加上分號也肯定沒有壞處宙橱。
??SQL語句是不區(qū)分大小寫的搔啊,但是表名柬祠、列名和值可能有所不同。
??SQL語句可以寫成長長的一行负芋,也可以分寫在多行漫蛔,但是一定要注意空格,不要被省略旧蛾。

  • 檢索表中多列數(shù)據(jù)
SELECT p_id, p_name, p_country 
FROM product;
檢索表中多列數(shù)據(jù).png

??在選擇多個列時莽龟,一定要在列名之間加上逗號,但是最后一個列名后一不加锨天。

  • 檢索所有列
SELECT * 
FROM product;

??除非你確實需要表中的每一項毯盈,否則最好別使用*通配符,檢索不需要的列通常會降低檢索和應(yīng)用程序的性能病袄。如圖product.png搂赋,最上方赘阀。

  • 檢索不同的值
SELECT DISTINCT p_price 
FROM product;

??DISTINCT關(guān)鍵字用作于所有列,不僅僅是跟在其后的那一類脑奠。
檢索不同的值.png
  • 限制結(jié)果
  1. 返回不超過3行的數(shù)據(jù)
SELECT id, p_name
FROM product 
LIMIT 3;
返回不超過3行的數(shù)據(jù).png
  1. 檢索從第3行起的2條數(shù)據(jù)
SELECT id, p_name
FROM product 
LIMIT 2 OFFSET 3;
檢索從第3行起的2條數(shù)據(jù).png
  • 使用注釋
SELECT p_name 
--這是一條注釋
FROM product;

??--之后的文本就是注釋基公。

/*SELECT p_name
FROM product;*/

??從/*開始,到*/結(jié)束捺信,中間的任何內(nèi)容都是注釋酌媒。這種方式長用于給代碼加注釋。

二迄靠、排序檢索數(shù)據(jù)

  • 排序數(shù)據(jù)
SELECT id, p_country
FROM product
ORDER BY p_country;
排序數(shù)據(jù).png

??在指定一條ORDER BY子句時秒咨,應(yīng)該保證它是SELECT語句中最后一條子句。
??通常掌挚,ORDER BY子句中使用的列將是為顯示而選擇的列雨席。但是,實際上并不一定要這樣吠式,用非檢索的列排序數(shù)據(jù)是完全合法的陡厘。

  • 按多個列排序
SELECT p_id, p_name, p_country
FROM product
ORDER BY p_id, p_country;

??首先按p_id,然后按p_country排序特占。
按多個列排序.png
  • 按列位置排序
SELECT id, p_name, p_country
FROM product
ORDER BY 2, 3;

??這里排序指定的是選擇列的相對位置而不是列名糙置。首先按p_country,然后按p_price排序是目。
按列位置排序.png

??當(dāng)根據(jù)不出現(xiàn)在SELECT清單中的列進(jìn)行排序時谤饭,不能采用這項技術(shù)。但是懊纳,如果有必要揉抵,可以混合使用實際列和相對列位置。

  • 指定排序方向
    默認(rèn)排序為升序排列嗤疯,降序排列關(guān)鍵字為DESC冤今。
SELECT p_name, p_country, p_price 
FROM product 
ORDER BY p_price DESC;

??以p_price降序排列。
指定排序方向-1.png
SELECT p_id, p_name, p_price 
FROM product 
ORDER BY p_id DESC, p_price;

??以p_id降序茂缚、p_price升序排列戏罢。
指定排序方向-2.png

??DESC關(guān)鍵字只應(yīng)用到位于其前面的列名。
??如果想在多個列上進(jìn)行降序排列脚囊,必須對每一列指定DESC關(guān)鍵字帖汞。
??DESC是DESCENDING的縮寫,這兩個關(guān)鍵字都可以使用凑术。與DESC相對的是ASC(或ASCENDING)翩蘸,在升序排序時可以指定它。但實際上淮逊,ASC沒有多大用處催首,因為升序是默認(rèn)的扶踊。

三、過濾數(shù)據(jù)

  • 使用WHERE子句
SELECT p_name, p_count 
FROM product 
WHERE p_count = 5;

這條語句從product表中檢索兩列郎任,但不反回所有行秧耗,只返回p_count值為5的行。
WHERE-1.png

??數(shù)據(jù)也可以在應(yīng)用層過濾舶治。為此分井,SQL的SELECT語句為客戶端應(yīng)用檢索出超過實際所需的數(shù)據(jù),然后客戶端代碼對返回數(shù)據(jù)進(jìn)行循環(huán)霉猛,提取出需要的行尺锚。通常,這種做法極其不妥惜浅。優(yōu)化數(shù)據(jù)庫后可以更快速地對數(shù)據(jù)進(jìn)行過濾瘫辩。而讓客戶端應(yīng)用(或開發(fā)語言)處理數(shù)據(jù)庫的工作將會極大地影響應(yīng)用的性能,并且使所創(chuàng)建的應(yīng)用完全不具備可伸縮性坛悉。此外伐厌,如果在客戶端過濾數(shù)據(jù),服務(wù)器不得不通過網(wǎng)絡(luò)發(fā)送多余的數(shù)據(jù)裸影,這將導(dǎo)致網(wǎng)絡(luò)寬帶的浪費挣轨。
??在同時使用ORDER BY和WHERE子句時,應(yīng)該讓ORDER BY位于WHERE之后轩猩。

  • WHERE子句操作符
操作符 說明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的兩個值之間
IS NULL 為NULL值
SELECT p_name, p_price
FROM product
WHERE p_price < 5;

??列出所有p_price小與5的數(shù)據(jù)卷扮。
WHERE-2.png
SELECT p_name, p_price
FROM product
WHERE p_price <= 4.6;

??列出所有p_price小與等于4.6的數(shù)據(jù)。
WHERE-3.png
SELECT p_name, p_country
FROM product
--p_country p_country != 'CN'
WHERE p_country <> 'CN'; 

??列出所有p_country不等于CN的數(shù)據(jù)界轩。
WHERE-4.png
SELECT id, p_name
FROM product
WHERE id BETWEEN 2 AND 5;

??在使用BETWEEN時,必須指定兩個值衔瓮,所需范圍的低端紙和高端值浊猾。這兩個值必須使用AND關(guān)鍵字分隔。BETWEEN匹配范圍中所有的值热鞍,包括指定的開始值和結(jié)束值葫慎。
WHERE-5.png
SELECT p_name
FROM product
WHERE p_name IS NULL;

??列出所有p_name值為NULL的所有數(shù)據(jù)。
不好意思薇宠,這個沒圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偷办,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澄港,更是在濱河造成了極大的恐慌椒涯,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件回梧,死亡現(xiàn)場離奇詭異废岂,居然都是意外死亡祖搓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門湖苞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯欧,“玉大人,你說我怎么就攤上這事财骨「渥鳎” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵隆箩,是天一觀的道長该贾。 經(jīng)常有香客問我,道長摘仅,這世上最難降的妖魔是什么靶庙? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮娃属,結(jié)果婚禮上六荒,老公的妹妹穿的比我還像新娘。我一直安慰自己矾端,他們只是感情好掏击,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秩铆,像睡著了一般砚亭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上殴玛,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天捅膘,我揣著相機(jī)與錄音,去河邊找鬼滚粟。 笑死寻仗,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凡壤。 我是一名探鬼主播署尤,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亚侠!你這毒婦竟也來了曹体?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤硝烂,失蹤者是張志新(化名)和其女友劉穎箕别,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡究孕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年啥酱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厨诸。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡镶殷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出微酬,到底是詐尸還是另有隱情绘趋,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布颗管,位于F島的核電站陷遮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏垦江。R本人自食惡果不足惜帽馋,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望比吭。 院中可真熱鬧绽族,春花似錦、人聲如沸衩藤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赏表。三九已至检诗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓢剿,已是汗流浹背逢慌。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留间狂,地道東北人攻泼。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像前标,于是被迫代替她去往敵國和親坠韩。 傳聞我的和親對象是個殘疾皇子距潘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

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

  • 表 存儲在表中的數(shù)據(jù)是同一種類型的數(shù)據(jù)或清單炼列。 數(shù)據(jù)庫中的表有為一個名字來標(biāo)識自己。 表具有一些特性音比,這些特性定義...
    蛐蛐囍閱讀 1,305評論 0 7
  • 第三課: 排序檢索數(shù)據(jù) distinct關(guān)鍵字:distinct 列名1俭尖,列名2,列名3DISTINCT 關(guān)鍵字會...
    VictorBXv閱讀 1,468評論 0 8
  • 數(shù)據(jù)庫入門 數(shù)據(jù)庫: 保存有組織的數(shù)據(jù)的容器(通常是一個文件或一組文件).數(shù)據(jù)庫軟件應(yīng)該稱為 DBMS(DataB...
    Mjericho閱讀 495評論 0 0
  • 小時候,我是一個安靜的女孩子稽犁,卻對這個世界充滿好奇焰望,為此也曾拆散不少物件,只想看看他們里面都是什么耙押ァ熊赖? 長大了,依...
    簡一_閱讀 511評論 0 1
  • 富蘭克林從小家境一般虑椎,家里十幾個孩子震鹉,他是老小,學(xué)習(xí)非常優(yōu)異捆姜,但由于家庭情況被迫轉(zhuǎn)向職業(yè)中專传趾。畢業(yè)以后跟著自己家里...
    孤獨的藏書人閱讀 305評論 0 0