====== mysql:sql:dml ======
* **What it is:** DML (Data Manipulation Language) is the set of SQL statements used to read and modify table data.
* **What it’s for:** Do CRUD operations: create rows, read rows, update rows, delete rows.
* **Core keywords:**
* **SELECT** /sɪˈlekt/ — select (chọn / truy vấn)
* **INSERT** /ɪnˈsɝːt/ — insert (chèn)
* **UPDATE** /ʌpˈdeɪt/ — update (cập nhật)
* **DELETE** /dɪˈliːt/ — delete (xóa)
* **Example (create a table to practice):**
CREATE TABLE users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(255) NOT NULL,
name VARCHAR(100) NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_users_email (email)
);
* **Example (INSERT):**
INSERT INTO users (email, name) VALUES ('a@b.com', 'Alice');
INSERT INTO users (email) VALUES ('c@d.com'); -- name is NULL
* **Example (SELECT basics):**
SELECT id, email, name FROM users;
SELECT * FROM users WHERE email = 'a@b.com';
SELECT * FROM users ORDER BY id DESC LIMIT 10;
* **Example (WHERE operators):**
SELECT * FROM users WHERE id = 1;
SELECT * FROM users WHERE id IN (1,2,3);
SELECT * FROM users WHERE email LIKE '%@b.com';
SELECT * FROM users WHERE created_at >= '2026-01-01';
* **Example (UPDATE):**
UPDATE users SET name = 'Alice Nguyen' WHERE email = 'a@b.com';
UPDATE users SET name = NULL WHERE id = 1;
* **Example (DELETE):**
DELETE FROM users WHERE id = 1;
* **Safe habits (best practice):**
* Always add a **WHERE** clause for UPDATE/DELETE (unless you truly want to affect all rows).
* Prefer **LIMIT** when testing deletes/updates in production-like environments.
* **Vocabulary (hard words):**
* **clause** /klɔːz/ — clause (mệnh đề trong câu SQL, ví dụ WHERE clause)
* **affect** /əˈfekt/ — affect (tác động)
* **production** /prəˈdʌk.ʃən/ — production (môi trường thật)