Học SQL Từ Cơ Bản Đến Nâng Cao

SQL (Structured Query Language) là ngôn ngữ tiêu chuẩn dùng để tương tác với cơ sở dữ liệu quan hệ (RDBMS – Relational Database Management System). Với SQL, bạn có thể:

  • Tạo, chỉnh sửa và xóa bảng dữ liệu.
  • Thêm, sửa, xóa dữ liệu.
  • Truy vấn dữ liệu theo điều kiện.
  • Quản lý quyền truy cập.
  • Tối ưu hóa và phân tích dữ liệu.

SQL hoạt động trên nhiều hệ quản trị cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, SQL Server, Oracle. Dù mỗi hệ thống có một số khác biệt nhỏ, cú pháp SQL cơ bản thường tương đồng.

Các khái niệm cơ bản trong SQL

– Cơ sở dữ liệu (Database)

Là tập hợp có tổ chức các bảng dữ liệu liên quan.

– Bảng (Table)

Cấu trúc dữ liệu dạng hàng (row) và cột (column).
Ví dụ bảng Users:

id name email
1 Nguyễn An an@example.com
2 Lê Bình binh@example.com

– Cột (Column) và Hàng (Row)

  • Cột: xác định kiểu dữ liệu (INT, VARCHAR, DATE…).
  • Hàng: chứa dữ liệu cụ thể cho mỗi bản ghi.

– Khóa chính (Primary Key)

Trường hoặc nhóm trường duy nhất định danh bản ghi.

– Khóa ngoại (Foreign Key)

Trường liên kết bảng này với bảng khác.

Các câu lệnh SQL cơ bản

Tạo bảng

sql

Sao chépChỉnh sửa

CREATE TABLE Users (

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(50),

email VARCHAR(100)

);

Thêm dữ liệu

sql

Sao chépChỉnh sửa

INSERT INTO Users (name, email)

VALUES (‘Nguyễn An’, ‘an@example.com’),

(‘Lê Bình’, ‘binh@example.com’);

Truy vấn dữ liệu

sql

Sao chépChỉnh sửa

SELECT * FROM Users; — Lấy tất cả dữ liệu

SELECT name, email FROM Users WHERE id = 1; — Lấy theo điều kiện

Cập nhật dữ liệu

sql

Sao chépChỉnh sửa

UPDATE Users

SET email = ‘an_new@example.com’

WHERE id = 1;

Xóa dữ liệu

sql

Sao chépChỉnh sửa

DELETE FROM Users WHERE id = 2;

Xóa bảng

sql

Sao chépChỉnh sửa

DROP TABLE Users;

Các kỹ thuật truy vấn nâng cao

Sắp xếp dữ liệu (ORDER BY)

sql

Sao chépChỉnh sửa

SELECT * FROM Users ORDER BY name ASC; — Tăng dần

SELECT * FROM Users ORDER BY name DESC; — Giảm dần

Giới hạn số bản ghi (LIMIT)

sql

Sao chépChỉnh sửa

SELECT * FROM Users LIMIT 5; — Lấy 5 dòng đầu

Lọc dữ liệu nâng cao (WHERE, AND, OR, IN, BETWEEN, LIKE)

sql

Sao chépChỉnh sửa

SELECT * FROM Users WHERE name LIKE ‘Nguyễn%’;

SELECT * FROM Orders WHERE price BETWEEN 100 AND 500;

SELECT * FROM Users WHERE id IN (1, 3, 5);

Gộp dữ liệu (GROUP BY) và điều kiện nhóm (HAVING)

sql

Sao chépChỉnh sửa

SELECT department, COUNT(*) AS total

FROM Employees

GROUP BY department

HAVING total > 5;

Kết hợp bảng (JOIN)

  • INNER JOIN: Chỉ lấy dữ liệu khớp ở cả hai bảng.
  • LEFT JOIN: Lấy tất cả dữ liệu bảng bên trái + dữ liệu khớp bảng bên phải.
  • RIGHT JOIN: Ngược lại LEFT JOIN.
  • FULL JOIN: Lấy tất cả dữ liệu ở cả hai bảng.

Ví dụ:

sql

Sao chépChỉnh sửa

SELECT Orders.id, Users.name, Orders.total

FROM Orders

INNER JOIN Users ON Orders.user_id = Users.id;

Truy vấn lồng nhau (Subquery)

sql

Sao chépChỉnh sửa

SELECT name

FROM Users

WHERE id IN (

SELECT user_id FROM Orders WHERE total > 1000

);

Kỹ thuật tối ưu hóa và nâng cao

Tạo chỉ mục (Index) để tăng tốc truy vấn

sql

Sao chépChỉnh sửa

CREATE INDEX idx_email ON Users(email);

Chỉ mục giúp tăng tốc độ tìm kiếm nhưng tốn thêm bộ nhớ và ảnh hưởng đến tốc độ ghi dữ liệu.

Sử dụng View

sql

Sao chépChỉnh sửa

CREATE VIEW HighValueOrders AS

SELECT * FROM Orders WHERE total > 1000;

View như một “bảng ảo” lưu truy vấn phức tạp.

Stored Procedure và Function

sql

Sao chépChỉnh sửa

CREATE PROCEDURE GetUserOrders(IN userId INT)

BEGIN

SELECT * FROM Orders WHERE user_id = userId;

END;

Giúp tái sử dụng và bảo mật truy vấn.

Trigger

sql

Sao chépChỉnh sửa

CREATE TRIGGER before_user_insert

BEFORE INSERT ON Users

FOR EACH ROW

SET NEW.created_at = NOW();

Tự động thực hiện hành động khi xảy ra sự kiện (INSERT, UPDATE, DELETE).

Quản lý giao dịch (Transaction)

sql

Sao chépChỉnh sửa

START TRANSACTION;

UPDATE Accounts SET balance = balance – 100 WHERE id = 1;

UPDATE Accounts SET balance = balance + 100 WHERE id = 2;

COMMIT;

Transaction đảm bảo tính toàn vẹn dữ liệu (cùng thành công hoặc cùng thất bại).

Mẹo học SQL hiệu quả

  1. Bắt đầu từ cơ bản: Hiểu bảng, cột, khóa.
  2. Thực hành nhiều: Dùng MySQL Workbench, pgAdmin hoặc SQLite Studio.
  3. Làm dự án nhỏ: Ví dụ quản lý sinh viên, bán hàng.
  4. Đọc tài liệu chính thức: MySQL Docs, PostgreSQL Docs.
  5. Học song song tối ưu hóa: Hiểu Index, Explain Plan.
  6. Tránh thuộc lòng mù quáng: Nên hiểu logic câu lệnh.
  7. Luyện giải bài tập trên LeetCode, HackerRank.

Học SQL không chỉ là ghi nhớ cú pháp mà còn là hiểu cách dữ liệu được lưu trữ và xử lý. Khi nắm vững từ cơ bản (SELECT, INSERT, UPDATE, DELETE) đến nâng cao (JOIN, INDEX, VIEW, PROCEDURE, TRANSACTION), bạn sẽ có khả năng xử lý dữ liệu chuyên nghiệp, phục vụ cho lập trình, phân tích dữ liệu và quản trị hệ thống.

Tóm lại:

  • Bắt đầu với lệnh cơ bản.
  • Hiểu mối quan hệ bảng.
  • Thực hành nhiều với dữ liệu thật.

Nâng cấp dần kiến thức tối ưu và bảo mật.

This entry was posted in Chưa phân loại. Bookmark the permalink.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *