Home » Database Testing » So sánh giữa DDL và DML

So sánh giữa DDL và DML

Update: 30/09/2024

Chào mừng các bạn đến với “Tôi đi tét dạo” – nơi mà chúng ta tét mọi thứ từ A đến Z trong thế giới SQL. Hôm nay, chúng ta sẽ khám phá hai thuật ngữ quan trọng nhưng dễ bị lẫn lộn: DDLDML. Nếu bạn mới bước chân vào thế giới SQL, đừng lo! Bài viết này sẽ giúp bạn hiểu rõ sự khác biệt và ứng dụng của DDL và DML với một phong cách vui vẻ nhưng vẫn đầy kiến thức sâu rộng.

Sẵn sàng chưa? Bắt đầu thôi nào!

DDL là gì?

DDL (Data Definition Language) là ngôn ngữ định nghĩa dữ liệu. Nó được sử dụng để tạo, chỉnh sửa cấu trúc của cơ sở dữ liệu và các thành phần bên trong như bảng, chỉ mục (index), schema,…

Khi bạn dùng các lệnh DDL, bạn đang thay đổi cách dữ liệu được lưu trữ và tổ chức, chứ không phải thay đổi bản thân dữ liệu. Hãy tưởng tượng bạn là kiến trúc sư xây dựng ngôi nhà (cấu trúc database), và DDL chính là bộ công cụ giúp bạn thiết kế ngôi nhà đó.

Các lệnh DDL phổ biến

  1. CREATE: Tạo ra các đối tượng trong database như bảng, chỉ mục, schema.
    Ví dụ:sqlCopy codeCREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(100), Age INT );
  2. ALTER: Thay đổi cấu trúc của bảng, chẳng hạn như thêm cột, xóa cột, hoặc thay đổi kiểu dữ liệu.sqlCopy codeALTER TABLE Students ADD COLUMN Gender VARCHAR(10);
  3. DROP: Xóa hoàn toàn một đối tượng trong database như bảng hoặc chỉ mục.sqlCopy codeDROP TABLE Students;
  4. TRUNCATE: Xóa tất cả các bản ghi trong bảng nhưng không ảnh hưởng đến cấu trúc bảng.sqlCopy codeTRUNCATE TABLE Students;

Lưu ý nhỏ: Hãy cẩn thận với lệnh DROPTRUNCATE, vì chúng không thể khôi phục dữ liệu sau khi thực hiện. Nếu bạn thấy nhấp nháy chuột tay run run khi bấm Enter thì đó là điều hoàn toàn bình thường!

DML là gì?

Trong khi DDL lo về mặt “kiến trúc” của cơ sở dữ liệu, DML (Data Manipulation Language) lại tập trung vào việc thao tác với dữ liệu bên trong các bảng. Đây là nơi chúng ta thêm, sửa, xóa dữ liệu – kiểu như việc bạn thêm đồ đạc vào ngôi nhà sau khi xây xong.

Các lệnh DML phổ biến

  1. SELECT: Truy vấn dữ liệu từ bảng. Đây có lẽ là lệnh bạn sẽ sử dụng nhiều nhất.sqlCopy codeSELECT * FROM Students;
  2. INSERT: Thêm dữ liệu mới vào bảng.sqlCopy codeINSERT INTO Students (StudentID, Name, Age) VALUES (1, 'John', 20);
  3. UPDATE: Cập nhật dữ liệu đã có trong bảng.sqlCopy codeUPDATE Students SET Age = 21 WHERE StudentID = 1;
  4. DELETE: Xóa dữ liệu từ bảng nhưng không xóa cấu trúc bảng.sqlCopy codeDELETE FROM Students WHERE StudentID = 1;

DML là cách mà bạn tương tác với dữ liệu thực tế trong bảng, thêm sinh viên mới, cập nhật thông tin của họ, hoặc xóa họ ra khỏi hệ thống. Một điều thú vị là khi bạn sử dụng các lệnh DML, dữ liệu vẫn có thể được khôi phục lại (với điều kiện sử dụng lệnh ROLLBACK) nếu bạn chưa commit thay đổi.

So sánh giữa DDL và DML

Đặc điểmDDLDML
Chức năngĐịnh nghĩa và quản lý cấu trúc dữ liệuThao tác và quản lý dữ liệu trong bảng
Lệnh phổ biếnCREATE, ALTER, DROP, TRUNCATESELECT, INSERT, UPDATE, DELETE
Ảnh hưởngThay đổi cấu trúc của databaseThay đổi dữ liệu bên trong bảng
Khôi phụcKhông thể khôi phụcCó thể khôi phục nếu chưa commit

Khi nào nên dùng DDL và DML?

Một câu hỏi thú vị đúng không nào? Thực ra, hai nhóm lệnh này không phải đối lập nhau mà bổ trợ nhau. Khi bạn thiết kế cơ sở dữ liệu mới, việc dùng DDL là không thể tránh khỏi. Sau khi cơ sở dữ liệu đã sẵn sàng, bạn sẽ dùng DML hàng ngày để truy vấn và thao tác với dữ liệu.

Tình huống thực tế

Giả sử bạn đang xây dựng một hệ thống quản lý sinh viên. Bạn sẽ:

  1. Sử dụng DDL để tạo bảng sinh viên, định nghĩa các cột như StudentID, Name, và Age.
  2. Sử dụng DML để thêm sinh viên mới vào bảng, cập nhật thông tin sinh viên, xóa những sinh viên đã tốt nghiệp, và truy vấn thông tin của sinh viên.

Hãy thử tưởng tượng nếu bạn chỉ có DDL mà không có DML – mọi thứ chỉ là những cái vỏ rỗng! Và ngược lại, nếu chỉ có DML mà không có DDL, bạn sẽ không có nơi để lưu dữ liệu!

Tổng kết

Trong bài viết này, chúng ta đã phân biệt rõ ràng giữa DDLDML – hai khái niệm cơ bản nhưng cực kỳ quan trọng trong SQL. DDL giúp bạn thiết kế cấu trúc cơ sở dữ liệu, trong khi DML giúp bạn thao tác với dữ liệu thực tế. Hiểu rõ sự khác biệt này sẽ giúp bạn tối ưu hóa công việc với SQL, từ thiết kế cho đến quản lý dữ liệu.

Nếu bạn có câu hỏi hoặc thắc mắc nào, đừng ngại để lại bình luận phía dưới. Và nhớ đón chờ các bài viết tiếp theo trong loạt bài về SQL tại “Tôi đi tét dạo” nhé!