MySql 中 select 使用

影的记忆發表於2024-06-15

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;

相關文章