MySQL資料庫學習02: SELECT語句

來源:互聯網
上載者:User

標籤:

聲明:本篇文章大多數內容出自《MySQL必知必會》,僅供學習參考,勿作他用!

 

第4章 檢索資料

 

4.1 SELECT語句

    SELECT子句用於檢索資料庫中的表資料。它幾乎是MySQL中最常用的語句。我們一定要掌握好。為了能夠檢索表資料,必須至少給出兩條資訊 —— 想選擇什麼(表欄位,即列),以及從什麼地方選擇(哪張表)。

 

4.2 檢索單個列

輸入: select prod_name from products;

分析:

    上述語句利用SELECT語句從products表中檢索一個名為prod_name的列。選擇什麼 —— prod_name列;從什麼地方選 —— products表。

形式: SELECT 列名 FROM 表名;  (列應該是表中的列)

輸出:   

 

注釋:

    1 你可能得到不同的順序。這很正常。如果沒有排序的話,順序是隨機的。只要資料正確即可。

    2 每一條SQL語句都應該以分號(英文)結尾。一 為了規範,二 如果是命令列則必須如此。

    3 無論何種程式設計語言,文法中的符號都是英文下的(半形IME)。以後不再強調。

    4 大小寫說明。MySQL中的SQL語句不區分大小寫。但是,為了規範,一般將關鍵字大寫,其它標識符小寫。如 SELECT prod_name FROM products;

        我為了節省書寫博文的時間,便一律採用小寫了,請見諒。

4.3 檢索多個列

    要想從一個表中檢索多個列,使用相同的SELECT語句。惟一的不同即SELECT關鍵字後跟多個列名,且這些列名之間要用逗號(英文的)隔開。

輸入:  select prod_id, prod_name, prod_price from products;

分析: 沒啥分析的。

輸出:

 

4.4 檢索所有列

格式:    SELECT * FROM 表名; 或者SELECT 列名1, 列名2... FROM 表名;

輸入:

    select * from products;

    或者

    select prod_id, vend_id, prod_name, prod_price, prod_desc from products;

分析:

    第一種方式採用了萬用字元*代表了所有列。第二種方式將所有列的列出了。

    如果不是真的需要,不要為了方便使用*查詢。這樣會檢索到不需要的列,從而增加時間。

輸出:

方式一

方式二

 

4.5 檢所不同的行

     正如所見,SELECT語句預設會返回所有匹配的行。而如果我們不想每個值每次都出現,怎麼辦?加入你想得出products表中的供應商的id

輸入: select vend_id from products;

輸出:

 

    我們發現,相同的id多次出現。如果我們想解決這一問題,那麼就需要DISTINCT關鍵字。意思: 獨特的,不同的。

格式: SELECT DISTINCT 列名 FROM 表名;

輸入:

    select distinct vend_id from products;

分析:

    如果使用DISTINCT關鍵字,它必須直接放在列名前面。

    如果DISTINCT後面接多個列名,則無效。

輸出:

 

4.6 限制結果

    SELECT語句返回所有匹配的行,有時可能是指定表中所有的行。為了返回第一行或前幾行,可使用LIMIT關鍵字。

格式: SELECT 單列名或多個列名 FROM 表名 LIMIT 顯示的結果行數;

輸入:    select prod_name from products limit 5;

分析:    LIMIT 5指示MySQL返回的結果行數不得多於5條。

輸出:

如果想要顯示下一個5行,可以指定要檢索的開始行和行數。如下所示:

格式:    SELECT 單列名或多個列名 FROM 表名 LIMIT 開始的索引(第一行的索引為0,第二行的索引為1...), 顯示的結果行數,

輸入: mysql> select prod_name from products limit 0,5;

分析:

    limit A, B。從行5,即索引為0,結果的第1行開始擷取5行, 限制顯示條數不得多於B,

輸出:

 

注釋

    1 行0: 如果是LIMIT A, B的格式。那麼檢索出來的第一行為行0,即索引為0,而非1. 如LIMIT 1, 1檢索出第二行而非第一行。

    2 MySQL5的LIMIT文法:    LIMIT A, B的格式很容易令人混淆,所以MySQL5.0支援LIMIT的另一種文法。LIMIT 結果顯示條數 OFFSET 索引(行N);

       OFFSET是位移量的意思,即索引,行N。

輸入: select prod_name from products limit 5 offset 3;

分析:

    limit 5 offst 3; 限制顯示結果條數為5,索引為3,從行3即第四行開始擷取。

輸出:

 

4.7 使用完全限定名

   迄今為止使用的SQL例子只通過列名引用咧。也可能會使用完全限定名字來引用列(同時使用表名和列名)。請看下面例子:

格式: 完整列名 —— 列名.表名

輸入:    select distinct products.vend_id from products;

分析:    結果與select distinct vend_id from products; 一致。

輸出:

 

表名也可以完全限定。

格式: 資料庫名.表名

輸入:     select distinct vend_id from mysqlcrashcourse.products;

輸出:

 

有一些情形下需要使用完全限定名,這在之後的博文中會介紹。現在,我們需要注意這個文法,以便日後的學習與使用。

 

4.8 小結

    本章學習了如何使用SELECT語句檢索表的單列、多列資料以及所有列。下一篇講講解如何排序檢索出來的資料。

 

 

 菊子曰:專業的部落格營銷工具

MySQL資料庫學習02: SELECT語句

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.