🗄️ Bảng Tóm Tắt Các Câu Lệnh MySQL Cần Biết (Kèm Ví Dụ)
SQL (Structured Query Language) là ngôn ngữ tiêu chuẩn để tương tác với các cơ sở dữ liệu. Nếu bạn đang tìm hiểu về MySQL, đây là hướng dẫn toàn diện chứa tất cả các câu lệnh thiết yếu, giải thích đơn giản và ví dụ thực tế với đầu ra.
Chúng ta sẽ xây dựng từng bước với bảng students
và bảng courses
để dễ hiểu.
🏗️ Thiết lập: Tạo Bảng
sql
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT,
course VARCHAR(100),
marks INT
);
CREATE TABLE courses (
course_id INT AUTO_INCREMENT PRIMARY KEY,
course_name VARCHAR(100),
instructor VARCHAR(100)
);
Nhập dữ liệu mẫu:
sql
INSERT INTO students (name, age, course, marks) VALUES
('Alice', 20, 'Computer Science', 85),
('Bob', 22, 'Mathematics', 90),
('Charlie', 21, 'Physics', 75),
('Daisy', 23, 'Computer Science', 95);
INSERT INTO courses (course_name, instructor) VALUES
('Computer Science', 'Dr. Smith'),
('Mathematics', 'Dr. John'),
('Physics', 'Dr. Lee');
✅ Bây giờ hãy cùng khám phá các câu lệnh.
🔹 Các Câu Lệnh SQL Cơ Bản
1. Hiển Thị Tất Cả Các Cơ Sở Dữ Liệu
sql
SHOW DATABASES;
👉 Đầu ra:
Cơ sở dữ liệu |
---|
mysql |
information_schema |
test_db |
2. Sử Dụng Một Cơ Sở Dữ Liệu
sql
USE test_db;
3. Hiển Thị Tất Cả Các Bảng
sql
SHOW TABLES;
👉 Đầu ra:
Bảng trong test_db |
---|
students |
courses |
4. Mô Tả Một Bảng
sql
DESCRIBE students;
👉 Đầu ra:
Trường | Loại | Null | Khóa | Mặc định | Thêm |
---|---|---|---|---|---|
id | int | NO | PRI | NULL | auto_increment |
name | varchar(100) | YES | NULL | ||
age | int | YES | NULL | ||
course | varchar(100) | YES | NULL | ||
marks | int | YES | NULL |
🔹 Lấy Dữ Liệu
5. SELECT – Lấy Dữ Liệu
sql
SELECT * FROM students;
👉 Đầu ra:
id | name | age | course | marks |
---|---|---|---|---|
1 | Alice | 20 | Computer Science | 85 |
2 | Bob | 22 | Mathematics | 90 |
3 | Charlie | 21 | Physics | 75 |
4 | Daisy | 23 | Computer Science | 95 |
6. WHERE – Lọc Dữ Liệu
sql
SELECT name, marks FROM students WHERE marks > 80;
👉 Đầu ra:
name | marks |
---|---|
Alice | 85 |
Bob | 90 |
Daisy | 95 |
7. ORDER BY – Sắp Xếp
sql
SELECT * FROM students ORDER BY marks DESC;
👉 Đầu ra:
name | marks |
---|---|
Daisy | 95 |
Bob | 90 |
Alice | 85 |
Charlie | 75 |
8. LIMIT – Giới Hạn Dòng
sql
SELECT * FROM students LIMIT 2;
👉 Đầu ra:
name | age | course | marks |
---|---|---|---|
Alice | 20 | Computer Science | 85 |
Bob | 22 | Mathematics | 90 |
9. DISTINCT – Giá Trị Độc Nhất
sql
SELECT DISTINCT course FROM students;
👉 Đầu ra:
course |
---|
Computer Science |
Mathematics |
Physics |
🔹 Sửa Đổi Dữ Liệu
10. INSERT – Thêm Dữ Liệu
sql
INSERT INTO students (name, age, course, marks)
VALUES ('Eve', 20, 'Mathematics', 88);
11. UPDATE – Sửa Đổi Dữ Liệu
sql
UPDATE students SET marks = 92 WHERE name = 'Alice';
12. DELETE – Xóa Dữ Liệu
sql
DELETE FROM students WHERE name = 'Charlie';
13. DROP – Xóa Một Bảng
sql
DROP TABLE students;
🔹 Các Câu Lệnh SQL Nâng Cao
14. GROUP BY – Tính Toán Tập Hợp
sql
SELECT course, AVG(marks) AS avg_marks
FROM students
GROUP BY course;
👉 Đầu ra:
course | avg_marks |
---|---|
Computer Science | 90 |
Mathematics | 89 |
Physics | 75 |
15. HAVING – Lọc Nhóm
sql
SELECT course, AVG(marks) AS avg_marks
FROM students
GROUP BY course
HAVING avg_marks > 80;
👉 Đầu ra:
course | avg_marks |
---|---|
Computer Science | 90 |
Mathematics | 89 |
16. JOIN – Kết Hợp Các Bảng
sql
SELECT s.name, s.course, c.instructor
FROM students s
JOIN courses c ON s.course = c.course_name;
👉 Đầu ra:
name | course | instructor |
---|---|---|
Alice | Computer Science | Dr. Smith |
Bob | Mathematics | Dr. John |
Daisy | Computer Science | Dr. Smith |
17. LIKE – Khớp Mẫu
sql
SELECT * FROM students WHERE name LIKE 'A%';
👉 Đầu ra:
id | name | age | course | marks |
---|---|---|---|---|
1 | Alice | 20 | Computer Science | 85 |
18. BETWEEN & IN
sql
-- Điểm giữa 80 và 95
SELECT * FROM students WHERE marks BETWEEN 80 AND 95;
-- Sinh viên trong các khóa học cụ thể
SELECT * FROM students WHERE course IN ('Mathematics', 'Physics');
🔹 Giao Dịch
19. START TRANSACTION, COMMIT, ROLLBACK
sql
START TRANSACTION;
UPDATE students SET marks = 100 WHERE name = 'Bob';
ROLLBACK; -- hoàn tác thay đổi
-- COMMIT; -- xác nhận thay đổi
🔹 Trigger & Stored Procedures
20. DELIMITER + TRIGGER
sql
DELIMITER //
CREATE TRIGGER after_insert_student
AFTER INSERT ON students
FOR EACH ROW
BEGIN
INSERT INTO courses (course_name, instructor)
VALUES ('New Course', 'TBD');
END //
DELIMITER ;
21. STORED PROCEDURE
sql
DELIMITER //
CREATE PROCEDURE GetHighScorers()
BEGIN
SELECT name, marks FROM students WHERE marks > 85;
END //
DELIMITER ;
CALL GetHighScorers();
👉 Đầu ra:
name | marks |
---|---|
Alice | 92 |
Bob | 90 |
Daisy | 95 |
🔹 Views & Indexes
22. CREATE VIEW
sql
CREATE VIEW high_scorers AS
SELECT name, course, marks
FROM students
WHERE marks > 85;
SELECT * FROM high_scorers;
👉 Đầu ra:
name | course | marks |
---|---|---|
Alice | Computer Science | 92 |
Bob | Mathematics | 90 |
Daisy | Computer Science | 95 |
23. INDEX
sql
CREATE INDEX idx_course ON students(course);
👉 Giúp tăng tốc độ tìm kiếm trên course
.
🎯 Kết Luận
Chúng ta đã đề cập đến tất cả các câu lệnh MySQL thiết yếu:
- ✅ Cơ bản (CREATE, SELECT, WHERE, ORDER, LIMIT, DISTINCT)
- ✅ Sửa đổi (INSERT, UPDATE, DELETE, DROP)
- ✅ Nâng cao (GROUP BY, HAVING, JOIN, LIKE, IN, BETWEEN)
- ✅ Giao dịch (COMMIT, ROLLBACK)
- ✅ Trigger, Procedures, Views, Indexes
Đây là bảng tóm tắt MySQL hoàn chỉnh 📖. Hãy đánh dấu trang, sao chép và thực hành với dữ liệu thực tế.
✍️ Viết bởi Nivesh Bansal