MySQL 基礎(chǔ)練習(xí)

說明

最近看了 Sams Teach Yourself 系列的《SQL必知必會》躲惰。里面的內(nèi)容很基礎(chǔ)周霉,使用SQL上手簡單翰苫。我將其中典型的題目及答案總結(jié)如下,包含數(shù)據(jù)庫所有的基礎(chǔ)操作温技,其中所使用的數(shù)據(jù)庫樣例表見文章末尾。

如果大家有什么意見和建議扭粱,歡迎留言或私信指出~

練習(xí)

(Products)檢索列vend_id的所有值和「不同值」

SELECT DISTINCT vend_id FROM Products;

檢索列prod_name的前5行數(shù)據(jù)舵鳞、第6到10行數(shù)據(jù)

SELECT prod_name FROM Products LIMIT 5;
SELECT prod_name FROM Products LIMIT 5 OFFSET 5;

檢索列prod_id, prod_price, prod_name,并按后兩個(gè)升序排列(位置)

SELECT  prod_id, prod_price, prod_name FROM Products ORDER BY prod_price, prod_name;

檢索列prod_price琢蛤,并按prod_price降序排列

SELECT  prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC;

檢索列prod_name, prod_price蜓堕,同時(shí)prod_price為3.49、小于10博其、在5至10之間套才、空值

SELECT prod_name, prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10;

檢索列prod_name, prod_price,其中vend_id為DLL01或BRS01(兩種方式)

 SELECT  prod_name , prod_price  FROM Products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';

檢索列prod_id, prod_name慕淡,其中prod_name以詞Fish起頭霜旧、包含"bean bag"、以F開頭y結(jié)尾

 SELECT  prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%';
 SELECT  prod_id, prod_name FROM Products WHERE prod_name LIKE '%bean bag%';
 SELECT  prod_id, prod_name FROM Products WHERE prod_name LIKE 'F%y';

Vendors表包含列vend_name和vend_country儡率,用括號將vend_country括起來挂据,組合兩列返回(使用別名vend_title)

SELECT Concat(vend_name, '(', vend_country, ')') AS vend_title FROM Vendors ORDER BY vend_name;

在OrderItems中,檢索order_num為20008的所有物品(+ 匯總物品的價(jià)格為expanded_price = quantity * item_price)

SELECT *, quantity * item_price AS expanded_price FROM OrderItems WHERE order_num = 20008;

在Vendors中儿普,將vend_name顯示為小寫和大寫(vend_name_upcase)

SELECT vend_name, UPPER(vend_name) AS vend_upcase FROM Vendors ORDER BY vend_name;

在Orders中崎逃,輸出order_num,條件是order_date在2012年

SELECT order_num FROM Orders WHERE YEAR(order_date) = 2012;

在Products中眉孩,將prod_price的平均值作為avg_price輸出(6.8233)(+ vend_id為DLL01的平均值)

SELECT AVG(prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01';

在Customers中个绍,計(jì)算顧客的總數(shù)作為num_cust輸出(+ cust_email列)

SELECT COUNT(*) AS num_cast FROM Customers;

在Products中勒葱,返回prod_price的最大值,作為max_price輸出(11.99)

SELECT MAX(prod_price) AS max_price FROM Products;

在OrderItems中巴柿,計(jì)算order_num為20005的quantity的總和凛虽,作為items_ordered輸出

SELECT SUM(quantity) AS items_ordered FROM OrderItems WHERE order_num = 20005;

在Products中,列出vend_id及每個(gè)出現(xiàn)的次數(shù)(num_prods)

SELECT vend_id, COUNT(*) AS num_prods FROM Products GROUP BY vend_id;

在Orders中广恢,按照cust_id分組凯旋,列出cust_id及其行數(shù)(orders),打印出行數(shù)>=2的

SELECT cust_id, COUNT(*) AS orders FROM Orders GROUP BY cust_id HAVING COUNT(*) >= 2;

在Products中钉迷,對vend_id分組至非,找出prod_price>=4并且行數(shù)>=2的vend_id,并打印對應(yīng)行數(shù)(num_prods)

SELECT vend_id, COUNT(*) AS num_prods FROM Products WHERE prod_price >= 4 GROUP BY vend_id HAVING COUNT(*) >= 2;

在OrderItems中糠聪,選取prod_id為RGAN01的列order_num荒椭,并將結(jié)果作為order_num的范圍選取條件,在Orders中選取cust_id

SELECT cust_id FROM Orders WHERE order_num IN (SELECT order_num FROM OrderItems WHERE prod_id = 'RGAN01');

在Vendors和Products中舰蟆,選取列vend_name, prod_name, prod_price(vend_id相同趣惠,等值聯(lián)結(jié))(+使用內(nèi)聯(lián)結(jié))

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;

在Customers中,插入一行數(shù)據(jù)身害,cust_id=10006, cust_name=yano(+并刪除)

INSERT INTO Customers (cust_id, cust_name) VALUES(10006, 'yano');
 DELETE from Customers where cust_name = 'yano';

將表Customers的內(nèi)容全部復(fù)制到CustCopy表中

CREATE TABLE CustCopy AS  SELECT * FROM Customers;

在Customers中信卡,更新cust_id為1000000005的用戶,將cust_email改為'yano_nankai'

UPDATE Customers SET cust_email = 'yano_nankai' WHERE cust_id = '1000000005';

創(chuàng)建表yano题造,id為整數(shù)非空傍菇,name為10個(gè)字符非空(默認(rèn)為hello),并更新表結(jié)構(gòu)(增加和刪除phone列界赔,20個(gè)字符非空)丢习,將id增加約束為主鍵,刪除表yano

CREATE TABLE YANO( id INTEGER NOT NULL, name CHAR(10) NOT NULL DEFAULT 'HELLO');
ALTER TABLE YANO ADD phone CHAR(20);
ALTER TABLE YANO DROP COLUMN phone;

查看Orders的索引

SHOW INDEX FROM Orders;

樣例表

http://www.forta.com/books/0672327120/mysql_scripts.zip

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淮悼,一起剝皮案震驚了整個(gè)濱河市咐低,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌袜腥,老刑警劉巖见擦,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異羹令,居然都是意外死亡鲤屡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門福侈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酒来,“玉大人,你說我怎么就攤上這事肪凛⊙吆海” “怎么了辽社?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長翘鸭。 經(jīng)常有香客問我滴铅,道長,這世上最難降的妖魔是什么就乓? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任汉匙,我火速辦了婚禮,結(jié)果婚禮上档址,老公的妹妹穿的比我還像新娘盹兢。我一直安慰自己邻梆,他們只是感情好守伸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浦妄,像睡著了一般尼摹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剂娄,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天蠢涝,我揣著相機(jī)與錄音,去河邊找鬼阅懦。 笑死和二,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耳胎。 我是一名探鬼主播惯吕,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怕午!你這毒婦竟也來了废登?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤郁惜,失蹤者是張志新(化名)和其女友劉穎堡距,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兆蕉,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羽戒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虎韵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片半醉。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖劝术,靈堂內(nèi)的尸體忽然破棺而出缩多,到底是詐尸還是另有隱情呆奕,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布衬吆,位于F島的核電站梁钾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逊抡。R本人自食惡果不足惜姆泻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冒嫡。 院中可真熱鬧拇勃,春花似錦、人聲如沸孝凌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蟀架。三九已至瓣赂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間片拍,已是汗流浹背煌集。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捌省,地道東北人苫纤。 一個(gè)月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像纲缓,于是被迫代替她去往敵國和親卷拘。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

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

  • 1.表中的任何列都可以作為主鍵色徘, 只要它滿足以下條件:任意兩行都不具有相同的主鍵值恭金;每一行都必須具有一個(gè)主鍵值( ...
    Cherryjs閱讀 656評論 0 0
  • 于是又到了梧桐絮飄滿校園的四月,又到了梧桐色相簿的季節(jié)褂策,我們迎來了實(shí)習(xí)生招聘横腿。 “范老濕從不寫代碼”,“范老濕從不...
    Lance_Van閱讀 731評論 0 1
  • 清風(fēng)涼爽斤寂,是時(shí)候給今天好種子澆水施肥了耿焊,感恩所有的遇見,感恩一切遍搞,我知道我正在運(yùn)用種子法則罗侯,我知道我的身語意種下的...
    李鮮花閱讀 245評論 0 0
  • 2017.06.07No.67 (0645-0705用時(shí)20分鐘字?jǐn)?shù)700) 真正的開始加大閱讀量也就是在近一兩年...
    何不可閱讀 168評論 0 2
  • 每天過著同樣的生活會覺得無趣钩杰,但利用一點(diǎn)點(diǎn)小時(shí)光做點(diǎn)喜歡的纫塌、有趣的事,這一天都會美好起來 可愛的藍(lán)胖子 桃子和阿貍...
    暖樹聽風(fēng)閱讀 318評論 1 3