mysql 單表下的字段操做_查詢

查詢的規律

查詢語句限定條件越多,查詢範圍越小;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指定表和字段查詢範圍

指定整個表

* 是通配符;排序

Select * From 庫名.表名

指定某幾個字段

Select id,name From 庫名.表名

Where指定字段查詢範圍

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;

In 包含判斷查詢

select * from secondweek.test1_tb where id in(1,2);

id not in(1,2)不查括號裏面包含的

select * from secondweek.test1_tb where id not in(1,2);

字符串包含 example:table

select * from secondweek.test1_tb where addr in("北京");

Between X and Y符合連續數值範圍內查詢

select * from secondweek.test1_tb where id between 1 and 3;

Is NULL 空值判斷查詢

Mysql列中的空值(NULL)不一樣於0,也不一樣於空字符串;
可使用 Not 關鍵字;

select * from secondweek.test1_tb where regTime is Null;

Distinct 去重查詢

假設有多個重複,那麼他留存惟一的標準是什麼?留第一條;
使用distinct命令時須要放在查詢條件的開頭;

本來表結構:

select distinct password,email from secondweek.test1_tb;

去重後的表結構:
若是是使用了多個列字段,就根據一行與一行來比較,不是單個;若是隻是單列去重,那麼和Group By 字段名;沒啥區別;

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結合聚合統計函數\Having查詢

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;

Like 模糊查詢

模糊查詢支持使用通配符;經常使用通配符有*%_、...

% 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_";

And 並列多條件查詢

Select * From 庫名.表名 Where id<50 and sex=0;

Or 或條件查詢

Select * From 庫名.表名 Where name="lisi" or sex=0;

Limit 限定查詢結果的數量

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 結合使用;
  • AVG() --- 求某一列平均值
  • COUNT() --- 統計總行數
  • SUM() --- 計算列總和
  • MIN() --- 求某一列的最小值
  • MAX() --- 求某一列的最大值

# Order By對查詢結果排序 > 先肯定以某列爲基準進行排列;

可使用Order By將某列定爲基準,而後排序;

ASC 升序

select * from secondweek.test1_tb Order By salary ASC;

DESC 降序

select * from secondweek.test1_tb Order By salary DESC;


# 查詢時使用別名 > as 能夠省略;

爲表取別名

查詢時使用表名的別名,能夠省略寫全稱的麻煩,在多表操做的時候須要寫多個表名時,有點應用場景;

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;

修改爲別名展現:

相關文章
相關標籤/搜索