Bắt đầu với MySQL Query

Table of Contents
Khi mới bắt đầu làm việc với cơ sở dữ liệu, MySQL thường là hệ thống đầu tiên bạn tiếp cận. Nó phổ biến, mã nguồn mở, và cực kỳ mạnh mẽ cho mọi quy mô dự án.
Thay vì đọc các tài liệu dài dòng, đây là hướng dẫn ngắn gọn với 20% lệnh bạn sẽ dùng trong 80% thời gian!
Mẹo Cài Đặt
Nếu bạn chưa cài MySQL, cách nhanh nhất là dùng Docker:
docker run --name mysql-dev -e MYSQL_ROOT_PASSWORD=secret -d mysql
1. Kết Nối & Tạo Cơ Sở Dữ Liệu
Truy cập qua Terminal
Để kết nối, sử dụng tài khoản của bạn:
mysql -u root -p
Tạo mới & Chọn DB
CREATE DATABASE zoo_db;
USE zoo_db;
2. Tạo Bảng (Tables)
Giả sử chúng ta cần quản lý một sở thú với habitat (Môi trường) và animal (Động vật).
CREATE TABLE habitat (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64)
);
CREATE TABLE animal (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64),
habitat_id INT,
FOREIGN KEY (habitat_id) REFERENCES habitat(id)
);
Sức mạnh của Khoá Ngoại (Foreign Key)
Khoá ngoại giúp bảo đảm tính toàn vẹn dữ liệu. Bạn không thể thêm một con vật vào một môi trường (habitat_id) không hề tồn tại!
3. Thêm, Sửa, Xóa (CRUD)
Thêm dữ liệu với INSERT, chỉnh sửa với UPDATE, và xóa với DELETE:
INSERT INTO habitat (name) VALUES ('River'), ('Forest');
UPDATE animal SET name = 'Quack' WHERE id = 2;
DELETE FROM animal WHERE id = 1;
LUÔN SỬ DỤNG WHERE!
Nếu bạn chạy UPDATE hoặc DELETE mà không có WHERE, bạn sẽ sửa hoặc xóa TOÀN BỘ dữ liệu trong bảng. Hãy kiểm tra cẩn thận!
4. Truy vấn Dữ Liệu (Querying & GROUP BY)
Để thống kê tuổi trung bình của từng loài (loại bỏ con vật có id=3):
SELECT species, AVG(age) AS average_age
FROM animal
WHERE id != 3
GROUP BY species
HAVING AVG(age) > 3
ORDER BY AVG(age) DESC;
Để lấy tên động vật kèm tên môi trường của chúng (Kết hợp 2 bảng):
SELECT animal.name AS animal_name, habitat.name AS habitat_name
FROM animal
INNER JOIN habitat ON animal.habitat_id = habitat.id;
Hãy mở terminal lên và thực hành nhé. Đó là cách duy nhất để thực sự hiểu cách MySQL vận hành!
Free In-Browser Developer Tools
Clean AI CLI logs, build cron expressions, decode JWTs, and calculate chmod permissions offline.
Related Articles

Kho dữ liệu phân tích Serverless với BigQuery & Cloud Run: Từ luồng GA4 đến cảnh báo SEO tự động
Tìm hiểu cách xây dựng kho dữ liệu phân tích serverless tự động với BigQuery, Google Analytics 4 và Cloud Run: mô hình hóa lược đồ, chuyển đổi SQL theo lịch trình, chi phí không tải và cảnh báo truy vấn SEO tự động.
Read more
Kubernetes HPA với Custom Metrics: Tự động điều chỉnh quy mô thực tế với Prometheus
Hướng dẫn toàn diện về Kubernetes HPA với custom metrics: tự động điều chỉnh quy mô thực tế với Prometheus cùng các ví dụ thực tế đã được kiểm chứng trong môi trường sản xuất.
Read more
Các lựa chọn thay thế Playwright hàng đầu năm 2026: So sánh Cypress, WebdriverIO, Vitest & Puppeteer
Hướng dẫn toàn diện về các lựa chọn thay thế Playwright hàng đầu năm 2026: so sánh Cypress, WebdriverIO, Vitest & Puppeteer với các ví dụ thực tế đã được kiểm chứng.
Read more