1. Giới thiệu
SQL (Structured Query Language) là ngôn ngữ truy vấn có cấu trúc, được sử dụng để quản lý và thao tác dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), như MySQL, SQL Server, PostgreSQL, và nhiều hệ quản trị khác. SQL là nền tảng cho mọi hoạt động liên quan đến cơ sở dữ liệu, từ việc tạo bảng, thêm dữ liệu, sửa đổi và truy xuất thông tin từ cơ sở dữ liệu.
Bài viết này sẽ hướng dẫn bạn một cách chi tiết và đầy đủ về cú pháp SQL trong MySQL, bao gồm các câu lệnh cơ bản như SELECT, INSERT, UPDATE, DELETE và nhiều hơn nữa. Đồng thời, chúng ta sẽ đi qua cách sử dụng chúng trong các tình huống thực tế, giúp bạn dễ dàng hiểu và áp dụng trong các dự án của mình.
2. Cú pháp SQL cơ bản (SQL Syntax)
SQL là một ngôn ngữ có cú pháp đơn giản và dễ hiểu. Dưới đây là các thành phần chính trong cú pháp SQL:
a. Cú pháp của câu lệnh SQL
Câu lệnh SQL thường bao gồm ba thành phần chính:
- Lệnh (Command): Đây là từ khóa chính như SELECT, INSERT, UPDATE, DELETE,...
- Từ khóa (Keywords): Dùng để chỉ định các điều kiện hoặc đối tượng như FROM, WHERE, ORDER BY.
- Tên bảng và cột (Table and column names): Tên của bảng và các cột trong cơ sở dữ liệu.
Câu lệnh SQL không phân biệt chữ hoa hay chữ thường, nhưng thông thường, các từ khóa được viết hoa để dễ nhận biết.
Ví dụ:
SELECT first_name, last_name
FROM users
WHERE age > 30;Trong câu lệnh này:
SELECTlà lệnh truy xuất dữ liệu.first_namevàlast_namelà tên các cột.userslà tên bảng.WHERElà từ khóa dùng để lọc dữ liệu dựa trên điều kiện.
3. Các câu lệnh SQL cơ bản
a. Câu lệnh SELECT
Câu lệnh SELECT được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu. Đây là câu lệnh được sử dụng phổ biến nhất trong SQL.
Cú pháp:
SELECT column1, column2, ...
FROM table_name;Ví dụ:
SELECT first_name, last_name
FROM employees;Câu lệnh này sẽ lấy ra hai cột first_name và last_name từ bảng employees.
b. Câu lệnh SELECT với WHERE
Câu lệnh WHERE dùng để lọc các hàng dựa trên một điều kiện nào đó.
Cú pháp:
SELECT column1, column2, ...
FROM table_name
WHERE condition;Ví dụ:
SELECT first_name, last_name
FROM employees
WHERE age > 30;Câu lệnh này lấy ra các nhân viên có tuổi lớn hơn 30.
c. Câu lệnh SELECT với ORDER BY
Câu lệnh ORDER BY dùng để sắp xếp kết quả truy vấn theo một hoặc nhiều cột.
Cú pháp:
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC|DESC];Ví dụ:
SELECT first_name, last_name, age
FROM employees
ORDER BY age DESC;Câu lệnh này sẽ sắp xếp nhân viên theo tuổi giảm dần.
d. Câu lệnh INSERT INTO
Câu lệnh INSERT INTO được sử dụng để thêm dữ liệu mới vào bảng.
Cú pháp:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);Ví dụ:
INSERT INTO employees (first_name, last_name, age)
VALUES ('John', 'Doe', 28);Câu lệnh này thêm một nhân viên mới có tên là John Doe và tuổi 28 vào bảng employees.
e. Câu lệnh UPDATE
Câu lệnh UPDATE được sử dụng để sửa đổi dữ liệu hiện có trong bảng.
Cú pháp:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;Ví dụ:
UPDATE employees
SET age = 29
WHERE first_name = 'John' AND last_name = 'Doe';Câu lệnh này sẽ cập nhật tuổi của John Doe thành 29.
f. Câu lệnh DELETE
Câu lệnh DELETE được sử dụng để xóa dữ liệu khỏi bảng.
Cú pháp:
DELETE FROM table_name
WHERE condition;Ví dụ:
DELETE FROM employees
WHERE last_name = 'Doe';Câu lệnh này sẽ xóa tất cả các nhân viên có họ là Doe.
4. Các câu lệnh nâng cao trong SQL
a. Câu lệnh SELECT với JOIN
JOIN được sử dụng để kết hợp các bản ghi từ hai hoặc nhiều bảng dựa trên điều kiện chung giữa chúng.
Cú pháp:
SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;Ví dụ:
SELECT employees.first_name, departments.department_name
FROM employees
JOIN departments ON employees.department_id = departments.department_id;Câu lệnh này kết hợp dữ liệu từ hai bảng employees và departments để hiển thị tên nhân viên và tên phòng ban mà họ thuộc về.
b. Câu lệnh SELECT với GROUP BY và HAVING
GROUP BY được sử dụng để nhóm các hàng có giá trị giống nhau lại với nhau. HAVING giống như WHERE, nhưng được sử dụng để lọc kết quả sau khi đã nhóm.
Cú pháp:
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1
HAVING COUNT(*) > value;Ví dụ:
SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 5;Câu lệnh này nhóm nhân viên theo department_id và chỉ hiển thị các phòng ban có nhiều hơn 5 nhân viên.
5. Các ví dụ về SQL Syntax
Ví dụ 1: Truy vấn tất cả các nhân viên trong phòng ban "Sales" có tuổi trên 30, sắp xếp theo tên
SELECT first_name, last_name, age
FROM employees
WHERE department = 'Sales' AND age > 30
ORDER BY first_name ASC;Ví dụ 2: Thêm một nhân viên mới vào bảng employees
INSERT INTO employees (first_name, last_name, age, department)
VALUES ('Jane', 'Smith', 26, 'Marketing');Ví dụ 3: Cập nhật thông tin tuổi của tất cả nhân viên trong phòng ban "HR" tăng thêm 1 tuổi
UPDATE employees
SET age = age + 1
WHERE department = 'HR';Ví dụ 4: Xóa tất cả các nhân viên có họ là "Doe"
DELETE FROM employees
WHERE last_name = 'Doe';6. Kết luận
Cú pháp SQL (SQL Syntax) trong MySQL rất linh hoạt và mạnh mẽ, giúp bạn dễ dàng quản lý dữ liệu trong các hệ thống cơ sở dữ liệu. Bằng cách nắm vững các câu lệnh cơ bản như SELECT, INSERT, UPDATE, DELETE cũng như các câu lệnh nâng cao như JOIN, GROUP BY, bạn có thể thao tác và quản lý dữ liệu một cách hiệu quả.
Hãy thực hành các cú pháp SQL này trong các bài tập hoặc dự án thực tế để hiểu rõ hơn về cách chúng hoạt động, và đừng quên theo dõi các bài học tiếp theo trên CodeTutHub để nâng cao kỹ năng của bạn!









