SQL語(yǔ)句范例

  1. 檢索多個(gè)列(SELECT)
SELECT prod_id, prod_name, prod_price
FROM Products;
  1. 檢索某列厅贪,并排序(ORDER BY)
  • ORDER BY語(yǔ)句必須是SELECT語(yǔ)句的最后一句羞福,否則會(huì)報(bào)錯(cuò)幻碱。也可以用沒有選擇的列來(lái)排序答渔。
SELECT prod_id
FROM Products
ORDER BY prod_name;
  1. 檢索多個(gè)列关带,按多個(gè)列進(jìn)行排序(ORDER BY)
  • 首先會(huì)按照價(jià)格進(jìn)行排序,對(duì)于價(jià)格一樣的行沼撕,再按照名稱排序宋雏。
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;
  1. 指定排序方向(ORDER BY DESC)
  • 先對(duì)prod_price按照降序,再對(duì)prod_name進(jìn)行升序(默認(rèn)為升序)务豺。
SELECT prod_id, prod_name, prod_price
FROM Products
ORDER BY prod_price DESC, prod_name;
  1. 檢索多個(gè)列磨总,并使用WHERE過(guò)濾(WHERE)
  • < >或者!= 為不等于
  • BETWEEN 為在指定的兩個(gè)數(shù)值之間
  • IS NULL 為NULL值
  • 單引號(hào)用來(lái)限制字符串,如果將值和字符串類型的列進(jìn)行比較笼沥,則需要限定引號(hào)蚪燕。用來(lái)和數(shù)值進(jìn)行比較的值則不需要引號(hào)。
  • 可以使用 AND奔浅、OR馆纳、NOT
SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10;
SELECT prod_name
FROM Products
WHERE prod_price IS NULL;
SELECT prod_name, prod_price
FROM Products
WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01') AND prod_price >= 10;
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01' , 'BRS01');
  1. 模糊查詢(LIKE)
  • '%'是一種通配符,%表示任何字符出現(xiàn)任意次數(shù)(包括匹配0個(gè)字符)
  • ‘_’總是匹配一個(gè)字符乘凸,不能多也不能少
  • ‘[ ]’可以用來(lái)指定一個(gè)字符集
//找出所有以詞Fish起頭的產(chǎn)品
//若改為L(zhǎng)IKE ‘%Fish%’ 則表示匹配包含F(xiàn)ish
SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';
//匹配以F起頭厕诡,以y結(jié)尾的所有產(chǎn)品
//有些DBMS會(huì)用空格來(lái)填補(bǔ)字段的內(nèi)容累榜,所以結(jié)尾就會(huì)是空格营勤,將會(huì)匹配不出來(lái)灵嫌,解決辦法:LIKE ‘F%y%’
SELECT  prod_name
FROM Products
WHERE prod_name LIKE 'F%y';
//找出所有以J或者M(jìn)起頭的聯(lián)系人
SELECT  cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
  1. 計(jì)算字段
  • 連接字符串是,不同DBMS不一樣葛作,有的是+寿羞,有的是||,MySQL是CONCAT
  • RTRIM可以去掉字段的空格
  • 可以對(duì)字段使用*等操作符赂蠢,進(jìn)行數(shù)學(xué)運(yùn)算
    SELECT CONCAT(vend_name, '(', vend_country, ')')
    FROM Vendors
    ORDER BY vend_name;
  1. 函數(shù)
  • UPPER將文本轉(zhuǎn)換為大寫绪穆,LTRIM去掉串左邊的空格,RTRIM去掉串右邊的空格
  • 有一些日期相關(guān)的函數(shù)
  • ABS虱岂、COS玖院、EXP等數(shù)值函數(shù)
  1. 匯總數(shù)據(jù)(AVG、COUNT第岖、MAX难菌、MIN、SUM)
  • AVG忽略列值為NULL的行
  • COUNT(*)對(duì)表中行的數(shù)目進(jìn)行計(jì)數(shù)蔑滓,不管表列中包含的是空值(NULL)還是非空值郊酒。使用COUNT(column)對(duì)特定列中具有值的行進(jìn)行計(jì)數(shù),忽略NULL值
  • MAX键袱、MIN燎窘、SUM
  • 如果指定列名,則DISTINCT只能用于COUNT()蹄咖。DISTINCT不能用于COUNT(*)褐健。
SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';
//加了DISTINCT之后,平均值只考慮各個(gè)不同的價(jià)格
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';
SELECT SUM(item_price * quantity) AS total price
FROM OrderItems
WHERE order_num = 20005;
  1. 分組數(shù)據(jù)(GROUP BY澜汤、HAVING)
  • WHERE 用來(lái)過(guò)濾行铝量,HAVING用來(lái)過(guò)濾分組。WHERE在數(shù)據(jù)分組前進(jìn)行過(guò)濾银亲,HAVING在數(shù)據(jù)分組之后進(jìn)行過(guò)濾慢叨,所以WHERE排除的行不包括在分組中,這可能會(huì)改變計(jì)算值务蝠,從而影響HAVING子句中基于這些值過(guò)濾掉的分組
//先用WHERE子句過(guò)濾所有prod_price至少為4的行拍谐,然后按照vend_id分組數(shù)據(jù),HAVING子句過(guò)濾計(jì)數(shù)為2或2以上的分組馏段。
SELECT vend_id, COUNT(*) AS num_prods
FROM Products
WHERE prod_price >= 4
GROUP BY vend_id
HAVING COUNT(*) >= 2;
  1. 使用子查詢
  • 作為子查詢的SELECT語(yǔ)句只能查詢單個(gè)列轩拨。企圖檢索多個(gè)列將會(huì)返回錯(cuò)誤
SELECT cust_id
FROM Orders
WHERE order_num IN (SELCT order_num
                                      FROM OrderItems
                                      WHERE prod_id = 'RGAN01');
SELECT cust_name,
cust_state,
(SELECT COUNT(*) 
                FROM Orders
                WHERE Orders.cust_id = Customers.cust_id) AS
orders
FROM Customers
ORDER BY cust_name;
  1. 聯(lián)結(jié)表(JOIN)
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id;
SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOIN Products
  ON Vendors.vend_id = Products.vend_id; 
SELECT cust_name, cust_contact
FROM Customers
WHERE cust_id IN (SELECT cust_id
    FROM Orders
    WHERE order_num IN (SELECT order_num
        FROM OrderItems
        WHERE prod_id = 'RGAN01'))

也可以使用下面的查詢,得到同樣的結(jié)果
SELECT cust_name, cust_contact
FROM Customers, Orders, OrderItems
WHERE Customers.cust_id = Orders.cust_id
               AND OrderItems.order_num = Orders.order_num
               AND prod_id = 'RGAN01';
SELECT c1.cust_id, c1.cust_name, c1.cust_contact
FROM Customers AS c1, Customers AS c2
WHERE c1.cust_name = c2.cust_name
  AND c2.cust_contact = 'Jim Jones';
SELECT Customers.cust_id, Orders.order_num
FROM Customers LEFT OUTER JOIN Orders
  ON Customers.cust_id = Orders.cust_id;
//檢索所有客戶以及每個(gè)客戶所下的訂單數(shù)
SELECT Customers.cust_id, COUNT(Orders.order_num) AS num_ord
FROM Customers INNER JOIN Orders
  ON Customers.cust_id = Orders.cust_id
GROUP BY Customers.cust_id;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末院喜,一起剝皮案震驚了整個(gè)濱河市亡蓉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喷舀,老刑警劉巖砍濒,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淋肾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡爸邢,警方通過(guò)查閱死者的電腦和手機(jī)樊卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)杠河,“玉大人碌尔,你說(shuō)我怎么就攤上這事∪校” “怎么了唾戚?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)待诅。 經(jīng)常有香客問(wèn)我颈走,道長(zhǎng),這世上最難降的妖魔是什么咱士? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任立由,我火速辦了婚禮,結(jié)果婚禮上序厉,老公的妹妹穿的比我還像新娘锐膜。我一直安慰自己,他們只是感情好弛房,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布道盏。 她就那樣靜靜地躺著,像睡著了一般文捶。 火紅的嫁衣襯著肌膚如雪荷逞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天粹排,我揣著相機(jī)與錄音种远,去河邊找鬼。 笑死顽耳,一個(gè)胖子當(dāng)著我的面吹牛坠敷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播射富,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼膝迎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了胰耗?” 一聲冷哼從身側(cè)響起限次,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柴灯,沒想到半個(gè)月后卖漫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體费尽,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年懊亡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了依啰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乎串。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡店枣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叹誉,到底是詐尸還是另有隱情鸯两,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布长豁,位于F島的核電站钧唐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏匠襟。R本人自食惡果不足惜钝侠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酸舍。 院中可真熱鬧帅韧,春花似錦、人聲如沸啃勉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)淮阐。三九已至叮阅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泣特,已是汗流浹背浩姥。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留状您,地道東北人及刻。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像竞阐,于是被迫代替她去往敵國(guó)和親缴饭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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

  • 這一篇最主要是記錄下命令骆莹,方便以后查找 使用Mysql 創(chuàng)建數(shù)據(jù)庫(kù) create database mysql_t...
    Treehl閱讀 574評(píng)論 0 0
  • (一)幾個(gè)數(shù)據(jù)庫(kù)相關(guān)的概念 1.數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù): 保存有組織數(shù)據(jù)的容器颗搂。 數(shù)據(jù)的所有存儲(chǔ)、檢索幕垦、管理和處理實(shí)際上是...
    快樂的小飛熊閱讀 519評(píng)論 0 1
  • SQL與MySQL簡(jiǎn)介 數(shù)據(jù)庫(kù)基礎(chǔ) 從SQL的角度來(lái)看丢氢,數(shù)據(jù)庫(kù)就是一個(gè)以某種有組織的方式存儲(chǔ)的數(shù)據(jù)集合傅联。我們可以采...
    heming閱讀 3,068評(píng)論 1 8
  • 第六十一首。蘇有朋《背包》岛抄。 先來(lái)望文生義好了别惦,我很喜歡背包,把各種要用的東西都塞進(jìn)包里夫椭,背到肩上掸掸,空出來(lái)的手,還...
    大大H小小y閱讀 824評(píng)論 0 11
  • 有一天 我們相遇在某個(gè)小鎮(zhèn) 我們各自經(jīng)歷了很多故事 但我們并不講述 我們只望著遠(yuǎn)方 不喝當(dāng)年的酒 只喝現(xiàn)在的茶 ...
    君寒閱讀 135評(píng)論 0 0