首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 基礎查詢全攻略:單表查詢、條件篩選、排序去重實戰

     編輯:MySQL 綜合教學

MySQL 基礎查詢全攻略:單表查詢、條件篩選、排序去重實戰

掌握 SELECT 語句是操作 MySQL 的基石。本文以學生表為例,系統講解從基礎查詢到多條件組合、模糊匹配、排序去重的完整語法與實戰技巧。

一、準備數據

CREATE TABLE student (
    id INT PRIMARY KEY NOT NULL,
    name VARCHAR(30),
    sex VARCHAR(4),
    class VARCHAR(10)
);

INSERT INTO student (id, name, sex, class) VALUES
(01, '張三', '男', '班級1'),
(02, '李四', '男', '班級2'),
(03, '王五', '女', '班級3');

二、核心查詢語法

場景語法示例說明
查詢所有列SELECT * FROM student;生產環境建議顯式列出列名
指定列順序SELECT name, id, class, sex FROM student;結果按 SQL 指定順序返回
條件篩選SELECT id, name FROM student WHERE class='班級1';等值匹配
IN 列表匹配SELECT * FROM student WHERE id IN (1,2);等同多個 OR
範圍查詢SELECT * FROM student WHERE id BETWEEN 1 AND 3;包含邊界值
模糊匹配 %SELECT * FROM student WHERE class LIKE '班%';% 匹配任意長度(含0)
模糊匹配 _SELECT * FROM student WHERE class LIKE '_級_';_ 匹配單個字符
空值判斷SELECT name FROM student WHERE id IS NULL;不可用 = NULL
非空判斷SELECT name FROM student WHERE id IS NOT NULL;
AND 多條件SELECT * FROM student WHERE sex='男' AND class='班級1';同時滿足
OR 多條件SELECT * FROM student WHERE sex='女' OR id=1;滿足任一
去重SELECT DISTINCT sex FROM student;結果集唯一
單列排序SELECT * FROM student ORDER BY id DESC;DESC 降序,默認 ASC
多列排序SELECT * FROM student ORDER BY id, class;先按 id,相同再按 class

三、進階技巧

1. 運算符優先級

AND 優先於 OR,複雜條件建議用括號明確邏輯:

SELECT * FROM student 
WHERE (sex='男' OR sex='女') AND class IN ('班級1','班級2');

2. LIMIT 分頁

SELECT * FROM student ORDER BY id LIMIT 0, 10;  -- 第一頁 10 條

3. 列別名與表達式

SELECT name AS student_name, CONCAT(class, '-', sex) AS info FROM student;

四、性能提示

  • WHERE 條件列加索引可大幅提速。
  • 避免 SELECT *,減少網絡傳輸與解析開銷。
  • LIKE '%keyword%' 導致全表掃描,全文搜索請用全文索引或 Elasticsearch。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved