限制結果:
1.distinct關鍵字 隻傳回不同的行,放在列名前,作用于查詢的所有的列
select distinc 列名 from 表名
2.top 傳回前多少行的資料
select top 5 列名 from 表名 傳回前5的行
3.limit 5 offset 5 limit:傳回多少行 offset 從第幾行開始,預設是0開始,offset 1 是第二行
select 列名 from 表名 limit 3 offset 5 傳回 從第5行開始的資料,傳回3行
order by 排序:
desc:降序 隻對前面列有作用
asc:升序
select 字段1 ,字段1,字段3 from 表名 order by 字段1 按字段1排序
select 字段1 ,字段1,字段3 from 表名 order by 字段1,字段2 先按字段1排序,再按字段2排序
過濾資料: where
在同時使用where和order 時,應該讓order by 位于where之後,否則會産生錯誤
where的易混淆操作符:
1.判斷null: is null
select 字段名 form 表名 where 字段名 is null
2. 不等于: != 與 <> 通常可以互換
select 字段名 form 表名 where 字段名<> ‘字段值’
select 字段名 form 表名 where 字段名!= ‘字段值’
3.between 範圍值 低值和高值用and關鍵字分割
select 字段名 form 表名 where between 5 and 10
分割線----------------------進階過濾---------------------------------------------------------------------
//連接配接多個where
1.and
select 字段名1,字段名2 from 表名 where 字段名1=‘值’ and where 字段名2 <‘值’
2. or
select 字段名1,字段名2 from 表名 where 字段名1=‘值’ or where 字段名2 <‘值’
一般一行的資料滿足條件1之後,就不會再再執行第二個條件
3.and和or
select 字段名1,字段名2,字段3 from 表名 (where 字段名1=‘值’ or where 字段名2 <‘值’) and 字段名3>=‘值’
由于and的優先級更高,是以必須用圓括号将or的兩個條件明确分組,優先執行
//通配符過濾 需要結合like操作符使用 不同mysql可能會出現區分比對的值的大小寫
通配符隻能搜尋字元串的字段
like訓示dbms,後面的搜尋模式是利用通配符,不是簡單的比對比較
1.% 任何字元出現任意次數
select 字段名 from 表名 where 字段名 like ‘值%’ :
檢索 以值開頭的之後的任意字元,在where之後的字段中搜尋
2._ 與%使用方式一樣,但是隻能比對一個, 連續兩個__代表2個字元
字元:一個英文、阿拉伯數字、标點符号都是一個字元 一個漢子占用2個字元
SELECT * FROM test WHERE NAME LIKE ‘___c’; 搜尋name字段中c之前 2個字元
SELECT * FROM test WHERE NAME LIKE ‘__c’; 搜尋name字段中c之前1個字元
3.[]