共計 2698 個字符,預計需要花費 7 分鐘才能閱讀完成。
from 數據表名 // 指定數據表
where primary_constraint // 查詢時需要滿足的條件,行必須滿足的條件
group by grouping_columns // 如何對結果進行分組
order by sorting_cloumns // 如何對結果進行排序
having secondary_constraint // 查詢時滿足的第二條件
limit count
單表查詢是指從一張表中查詢所需要的數據。所有查詢操作都比較簡單。
1. 查詢所有字段
查詢所有字段是指查詢表中所有字段的數據。這種方式可以將表中所有字段的數據都查詢出來。在 MySQL 中可以使用“*”代表所有的列,即可查出所有的字段,
語法格式如下:
SELECT * FROM 表名;
create database test; #創建庫
use test; #進入庫
create table info (id int not null,name char(6),score decimal(5,2),age int(4)); #創建表
插入測試數據
insert into info (id,name,score,age)values(1,’san’,88,33);
insert into info (id,name,score,age)values(2,’lisi’,48,31);
insert into info (id,name,score,age)values(3,’wwu’,68,27);
insert into info (id,name,score,age)values(4,’pw’,98,25);
insert into info (id,name,score,age)values(5,’wlk’,19,37);
insert into info (id,name,score,age)values(3,’lihua’,58,23);
SELECT * FROM info;
單表查詢是指從一張表中查詢所需要的數據。所有查詢操作都比較簡單
查詢指定字段可以使用下面的語法格式:
SELECT 字段名 FROM 表名;
SELECT name FROM info;
查詢結果:
如果要從很多記錄中查詢出指定的記錄,那么就需要一個查詢的條件。設定查詢條件應用的是 WHERE 子句。通過它可以實現很多復雜的條件查詢。在使用 WHERE 子句時,需要使用一些比較運算符來確定查詢的條件。
SELECT * FROM info WHERE name = ‘lisi’ ;
查詢結果:
IN 關鍵字可以判斷某個字段的值是否在于指定的集合中。如果字段的值在集合中,則滿足查詢條件,該記錄將被查詢出來;如果不在集合中,則不滿足查詢條件。
其語法格式如下:
SELECT * FROM 表名 WHERE 條件 [NOT] IN(元素 1, 元素 2,…, 元素 n);
SELECT * FROM info WHERE name in (‘lisi’,’pw’) ;
查詢結果:
SELECT * FROM info WHERE name not in (‘lisi’,’kk’) ;
查詢結果:
BETWEEN AND 關鍵字可以判斷某個字段的值是否在指定的范圍內。如果字段的值在指定范圍內,則滿足查詢條件,該記錄將被查詢出來。如果不在指定范圍內,則不滿足查詢條件。
其語法如下:
SELECT * FROM 表名 WHERE 條件 [NOT] BETWEEN 取值 1 AND 取值 2;
SELECT * FROM info WHERE age BETWEEN 25 AND 35;
查詢結果:
友情提醒:邊緣值包括在內,25 和 35 都符合條件
6. 帶 LIKE 的字符匹配查詢
LIKE 屬于較常用的比較運算符,通過它可以實現模糊查詢。
它有兩種通配符:“%”和下劃線“_”;
SELECT * FROM info WHERE name LIKE ‘%w%’ ;
查詢結果:
IS NULL 關鍵字可以用來判斷字段的值是否為空值(NULL)。如果字段的值是空值,則滿足查詢條件,該記錄將被查詢出來。如果字段的值不是空值,則不滿足查詢條件。
其語法格式樣如下:
IS [NOT] NULL
SELECT * FROM info WHERE age is not NULL;
查詢結果:
AND 關鍵字可以用來聯合多個條件進行查詢。使用 AND 關鍵字時,只有同時滿足所有查詢條件的記錄會被查詢出來。如果不滿足這些查詢條件的其中一個,這樣的記錄將被排除掉。
AND 關鍵字的語法格式如下:
select * from 數據表名 where 條件 1 and 條件 2 […AND 條件表達式 n];
SELECT * FROM info WHERE age =33 and name =’san’;
查詢結果:
OR 關鍵字也可以用來聯合多個條件進行查詢,但是與 AND 關鍵字不同,OR 關鍵字只要滿足查詢條件中的一個,那么此記錄就會被查詢出來;如果不滿足這些查詢條件中的任何一個,這樣的記錄將被排除掉。
OR 關鍵字的語法格式如下:
select * from 數據表名 where 條件 1 OR 條件 2 […OR 條件表達式 n];
SELECT * FROM info WHERE age =23 or name =’san’;
查詢結果:
使用 DISTINCT 關鍵字可以去除查詢結果中的重復記錄
語法格式如下:
select distinct 字段名 from 表名;
select distinct score from info;
查詢結果:
去重前:
使用 ORDER BY 可以對查詢的結果進行升序(ASC)和降序(DESC)排列,在默認情況下,ORDER BY 按升序輸出結果。如果要按降序排列可以使用 DESC 來實現。
語法格式如下:
ORDER BY 字段名 [ASC|DESC];
select * from info ORDER BY score;
查詢結果:
通過 GROUP BY 子句可以將數據劃分到不同的組中,實現對記錄進行分組查詢。在查詢時,所查詢的列必須包含在分組的列中,目的是使查詢到的數據沒有矛盾。
select id,age from info GROUP BY age;
查詢結果:
查詢數據時,可能會查詢出很多的記錄。而用戶需要的記錄可能只是很少的一部分。這樣就需要來限制查詢結果的數量。LIMIT 是 MySQL 中的一個特殊關鍵字。LIMIT 子句可以對查詢結果的記錄條數進行限定,控制它輸出的行數。
select * from info ORDER BY score LIMIT 3;
查詢結果:
丸趣 TV 網 – 提供最優質的資源集合!