MySql select 多種查詢方式
前言
在資料庫使用過程中,使用最多的場景就是查詢資料,所以今天我們總結一下常用用的查詢
- 簡單查詢
- 帶條件查詢
- 多條件查詢
- 輸出指定欄位查詢
- 分組查詢
- 查詢結果排序
- 分頁查詢
- 多表之間查詢
準備三張表:訂單 orders 商品 commodity 使用者 users 內容如下:
orders 表:
users 表:
commodity 表:
簡單查詢
語法:
select * from 表名
執行查詢語句, 查詢 commodity 表所有資料
select * from commodite ;
WHERE 帶條件查詢
- 帶條件查詢是在select 語句後面新增 where
- 可以使用 and 或者 or 連結一個或多個條件
- and 同時要滿足兩個或兩個以上條件
- or 滿足兩個或兩個以上其中一個條件
運算子: - = 等於 !=,<> 不等於 > 大於 < 小於 >= 大於等於 <=
語法
select * from 表名 where 條件1 and 條件2 or 條件3 ;
列子:查詢 commodity 表中 id = 1 的商品資訊
select * from commodity where id = 1 ;
多條件查詢
查詢 commodity 表中 order_id = 1 並且 user_id = 1
select * from commodity where order_id = 1 and user_id = 1 ;
查詢 commodity 表中 order_id = 1 或者 user_id = 1
select * from commodity where order_id = 1 or user_id = 1 ;
輸出指定欄位查詢
在查詢表資料的時,有時我們只需要其中幾個欄位,這個是我們指定需要欄位即可
語法
select 列1, 列2, ... from 表明 WHERE 條件可選
下面我們查詢 commodity 表輸出 商品名
select c_name from commodity ;
結果只輸出了 c_name 一列資料
下面我們新增條件查詢看下效果
select c_name from commodity where order_id = 1 ;
分組查詢
在實際使用是,我們還會用到根據其中一列分組查詢,下面我們看下語法
select 用於分組的列, 用於運算的列 from commodity group by 用於分組的列
下面我們查詢 commodity ,按照 order_id 進行分組
select order_id from commodity group by order_id;
按照 order_id 分組之後我們再看下每一組具體有多少條資料
select order_id, COUNT(order_id) from commodity group by order_id;
- 按照 order_id 分組,計算每一組數量 count(order_id)
查詢結果排序
很多時候我們需要對查詢結果進行排序這個時候我們會用到 order by
select * from 表名 order by 排序欄位 排序規則
排序規則
- DESC 降序
- ASC 升序 預設
現在我們查詢一下 commodity 結果按 order_id 排序
select * from commodity order by order_id ASC ;
select * from commodity order by order_id DESC ;
分頁查詢
在實際業務常常會用到分頁查詢功能
語法
select * from commodity limit 條數 offset 起始位置;
下面我們查詢 commodity 表,從第二條開始查詢,結果輸出兩條資料
select * from commodity limit 2 offset 1;
下面我們把上面的所有語法練習一下
查詢 commodity 表,條件是order_id = 1 或者 user_id != 4 按照 order_id 分組 按照user_id 排序 輸出 order_id user_id 列 查詢結果從第二條開始 只查詢4條
select order_id, user_id from commodity where order_id = 1 or user_id != 4 group by order_id, user_id order by user_id DESC limit 4 offset 1;