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ụ:

shell
SELECT first_name, last_name 
FROM users
WHERE age > 30;

Trong câu lệnh này:

  • SELECT là lệnh truy xuất dữ liệu.
  • first_namelast_name là tên các cột.
  • users là tên bảng.
  • WHERE là 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:

shell
SELECT column1, column2, ...
FROM table_name;

Ví dụ:

shell
SELECT first_name, last_name
FROM employees;

Câu lệnh này sẽ lấy ra hai cột first_namelast_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:

shell
SELECT column1, column2, ...
FROM table_name
WHERE condition;

Ví dụ:

shell
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:

shell
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC|DESC];

Ví dụ:

shell
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:

shell
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

Ví dụ:

shell
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:

shell
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Ví dụ:

shell
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:

shell
DELETE FROM table_name
WHERE condition;

Ví dụ:

shell
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:

shell
SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;

Ví dụ:

shell
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 employeesdepartments để 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:

shell
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1
HAVING COUNT(*) > value;

Ví dụ:

shell
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

shell
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

shell
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

shell
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"

shell
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!