查詢所有字段 SELECT * FROM tb_name;
查詢指定字段 SELECT id,name FROM tb_name;
查詢單個字段 SELECT id FROM tb_name;
查詢多個字段 SELECT id,name FROM tb_name;
查詢指定記錄
SELECT * FROM tb_name WHERE id=100001;
SELECT * FROM tb_name WHERE name='哈哈';
SELECT * FROM tb_name WHERE id<1000089;
IN關(guān)鍵字的查詢
SELECT * FROM tb_name WHERE id IN (1,2,3,4) ORDER BY id DESC;
SELECT * FROM tb_name WHERE id NOT IN (1,2,3,4) ORDER BY id DESC;
BETWEN AND 的范圍查詢
SELECT * FROM tb_name WHERE price BETWEN 2 AND 10;
SELECT * FROM tb_name WHERE price NOT BETWEN 2 AND 10;
LIKE的字符匹配查詢
SELECT * FROM tb_name WHERE name LIKE 'b%';
SELECT * FROM tb_name WHERE name LIKE '%g%';
SELECT * FROM tb_name WHERE name LIKE 'b%g';
SELECT * FROM tb_name WHERE name LIKE 'b_';
查詢空值
SELECT * FROM tb_name WHERE loc IS NULL;
SELECT * FROM tb_name WHERE loc IS NOT NULL;
帶AND的多條件查詢語句
SELECT * FROM tb_name WHERE price>10 AND name LIKE '%菜';
SELECT * FROM tb_name WHERE price>10 AND name LIKE '%菜' AND num>0;
帶OR的多條件查詢
SELECT * FROM tb_name WHERE id IN(1,3,6) OR name LIKE '%菜';
查詢結(jié)果不重復
SELECT DISTINCT s_id FROM tb_name;
DISTINCT不能部分使用,換句話說,DISTINCT關(guān)鍵字應用所有列而不僅是它后面的第一個指定列。例如,查詢3個字段a,b,c,如果不同記錄的這3個字段的組合值都不同,則所有記錄都會被查詢出來。DESC可以部分使用。
對查詢結(jié)果排序(默認ASC)
單列排序SELECT * FRON tb_name ORDER BY id;
多列排序SELECT * FROM tb_name ORDER BY id,name;
多列排序相當一第一列有相同的列值,每個列值分組各自按照第二列進行排序,沒有相同則第二列不在排序
指定排序方向SELECT * FROM tb_name ORDER BY id DESC;
多列各自不同方向排序SELECT * FROM tb_name ORDER BY id DESC,name ASC;
如果多列都進行降序,則DESC放最后即可。
LIMIT關(guān)鍵字
前四行記錄 SELECT * FROM tb_name LIMIT 4;
從第5行開始,行數(shù)長度為3SELECT * FROM tb_name LIMIT 4,3;
****分組查詢****
①創(chuàng)建分組
GROUP BY關(guān)鍵字通常和集合函數(shù)一起使用,如MAX(),MIN(),COUNT(),SUM(),AVG()。例如,要返回每個水果供應商提供的水果種類,這是就要在分組過程中用到COUNT()函數(shù)。
SELECT id,COUNT(*) AS total FROM tb_name GROUP BY id;
如果將每個水果供應商的水果名稱顯示出來,sql語句如下:
SELECT s_id, GROUP_CONCAT(f_name) AS Names FROM tb_name GROUP BY s_id;
②使用HAVING過濾分組
HAVING和WHERE都是過濾,但是HAVING實在數(shù)據(jù)分組之后進行過濾來選擇分組,二WHERE在分組之前用來選擇記錄。而且WHERE排除的記錄不再包括在分組中。
SELECT s_id, GROUP_CONCAT(f_name) AS Names FROM tb_name GROUP BY s_id HAVING COUNT(f_name)>1;
分組后并顯示水果種類大于1的分組信息。
③在GROUP BY子句中使用WITH ROLLUP,作用是在所有查詢出的分組記錄之后增加一條記錄,該記錄計算查詢出的所有記錄的總和,即統(tǒng)計記錄數(shù)量。
SELECT s_id ,COUNT(*) AS total FROM tb_name GROUP BY s_id WITH ROLLUP;
④多字段分組,分級分組
SELECT * FROM tb_name GROUP BY s_id,f_name;
查詢記錄先按照s_id進行分組,再對f_name字段按不同的取值進行分組.
⑤GROUP BY和ORDER BY一起使用
SELECT o_num,SUM(quantity*item_price) AS orderTotal FROM tb_name GROUP BY o_num HAVING SUM(quantity*item_price)>=100 ORDER BY orderTotal;