SQL (Structured Query Language) là ngôn ngữ truy vấn có cấu trúc được sử dụng để truy cập, thao tác và quản lý dữ liệu trong cơ sở dữ liệu quan hệ. SQL cung cấp nhiều loại câu lệnh để thực hiện các chức năng khác nhau, bao gồm: 

– Định nghĩa cấu trúc cơ sở dữ liệu: tạo, thay đổi và xóa bảng, view, stored procedure, function, v.v. 

– Thao tác dữ liệu: thêm, sửa, xóa dữ liệu trong bảng. 

– Kiểm soát truy cập: cấp quyền và thu hồi quyền truy cập cho người dùng đối với các đối tượng trong cơ sở dữ liệu. 

– Quản lý giao dịch: đảm bảo tính toàn vẹn dữ liệu bằng cách xác nhận hoặc hủy bỏ các thay đổi. 

Trong bài viết này, UniTrain sẽ giới thiệu các loại câu lệnh phổ biến nhất trong SQL cùng với cú pháp và ví dụ cụ thể để giúp bạn hiểu và áp dụng vào thực tế.

1. DDL (Data Definition Language): Ngôn ngữ định nghĩa dữ liệu

– Dùng để tạo, thay đổi và xóa cấu trúc cơ sở dữ liệu. 

CREATE DATABASE: Tạo cơ sở dữ liệu mới

Cú pháp:  

CREATE DATABASE tên_database; 

Ví dụ:  

CREATE DATABASE my_database; 

CREATE TABLE: Tạo bảng mới. 

Cú pháp:  

CREATE TABLE tên_bảng ( 

   tên_cột1 kiểu_dữ_liệu 

   tên_cột2 kiểu_dữ_liệu 

   tên_cột3 kiểu_dữ_liệu 

   … 
); 

Ví dụ: 

CREATE TABLE employees ( 
    id INT, 
    name VARCHAR(255) NOT NULL, 
    email VARCHAR(255) NOT NULL, 
    PRIMARY KEY (id) 
); 

ALTER TABLE: Thay đổi cấu trúc bảng

Cú pháp:  

ALTER TABLE tên_bảng ADD tên_cột kiểu_dữ_liệu; 

Ví dụ:  

ALTER TABLE employees ADD COLUMN salary DECIMAL(10,2); 

DROP TABLE: Xóa bảng.

Cú pháp:  

DROP TABLE tên_bảng; 

Ví dụ:  

DROP TABLE employees;

2. DML (Data Manipulation Language): Ngôn ngữ thao tác dữ liệu

– Dùng để thêm, sửa, xóa dữ liệu trong cơ sở dữ liệu. 

INSERT: Thêm dữ liệu vào bảng

Cú pháp:  

INSERT INTO tên_bảng (tên_cột1, tên_cột2, …)  

VALUES (giá_trị1, giá_trị2, …); 

Ví dụ: 

INSERT INTO employees (name, email, salary) 

VALUES (“John Doe”, “johndoe@gmail.com“, 100000); 

UPDATE: Sửa dữ liệu trong bảng

Cú pháp: 

UPDATE tên_bảng SET tên_cột = giá_trị 

WHERE điều_kiện; 

Ví dụ: 

UPDATE employees SET salary = salary * 1.1 

WHERE id = 1; 

DELETE: Xóa dữ liệu khỏi bảng

Cú pháp:  

DELETE FROM tên_bảng 

WHERE điều_kiện; 

Ví dụ:  

DELETE FROM employees 

WHERE department = “Sales”;

3. DCL (Data Control Language): Ngôn ngữ kiểm soát dữ liệu

– Dùng để cấp quyền truy cập và quản lý người dùng trong cơ sở dữ liệu. 

GRANT:

Lệnh GRANT được sử dụng để cấp quyền truy cập cho người dùng hoặc nhóm người dùng (role) đối với các đối tượng trong cơ sở dữ liệu, bao gồm bảng, view, stored procedure, function, schema, database, v.v. 

Cú pháp: 

GRANT permission ON object_name TO user_name [WITH GRANT OPTION]; 

Giải thích các thành phần: 

– permission: Quyền truy cập được cấp, ví dụ: SELECT, INSERT, UPDATE, DELETE,EXECUTE, REFERENCES, ALTER, ALL. 

– object_name: Tên đối tượng được cấp quyền. 

– user_name: Tên người dùng hoặc nhóm người dùng được cấp quyền.  – WITH GRANT OPTION: Tùy chọn cho phép người dùng được cấp quyền (grantee) cấp lại quyền cho người dùng khác. 

GRANT SELECT, INSERT, UPDATE, DELETE ON employees TO user1; 

REVOKE: 

Lệnh REVOKE được sử dụng để thu hồi quyền truy cập đã được cấp cho người dùng hoặc nhóm người dùng đối với các đối tượng trong cơ sở dữ liệu. 

Cú pháp: 
REVOKE permission ON table_name FROM user_name; 

Ví dụ:  

REVOKE SELECT, INSERT, UPDATE, DELETE ON employees FROM user1;

4. TCL (Transaction Control Language): Ngôn ngữ kiểm soát giao dịch

– Dùng để kiểm soát và quản lý các giao dịch trong hệ thống quản lý cơ sở dữ liệu.

COMMIT: 

Lệnh COMMIT được sử dụng để xác nhận và lưu trữ vĩnh viễn các thay đổi đã thực hiện trong một giao dịch (transaction) trên cơ sở dữ liệu. Sau khi COMMIT được thực thi, các thay đổi sẽ trở nên vĩnh viễn và không thể bị hủy bỏ. 

Ví dụ: 

Giả sử bạn thực hiện các thao tác sau trong một giao dịch: 

BEGIN; 
 
UPDATE employees SET salary = salary * 1.1 
WHERE department = “Sales”; 
 
INSERT INTO orders (customer_id, product_id, quantity) 
VALUES (1, 10, 2); 
 
COMMIT; 

ROLLBACK: 

Lệnh ROLLBACK được sử dụng để hủy bỏ tất cả các thay đổi đã thực hiện trong một giao dịch. Sau khi ROLLBACK được thực thi, trạng thái của cơ sở dữ liệu sẽ trở lại như trước khi giao dịch bắt đầu. 

Ví dụ: 

Sử dụng ví dụ trên, giả sử bạn gặp lỗi khi thực hiện thao tác INSERT: 

BEGIN; 
 
UPDATE employees SET salary = salary * 1.1 

WHERE department = “Sales”; 
 
INSERT INTO orders (customer_id, product_id, quantity) 

VALUES (1, 10, 2); — Lỗi xảy ra 
 
ROLLBACK; 

Xem thêm: 

Phân tích dữ liệu cùng SQL: Các câu lệnh truy vấn đơn giản

[Free download] Learn SQL Server Administration in a month of lunches

Khóa học Ứng dụng SQL trong Xử lý dữ liệu

Combo Khóa học Business Intelligence

 

Tags