Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Published on
Published on

Tìm hiểu các lệnh thao tác dữ liệu(DML) trong MySQL

Trong MySQL, Data Manipulation Language (DML) (Ngôn ngữ Manipulation Dữ Liệu) đề cập đến các lệnh SQL được sử dụng để truy xuất, chèn, cập nhật và xóa dữ liệu trong các bảng cơ sở dữ liệu. Các thao tác này cho phép bạn tương tác với và thay đổi dữ liệu lưu trữ trong cơ sở dữ liệu của mình. Trong bài viết này, chúng ta sẽ đi sâu vào bốn lệnh DML chính trong MySQL: SELECT, INSERT, UPDATEDELETE. Chúng tôi sẽ giải thích chức năng, cú pháp và các kịch bản sử dụng của chúng để giúp bạn thao tác dữ liệu một cách hiệu quả trong cơ sở dữ liệu MySQL.

Các lệnh DML:

  • SELECT – Truy Vấn Dữ Liệu
  • INSERT – Thêm Dữ Liệu Mới
  • UPDATE – Cập Nhật Dữ Liệu
  • DELETE – Xóa Dữ Liệu

SELECT – Truy Vấn Dữ Liệu

Lệnh SELECT được sử dụng để truy xuất dữ liệu từ một hoặc nhiều bảng. Nó cho phép bạn chỉ định chính xác các cột mà bạn muốn truy xuất và áp dụng bộ lọc hoặc sắp xếp để tinh chỉnh kết quả.

Cú pháp cơ bản:

SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column_name
LIMIT n;
  • column1, column2, ... : Các cột bạn muốn truy xuất.
  • table_name : Tên của bảng mà bạn muốn lấy dữ liệu.
  • WHERE : Một điều kiện tùy chọn để lọc các dòng dữ liệu.
  • ORDER BY : Sắp xếp kết quả theo một hoặc nhiều cột.
  • LIMIT : Giới hạn số lượng dòng trả về.

Ví dụ:

SELECT first_name, last_name
FROM employees
WHERE department = 'Sales'
ORDER BY last_name ASC;

Truy vấn này lấy tên và họ của các nhân viên làm việc trong bộ phận Sales, được sắp xếp theo họ theo thứ tự tăng dần.

Sử dụng nâng cao:

  • JOIN : Kết hợp các dòng dữ liệu từ hai hoặc nhiều bảng dựa trên một cột liên quan.

  • GROUP BY : Nhóm các dòng dữ liệu dựa trên các giá trị chung (ví dụ: để tính toán tổng hợp).

  • HAVING : Lọc kết quả sau khi áp dụng GROUP BY.

INSERT – Thêm Dữ Liệu Mới

Lệnh INSERT được sử dụng để thêm các bản ghi mới vào một bảng. Bạn có thể chèn một hoặc nhiều bản ghi trong một lệnh.

Cú pháp cơ bản:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
  • table_name : Tên của bảng mà bạn muốn chèn dữ liệu.

  • column1, column2, ... : Các cột mà bạn sẽ chèn dữ liệu.

  • value1, value2, ... : Dữ liệu thực tế mà bạn sẽ chèn vào các cột.

Ví dụ:

INSERT INTO employees (first_name, last_name, department)
VALUES ('John', 'Doe', 'Engineering');

Truy vấn này chèn một bản ghi nhân viên mới vào bảng employees.

Chèn nhiều bản ghi:

INSERT INTO employees (first_name, last_name, department)
VALUES
  ('Jane', 'Smith', 'Marketing'),
  ('Alan', 'Brown', 'Sales');

Truy vấn này chèn hai bản ghi nhân viên trong một lệnh.

UPDATE – Cập Nhật Dữ Liệu

Lệnh UPDATE được sử dụng để thay đổi các bản ghi đã có trong bảng. Bạn có thể cập nhật một hoặc nhiều cột trong một hoặc nhiều dòng dữ liệu.

Cú pháp cơ bản:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • table_name : Tên của bảng mà bạn muốn cập nhật dữ liệu.

  • column1, column2, ... : Các cột bạn muốn cập nhật.

  • value1, value2, ... : Các giá trị mới bạn muốn gán cho các cột.

  • WHERE : Điều kiện chỉ ra các dòng dữ liệu sẽ được cập nhật. Nếu không có điều kiện này, tất cả các dòng sẽ bị cập nhật.

Ví dụ:

UPDATE employees
SET department = 'Marketing'
WHERE department = 'Sales';

Truy vấn này cập nhật bộ phận của tất cả nhân viên đang làm việc trong bộ phận Sales, thay đổi thành Marketing.

Lưu ý quan trọng:

Hãy luôn sử dụng câu lệnh WHERE để tránh việc cập nhật toàn bộ dữ liệu trong bảng.

DELETE – Xóa Dữ Liệu

Lệnh DELETE được sử dụng để xóa một hoặc nhiều bản ghi khỏi bảng. Bạn có thể xóa một dòng hoặc nhiều dòng dữ liệu dựa trên điều kiện.

Cú pháp cơ bản:

DELETE FROM table_name
WHERE condition;
  • table_name : Tên của bảng mà bạn muốn xóa dữ liệu.

  • WHERE : Điều kiện để chỉ định các bản ghi sẽ bị xóa. Nếu không có điều kiện này, tất cả các dòng sẽ bị xóa.

Ví dụ:

DELETE FROM employees
WHERE department = 'Marketing';

Truy vấn này xóa tất cả các nhân viên trong bộ phận Marketing khỏi bảng employees.

Lưu ý:

Lệnh DELETE sẽ xóa dữ liệu vĩnh viễn. Nếu bạn vô tình bỏ qua điều kiện WHERE, bạn có thể sẽ xóa toàn bộ dữ liệu trong bảng. Hãy luôn kiểm tra kỹ điều kiện trước khi chạy câu lệnh DELETE.

Các Best practice khi Sử Dụng Lệnh DML

  1. Luôn sử dụng câu lệnh WHERE với UPDATEDELETE để tránh việc thay đổi hoặc xóa toàn bộ dữ liệu trong bảng.
  2. Sử dụng giao dịch (transactions) khi thực hiện nhiều thao tác DML để đảm bảo tính toàn vẹn của dữ liệu. Giao dịch cho phép bạn commit hoặc rollback các thay đổi nếu có sự cố.
  3. Xác thực dữ liệu người dùng để ngăn chặn các cuộc tấn công SQL injection, đặc biệt khi sử dụng các giá trị động trong lệnh DML.
  4. Sử dụng SELECT trước khi thực hiện DELETE hoặc UPDATE để xem trước dữ liệu sẽ bị ảnh hưởng bởi các thay đổi.
  5. Sao lưu dữ liệu thường xuyên, đặc biệt là trước khi thực hiện các thao tác xóa dữ liệu.

Kết Luận

Manipulation dữ liệu là một phần quan trọng trong việc làm việc với cơ sở dữ liệu. Việc thành thạo các lệnh SELECT, INSERT, UPDATE, và DELETE trong MySQL sẽ giúp bạn tương tác với dữ liệu một cách hiệu quả.