搜尋
首頁資料庫mysql教程SQL 快速參考:簡化資料庫管理

SQL Quick Reference: Simplifying Database Management

SQL 備忘錄

本部落格全面指導最重要的SQL指令和操作。它涵蓋了基本查詢、聯結、子查詢、索引和更高級的概念。

目錄

  1. SQL 基礎
  2. 資料定義語言(DDL)
  3. 資料操作語言(DML)
  4. 資料查詢語言(DQL)
  5. 資料控制語言(DCL)
  6. 加入
  7. 子查詢
  8. 索引
  9. 聚合函數
  10. 分組與排序
  11. 交易
  12. 進階 SQL
  13. 最佳實踐

SQL 基礎知識

SQL 查詢的結構

SELECT column1, column2
FROM table_name
WHERE condition
ORDER BY column
LIMIT n;

在 SQL 中註釋

  • 單行評論: -- 這是一則評論
  • 多行評論
  /* This is a 
     multi-line comment */

資料定義語言(DDL)

建立表

CREATE TABLE table_name (
    column1 datatype [constraints],
    column2 datatype [constraints],
    ...
);

範例:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    hire_date DATE
);

修改表格

新增列

ALTER TABLE table_name
ADD column_name datatype;

刪除一列

ALTER TABLE table_name
DROP COLUMN column_name;

修改列

ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

重新命名表

ALTER TABLE old_table_name
RENAME TO new_table_name;

刪除一個表

DROP TABLE table_name;

建立索引

CREATE INDEX index_name
ON table_name (column_name);

刪除索引

DROP INDEX index_name;

資料操作語言 (DML)

將資料插入表中

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

範例:

INSERT INTO employees (id, name, age, hire_date)
VALUES (1, 'John Doe', 30, '2022-01-01');

更新表中的數據

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

範例:

UPDATE employees
SET age = 31
WHERE id = 1;

從表中刪除數據

DELETE FROM table_name
WHERE condition;

範例:

DELETE FROM employees
WHERE id = 1;

資料查詢語言 (DQL)

從表格中選擇數據

SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column
LIMIT n;

範例:

SELECT * FROM employees;
SELECT name, age FROM employees WHERE age > 30;

通配符

  • *:選擇所有欄位
  • %:零個或多個字元的通配符(在 LIKE 子句中)
  • _:僅代表一個字元的通配符(在 LIKE 子句中)

範例:

SELECT * FROM employees WHERE name LIKE 'J%';

資料控制語言(DCL)

授予權限

GRANT permission ON object TO user;

範例:

GRANT SELECT, INSERT ON employees TO 'user1';

撤銷權限

REVOKE permission ON object FROM user;

範例:

REVOKE SELECT ON employees FROM 'user1';

加入

內連接

當兩個表中存在匹配項時傳回行。

SELECT column1, column2
FROM table_name
WHERE condition
ORDER BY column
LIMIT n;

左連接(或左外連接)

傳回左表中的所有行以及右表中的符合行。如果不匹配,則右表中的欄位將顯示 NULL 值。

  /* This is a 
     multi-line comment */

右連接(或右外連接)

傳回右表中的所有行以及左表中的符合行。如果不匹配,左表中的列將顯示 NULL 值。

CREATE TABLE table_name (
    column1 datatype [constraints],
    column2 datatype [constraints],
    ...
);

全外連接

當其中一個表中有匹配項時傳回行。

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    hire_date DATE
);

子查詢

SELECT 中的子查詢

ALTER TABLE table_name
ADD column_name datatype;

WHERE 中的子查詢

ALTER TABLE table_name
DROP COLUMN column_name;

FROM 中的子查詢

ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

索引

建立索引

ALTER TABLE old_table_name
RENAME TO new_table_name;

刪除索引

DROP TABLE table_name;

唯一索引

確保一列(或一組列)中的所有值都是唯一的。

CREATE INDEX index_name
ON table_name (column_name);

聚合函數

數數

計算符合特定條件的行數。

DROP INDEX index_name;

傳回列中值的總和。

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

平均電壓

傳回列中位數的平均值。

INSERT INTO employees (id, name, age, hire_date)
VALUES (1, 'John Doe', 30, '2022-01-01');

最小值和最大值

傳回列中的最小值和最大值。

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

分組和排序

分組依據

將具有相同值的行分組為總計行。

UPDATE employees
SET age = 31
WHERE id = 1;

擁有

套用 GROUP BY 後過濾群組。

DELETE FROM table_name
WHERE condition;

訂購依據

依升序或降序對結果集進行排序。

DELETE FROM employees
WHERE id = 1;

交易

開始交易

SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column
LIMIT n;

進行交易

SELECT * FROM employees;
SELECT name, age FROM employees WHERE age > 30;

復原事務

SELECT * FROM employees WHERE name LIKE 'J%';

進階SQL

案例當

查詢中的條件邏輯。

SELECT column1, column2
FROM table_name
WHERE condition
ORDER BY column
LIMIT n;

UNION 和 UNION ALL

  • UNION:合併兩個或多個查詢的結果集(刪除重複項)。
  • UNION ALL:合併結果集(保留重複項)。
  /* This is a 
     multi-line comment */

最佳實踐

  • 盡可能使用 JOIN 而不是子查詢以獲得更好的效能。
  • 對經常搜尋的欄位建立索引以加快查詢速度。
  • 避免 SELECT * 並僅指定您需要的欄位。
  • 對大型結果集使用 LIMIT 限制傳回的行數。
  • 標準化您的資料以避免冗餘並提高一致性。
  • 使用WHERE子句而不是在聚合之前過濾資料。
  • 測試查詢效能,特別是對於大型資料集。
  • 使用交易來保證資料的一致性,尤其是涉及多個DML語句的操作。

結論

此 SQL 備忘單涵蓋了使用關聯式資料庫所需的所有基本 SQL 指令和技術。無論您是查詢、插入、更新還是連接數據,本指南都將幫助您更有效地使用 SQL。

CREATE TABLE table_name (
    column1 datatype [constraints],
    column2 datatype [constraints],
    ...
);

以上是SQL 快速參考:簡化資料庫管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
減少在Docker中使用MySQL內存的使用減少在Docker中使用MySQL內存的使用Mar 04, 2025 pm 03:52 PM

本文探討了Docker中的優化MySQL內存使用量。 它討論了監視技術(Docker統計,性能架構,外部工具)和配置策略。 其中包括Docker內存限制,交換和cgroups

mysql無法打開共享庫怎麼解決mysql無法打開共享庫怎麼解決Mar 04, 2025 pm 04:01 PM

本文介紹了MySQL的“無法打開共享庫”錯誤。 該問題源於MySQL無法找到必要的共享庫(.SO/.DLL文件)。解決方案涉及通過系統軟件包M驗證庫安裝

如何使用Alter Table語句在MySQL中更改表?如何使用Alter Table語句在MySQL中更改表?Mar 19, 2025 pm 03:51 PM

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)Mar 04, 2025 pm 03:54 PM

本文比較使用/不使用PhpMyAdmin的Podman容器直接在Linux上安裝MySQL。 它詳細介紹了每種方法的安裝步驟,強調了Podman在孤立,可移植性和可重複性方面的優勢,還

什麼是 SQLite?全面概述什麼是 SQLite?全面概述Mar 04, 2025 pm 03:55 PM

本文提供了SQLite的全面概述,SQLite是一個獨立的,無服務器的關係數據庫。 它詳細介紹了SQLite的優勢(簡單,可移植性,易用性)和缺點(並發限制,可伸縮性挑戰)。 c

在MacOS上運行多個MySQL版本:逐步指南在MacOS上運行多個MySQL版本:逐步指南Mar 04, 2025 pm 03:49 PM

本指南展示了使用自製在MacOS上安裝和管理多個MySQL版本。 它強調使用自製裝置隔離安裝,以防止衝突。 本文詳細詳細介紹了安裝,起始/停止服務和最佳PRA

如何為MySQL連接配置SSL/TLS加密?如何為MySQL連接配置SSL/TLS加密?Mar 18, 2025 pm 12:01 PM

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?Mar 21, 2025 pm 06:28 PM

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)