查詢語句限定條件越多,查詢範圍越小;mysql
1.整個表sql
Select * From 庫名.表名
2.整個表的某字段內函數
Select id From 庫名.表名
3.整個表某字段的範圍內3d
Select * From 庫名.表名 Where id<50;
4.整個表某字段的範圍內在限定條目數code
Select * From 庫名.表名 Where id<50 Limit 0,10;
總結:
範圍的大小比較關係以下
1.>2.>3.>4.blog
*
是通配符;排序
Select * From 庫名.表名
Select id,name From 庫名.表名
Where 後面能夠添加不少查詢條件,經常使用的查詢條件以下,在現實中具體使用哪一種看應用場景;字符串
操做符 | 描述 | 實例 |
---|---|---|
= | 等號,檢測兩個值是否相等,若是相等返回true | (A = B) 返回false。 |
<>, != | 不等於,檢測兩個值是否相等,若是不相等返回true | (A != B) 返回 true。 |
> | 大於號,檢測左邊的值是否大於右邊的值, 若是左邊的值大於右邊的值返回true | (A > B) 返回false。 |
< | 小於號,檢測左邊的值是否小於右邊的值, 若是左邊的值小於右邊的值返回true | (A < B) 返回 true。 |
>= | 大於等於號,檢測左邊的值是否大於或等於右邊的值, 若是左邊的值大於或等於右邊的值返回true | (A >= B) 返回false。 |
<= | 小於等於號,檢測左邊的值是否小於於或等於右邊的值, 若是左邊的值小於或等於右邊的值返回true | (A <= B) 返回 true。 |
Example:it
Select * From 庫名.表名 Where id<50;
select * from secondweek.test1_tb where id in(1,2);
select * from secondweek.test1_tb where id not in(1,2);
字符串包含 example:table
select * from secondweek.test1_tb where addr in("北京");
select * from secondweek.test1_tb where id between 1 and 3;
Mysql列中的空值(NULL)不一樣於0,也不一樣於空字符串;
可使用 Not 關鍵字;
select * from secondweek.test1_tb where regTime is Null;
假設有多個重複,那麼他留存惟一的標準是什麼?留第一條;
使用distinct命令時須要放在查詢條件的開頭;
本來表結構:
select distinct password,email from secondweek.test1_tb;
去重後的表結構:
若是是使用了多個列字段,就根據一行與一行來比較,不是單個;若是隻是單列去重,那麼和Group By 字段名;沒啥區別;
單字段去重效果好,由於Group By sex, sex列就做爲分組標準,男爲一組,女爲一組,結果就會只顯示男、女兩組。能夠做爲單列去重使用;
原表:
去重後:
select password,email from secondweek.test1_tb Group By password;
Distinct 去重後:
select Distinct password,email from secondweek.test1_tb;
Group By 字段; 這列字段就會被做爲分組,不能有重複;分組以後能夠求字段中最大、最小、平均值、每組數量...
example:
select Count(sex),sex from secondweek.test1_tb Group By sex;
結合Having 關鍵字:
Having 和 Where相似都是對查詢結果進行過濾用;
區別在於,Having後面能夠跟着聚合函數,而Where不能;
Having通常都和Group By一塊兒使用,對分組後的結果進行過濾;
select Avg(salary),sex from secondweek.test1_tb Group By sex having Avg(salary)>=5900;
模糊查詢支持使用通配符;經常使用通配符有
*
、%
、_
、...
% example:
% 百分號通配符能夠匹配任意長度的字符,包括空字符串;
# 知道固定頭 select * from secondweek.test1_tb where username Like "zhao%"; # 知道固定尾 select * from secondweek.test1_tb where username Like "%qi";
模糊搜索example:
_
單個字符匹配example:
_下劃線通配符只能匹配單個字符,要想匹配多個,就得用多個下劃線;
select * from secondweek.test1_tb where username Like "lis_";
Select * From 庫名.表名 Where id<50 and sex=0;
Select * From 庫名.表名 Where name="lisi" or sex=0;
Select * From 庫名.表名 Where id<50 Limit M[,N]; # M 是偏移變量,默認從0開始,若是指定查詢結果爲 lisi,wangwu,zhaoliu,chenqi, lisi是0,若是M=2,就從zhouliu開始; # N 是記錄數,表示顯示出幾條數據;
Select * From 庫名.表名 Where id<50 Limit 0,10;
根據應用場景,將上述查詢條件語句進行嵌套、並列一塊兒使用,叫作複合條件查詢;
可使用Order By將某列定爲基準,而後排序;
select * from secondweek.test1_tb Order By salary ASC;
select * from secondweek.test1_tb Order By salary DESC;
查詢時使用表名的別名,能夠省略寫全稱的麻煩,在多表操做的時候須要寫多個表名時,有點應用場景;
select id,username,password from secondweek.test1_tb as tb where tb.id > 2; # or select id,username,password from secondweek.test1_tb tb where tb.id > 2;
本來查詢出來的列名都是建立時定義好的,查詢時可使用別名展現出來;
表原來結構:
select id,username myuaer,password as ps from secondweek.test1_tb;
修改爲別名展現: