Các lệnh SQL: DQL, DDL, DML, DCL & TCL kèm ví dụ.

⚡ Tóm tắt thông minh

Các lệnh SQL được nhóm thành năm ngôn ngữ con quản lý cơ sở dữ liệu quan hệ. DDL định nghĩa cấu trúc, DML thay đổi dữ liệu, DCL kiểm soát quyền truy cập, TCL quản lý giao dịch và DQL truy xuất dữ liệu, mỗi ngôn ngữ đều có tập hợp câu lệnh và cú pháp riêng.

  • 🏗️ DDL: Các lệnh CREATE, DROP, ALTER và TRUNCATE định nghĩa và thay đổi cấu trúc của bảng và cơ sở dữ liệu.
  • ✏️ DML: Các lệnh INSERT, UPDATE và DELETE sửa đổi các hàng được lưu trữ trong một bảng.
  • 🔑 DCL: Lệnh GRANT và REVOKE cấp và thu hồi quyền truy cập vào các đối tượng trong cơ sở dữ liệu.
  • 🔄 TCL: Các lệnh COMMIT, ROLLBACK và SAVEPOINT kiểm soát cách thức lưu hoặc hoàn tác các giao dịch.
  • 🔍 DQL: Câu lệnh SELECT truy xuất các hàng đã được lọc theo mệnh đề WHERE.
  • 🗄️ Ngôn ngữ chuẩn: Mọi hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) chính, từ... MySQL đến Oracle và SQL Server, sử dụng SQL.
  • ⚠️ Điểm khác biệt chính: Cả TRUNCATE và DELETE đều xóa các hàng, nhưng TRUNCATE là câu lệnh DDL chứ không phải xóa từng hàng một.

Lệnh SQL DQL DDL DML DCL TCL

SQL là gì?

SQL là ngôn ngữ cơ sở dữ liệu được thiết kế để truy xuất và quản lý dữ liệu trong cơ sở dữ liệu quan hệ.

SQL là ngôn ngữ tiêu chuẩn để quản lý cơ sở dữ liệu. Tất cả các hệ thống RDBMS như MySQL, truy cập MS, OracleSybase, PostgreSQL và SQL Server đều sử dụng SQL làm ngôn ngữ cơ sở dữ liệu tiêu chuẩn. Ngôn ngữ lập trình SQL sử dụng nhiều lệnh khác nhau cho các thao tác khác nhau. Chúng ta sẽ tìm hiểu về các lệnh DCL, TCL, DQL, DDL và DML trong SQL với các ví dụ.

Tại sao nên sử dụng SQL?

Dưới đây là những lý do quan trọng để sử dụng SQL:

  • Nó giúp người dùng truy cập dữ liệu trong hệ thống RDBMS.
  • Nó giúp bạn mô tả dữ liệu.
  • Nó cho phép bạn xác định dữ liệu trong cơ sở dữ liệu và thao tác dữ liệu cụ thể đó.
  • Với sự trợ giúp của các lệnh SQL, bạn có thể tạo và xóa cơ sở dữ liệu và bảng.
  • SQL cho phép bạn sử dụng các hàm trong cơ sở dữ liệu, tạo các view và stored procedure.
  • Bạn có thể đặt quyền trên bảng, thủ tục và dạng xem.

Tóm tắt lịch sử của SQL

Dưới đây là những địa danh quan trọng từ... lịch sử của SQL:

  • 1970 – Tiến sĩ Edgar F. “Ted” Codd mô tả mô hình quan hệ cho cơ sở dữ liệu.
  • 1974 – Ngôn ngữ truy vấn có cấu trúc (Structured Query Language) xuất hiện, ban đầu có tên là SEQUEL tại IBM.
  • 1979 - Oracle đã phát hành cơ sở dữ liệu dựa trên SQL đầu tiên được bán thương mại, dựa trên... IBMNguyên mẫu nghiên cứu Hệ thống R của 's.
  • 1986 – ANSI công bố tiêu chuẩn SQL đầu tiên, SQL-86.
  • 1989 – SQL-89 ra đời như phiên bản sửa đổi đầu tiên của tiêu chuẩn này.
  • 1992 – SQL-92 (SQL2) trở thành chuẩn mực cơ bản chính vẫn được hầu hết các cơ sở dữ liệu tham chiếu cho đến ngày nay.
  • 1999 – SQL:1999 (SQL3) ra mắt với các tính năng như trigger, truy vấn đệ quy và lập trình hướng đối tượng.
  • 2003 – SQL:2003 bổ sung các hàm cửa sổ, trình tạo chuỗi và các tính năng liên quan đến XML.
  • 2006 – SQL:2006 bổ sung hỗ trợ cho Ngôn ngữ truy vấn XML (XQuery).
  • 2008 – SQL:2008 giới thiệu câu lệnh TRUNCATE và trigger INSTEAD OF.
  • 2011 – SQL:2011 đã cải thiện khả năng hỗ trợ cho cơ sở dữ liệu thời gian.
  • 2016 – SQL:2016 bổ sung hỗ trợ JSON và tính năng khớp mẫu hàng (MATCH_RECOGNIZE).
  • 2019 – SQL/MDA (Phần 15) bổ sung hỗ trợ mảng đa chiều vào tiêu chuẩn.
  • 2023 – SQL:2023 đã bổ sung kiểu dữ liệu JSON gốc và các truy vấn đồ thị thuộc tính (SQL/PGQ).
  • 2024 – GQL, ngôn ngữ cơ sở dữ liệu ISO mới đầu tiên kể từ SQL, được công bố như một tiêu chuẩn bổ trợ cho truy vấn đồ thị.
  • 2026 – SQL:2023 vẫn là tiêu chuẩn hiện hành, phiên bản sửa đổi tiếp theo đang được phát triển tại ISO/IEC.

Các loại lệnh SQL

Dưới đây là năm loại lệnh SQL được sử dụng rộng rãi:

  • Ngôn ngữ định nghĩa dữ liệu (DDL)
  • Dữ liệu Manipulation Language (DML)
  • Ngôn ngữ kiểm soát dữ liệu (DCL)
  • Ngôn ngữ kiểm soát giao dịch (TCL)
  • Ngôn ngữ truy vấn dữ liệu (DQL)
Các loại lệnh SQL
Các loại SQL

Bảng dưới đây tóm tắt năm hạng mục trước khi mỗi hạng mục được trình bày chi tiết.

Phân loại Mục đích Các lệnh chính
DDL Xác định cấu trúc TẠO, XÓA, SỬA ĐỔI, CẮT NGẮN
DML sửa đổi dữ liệu CHÈN, CẬP NHẬT, XÓA
DCL Kiểm soát quyền truy cập CẤP, THU HỒI
TCL Quản lý các giao dịch COMMIT, ROLLBACK, SAVEPOINT
DQL Khôi phục dữ liệu CHỌN

DDL là gì?

Ngôn ngữ định nghĩa dữ liệu (DDL) giúp bạn định nghĩa cấu trúc hoặc lược đồ của cơ sở dữ liệu. Hãy cùng tìm hiểu về các lệnh DDL cùng cú pháp của chúng. Các lệnh DDL chính trong SQL là CREATE, DROP, ALTER và TRUNCATE.

TẠO NÊN

Lệnh CREATE được sử dụng để định nghĩa cấu trúc hoặc lược đồ của cơ sở dữ liệu:

Cú pháp:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

Ví dụ:

Create database university;
Create table students;
Create view for_students;

Thả

Lệnh DROP loại bỏ các bảng và cơ sở dữ liệu khỏi hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).

Cú pháp:

DROP TABLE ;

Ví dụ:

Drop object_type object_name;
Drop database university;
Drop table student;

THAY ĐỔI

Lệnh ALTER cho phép bạn thay đổi cấu trúc của cơ sở dữ liệu.

Cú pháp: Để thêm một cột mới vào bảng:

ALTER TABLE table_name ADD column_name COLUMN-definition;

Để sửa đổi một cột hiện có trong bảng:

ALTER TABLE MODIFY(COLUMN DEFINITION....);

Ví dụ:

Alter table guru99 add subject varchar;

CẮT CẮT

Lệnh này được sử dụng để xóa tất cả các hàng khỏi bảng và giải phóng không gian chứa bảng.

Cú pháp:

TRUNCATE TABLE table_name;

Ví dụ:

TRUNCATE table students;

Ngôn ngữ thao tác dữ liệu là gì?

Ngôn ngữ thao tác dữ liệu (DML) cho phép bạn sửa đổi thể hiện cơ sở dữ liệu bằng cách chèn, sửa đổi và xóa dữ liệu. Nó chịu trách nhiệm thực hiện tất cả các loại sửa đổi dữ liệu trong cơ sở dữ liệu. Các lệnh DML quan trọng trong SQL là:

  • CHÈN
  • CẬP NHẬT
  • DELETE

CHÈN

Câu lệnh này được sử dụng để chèn dữ liệu vào các hàng của bảng.

Cú pháp:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
Or
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);

Ví dụ:

INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');

CẬP NHẬT

Lệnh này được sử dụng để cập nhật hoặc sửa đổi giá trị của một cột trong bảng.

Cú pháp:

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

Ví dụ:

UPDATE students
SET FirstName = 'Jhon', LastName= 'Wick'
WHERE StudID = 3;

DELETE

Lệnh này được sử dụng để xóa một hoặc nhiều hàng khỏi bảng.

Cú pháp:

DELETE FROM table_name [WHERE condition];

Ví dụ:

DELETE FROM students
WHERE FirstName = 'Jhon';

DCL là gì?

DCL (Ngôn ngữ điều khiển dữ liệu) bao gồm các lệnh như GRANT và REVOKE, hữu ích để cấp quyền và phân quyền. Các lệnh khác điều khiển các tham số của hệ thống cơ sở dữ liệu.

Cấp

Lệnh này được sử dụng để cấp quyền truy cập cho người dùng vào cơ sở dữ liệu.

Cú pháp:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

Ví dụ:

GRANT SELECT ON Users TO'Tom'@'localhost;

Revđược

Lệnh này hữu ích để thu hồi quyền truy cập từ người dùng.

Cú pháp:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

Ví dụ:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

TCL là gì?

Ngôn ngữ điều khiển giao dịch, hay các lệnh TCL, xử lý các giao dịch trong cơ sở dữ liệu. Chúng hoạt động trực tiếp với các trạng thái được mô tả bên dưới. quản lý giao dịch.

Cam kết

Lệnh này được sử dụng để lưu tất cả các giao dịch vào cơ sở dữ liệu.

Cú pháp:

Commit;

Ví dụ:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

Rollback

Lệnh Rollback cho phép bạn hoàn tác các giao dịch chưa được lưu vào cơ sở dữ liệu.

Cú pháp:

ROLLBACK;

Ví dụ:

DELETE FROM Students
WHERE RollNo =25;

TIẾT KIỆM

Lệnh này giúp bạn thiết lập điểm lưu (savepoint) trong một giao dịch.

Cú pháp:

SAVEPOINT SAVEPOINT_NAME;

Ví dụ:

SAVEPOINT RollNo;

DQL là gì?

Ngôn ngữ truy vấn dữ liệu (DQL) được sử dụng để lấy dữ liệu từ cơ sở dữ liệu. Nó chỉ sử dụng một lệnh duy nhất, đó là SELECT.

CHỌN

Lệnh này giúp bạn chọn các thuộc tính dựa trên điều kiện được mô tả bởi mệnh đề WHERE.

Cú pháp:

SELECT expressions
FROM TABLES
WHERE conditions;

Ví dụ:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

Xóa so với cắt bớt so với loại bỏ

Ba lệnh này đều xóa dữ liệu, nhưng chúng khác nhau ở chỗ dữ liệu bị xóa là gì và liệu hành động đó có thể được hoàn tác hay không. Nhầm lẫn giữa chúng là một lỗi thường gặp của người mới bắt đầu.

Yếu tố DELETE CẮT CẮT Thả
Phân loại DML DDL DDL
Loại bỏ Các hàng đã chọn Tất cả các hàng Toàn bộ cái bàn
Mệnh đề WHERE Được phép Không được phép Không áp dụng
Rollback Có thể Thường không Không thể
Cấu trúc được giữ nguyên Không

Tóm lại, hãy sử dụng DELETE để xóa các hàng cụ thể, TRUNCATE để làm trống bảng một cách nhanh chóng và DROP để loại bỏ hoàn toàn bảng.

Câu Hỏi Thường Gặp

DELETE là lệnh DML dùng để xóa các hàng đã chọn và có thể hoàn tác. TRUNCATE là lệnh DDL dùng để xóa tất cả các hàng cùng một lúc, nhanh hơn và thường không thể hoàn tác.

Chúng thuộc về Ngôn ngữ Điều khiển Dữ liệu, hay DCL. Lệnh GRANT cấp cho người dùng quyền truy cập vào một đối tượng trong cơ sở dữ liệu, và lệnh REVOKE thu hồi các quyền đó, cả hai cùng nhau kiểm soát quyền truy cập và bảo mật.

Đúng vậy. Các mô hình chuyển đổi văn bản thành SQL biến yêu cầu bằng ngôn ngữ tự nhiên thành câu lệnh SELECT hoặc các câu lệnh khác dựa trên một lược đồ đã biết. Luôn luôn xem lại truy vấn được tạo ra trước khi chạy nó trên dữ liệu thực tế.

Đúng vậy. Bằng cách đọc kế hoạch thực thi, AI có thể đề xuất một chỉ mục, một phép nối được viết lại hoặc một thay đổi trong mệnh đề WHERE để giảm chi phí. Đề xuất này cần được kiểm tra, vì kế hoạch nhanh nhất phụ thuộc vào dữ liệu.

DDL định nghĩa hoặc thay đổi cấu trúc của cơ sở dữ liệu, chẳng hạn như bảng và cột. DML thay đổi dữ liệu được lưu trữ bên trong cấu trúc đó, thông qua các thao tác INSERT, UPDATE và DELETE. Sự khác biệt chính nằm ở cấu trúc so với nội dung.

Tóm tắt bài viết này với: