檢索出不存在相同值的列表可以加上DISTINCT關鍵字
SELECT DISTINCT vend_id FROM products;
可以使用LIMIT子句來限制返回結果的數量
SELECT prod_name FROM products LIMIT 5;
LIMIT子句同樣擁有offset的功能,就是設定從第幾條數據開始獲得
SELECT prod_name FROM products LIMIT 5,5;
代表從第五個數據開始的五條數據
雖然LIMIT具有offset的功能,但是Mysql還是提供了OFFSET子句
SELECT prod_name FROM products LIMIT 5 OFFSET 5;
mysql的索引值是從0開始的
可以使用ORDER BY子句來給數據進行排序,該子句取一個或多個列的名字,據此對輸出進行排序
SELECT prod_name FORM products ORDER BY prod_name;
該子句可是用非檢索的列排序數據
ORDER BY子句可以選擇使用多個列排序,所選列之間使用逗號隔開。
ORDER BY 子句要仿造WHERE子句之後
ORDER BY子句可以指定排序的方向(升序和降序),默認是升序,如果想變為降序需要在ORDER BY 子句的最後加上DESC
DESC關鍵字只應用到直接位於其前面的列名,可以使用如下的查詢方式
SELECT prod_name,prod_price,prod_id FROM products ORDER BY prod_name DESC,prod_name;
WHERE 子句的操作符號中判斷相等使用=判斷不相等使用<>符號,和編程語言當中略顯不同
通過使用BETWEEN關鍵字來進行范圍值檢查
SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
使用IS NULL來進行空值檢查
SELECT prod_name FROM products WHERE prod_price IS NULL
該語句返回沒有價格的產品數據
mysql中存在幾個邏輯操作符,分別是以下幾個
AND OR IN NOT
SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_price<=10; 取交集
SELECT prod_name,prod_price FROM products WHERE vend_id=1002 OR vend_id=1003;取並集
SELECT prod_name,prod_price FROM products WHERE vend_id IN(1002,1003) ORDER BY prod_name; 取交集
SELECT prod_name,prod_price FROM products WHERE vend_id NOT IN(1002,1003) ORDER BY prod_name; 取並集的補集
可以使用圓括號來標記計算次序%通配符表示任何字符出現任意次序,使用LIKE操作符
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ‘jet%’;
該查詢語句會查詢所有prod_name字段以jet開頭的行
_通配符匹配單個任意字符
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ‘_ ton anvil’;
該查詢語句查詢任何以ton anvil 為結尾並且在其之前只有一個字符的所有行
不要過度使用通配符,如果其他操作能達到相同的目的,應該使用其他操作符。
在確實需要通配符時,除非絕對有必要,否則不要把它們用在搜索模式的開始處,這樣最慢。