上篇文章講述了檢索數據最基本的方法,這篇將會講到對檢索結果的一些處理
檢索不同的值
一般情況下,SELECT語句會返回所有匹配的行,但不是所有情況下都需要返回所有的結果。比如檢索Products表中所有產品供應商的ID:
SELECT vend_id FROM Products;```
將會輸出以下結果:

SELECT語句返回了全部的9行結果,但是實際上不同的vend_id只有3個,如果我們只需要看到不同的值要怎么做呢?
方法是使用DISTINCT關鍵字,這個關鍵字會指示數據庫只返回不同的值。
輸入:
SELECT DISTINCT vend_id FROM Products;```
結果如下:
可以看到檢索結果只有不同的值,這一操作也叫去重。
需要注意的是,DISTINCT關鍵字作用于所有的列,不僅僅是跟在其后的那一列。
限制結果
SELECT語句會返回所有匹配的行,但是有些時候我們只需要返回特定的行數,這時可以使用LIMIT子句來限制輸出的結果。例如:
SELECT prod_name FROM Products LIMIT 5;```
輸出結果:

在這個操作的基礎上,我們還可以指定從哪兒開始以及檢索的行數,比如輸入:
SELECT prod_name FROM Products LIMIT 5 OFFSET 5;```
輸出結果:
LIMIT 5 OFFSET 5 指示數據庫返回從第五行起的五行數據。因為Products表中只有9行數據,所以這條語句只返回了4行數據。
需要注意的是:
- 第一個被檢索的是第一行,所以LIMIT 0 OFFSET 1 會檢索第二行。
- MySQL 支持簡化版的LIMIT x OFFSET x語句,可以簡化成LIMIT x,x,比如LIMIT 4 OFFSET 3 可以簡化成LIMIT3,4。
使用注釋
像其他編程語言一樣,SQL也提供了注釋的語法。
注釋的功能十分強大,例如在文件的開頭可以使用注釋說明一些程序的描述或者項目的信息,或者是測試一個長SQL語句的一部分,就可以注釋掉其他的部分。
注釋的有多種形式,首先來看行內注釋。
SELECT prod_name --這是一條注釋
FROM Products;
行內注釋使用--
(兩個連字符)嵌在行內,--
之后的文本就是注釋。
也可以使用#
進行行內注釋,比如
#這是一條注釋
SELECT prod_name
FROM Products;
在一行的開始使用#
,這一行都會被作為注釋。
還有一種多行注釋的形式,注釋可以在腳本的任何位置停止和開始。
/* SELECT prod_name, vend_id
FROM Products; */
注釋從/*
開始,到*/
結束,這兩個語句之間的內容都是注釋,這種方式通常是用來給代碼增加注釋。