====== 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)