SQL 備忘錄
本部落格全面指導最重要的SQL指令和操作。它涵蓋了基本查詢、聯結、子查詢、索引和更高級的概念。
目錄
- SQL 基礎
- 資料定義語言(DDL)
- 資料操作語言(DML)
- 資料查詢語言(DQL)
- 資料控制語言(DCL)
- 加入
- 子查詢
- 索引
- 聚合函數
- 分組與排序
- 交易
- 進階 SQL
- 最佳實踐
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中文網其他相關文章!

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

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

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

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

Dreamweaver CS6
視覺化網頁開發工具

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