Data Definition Language (DDL)
Trong thế giới của cơ sở dữ liệu, Ngôn ngữ Định nghĩa Dữ liệu (DDL) đóng vai trò quan trọng trong việc xây dựng và quản lý cấu trúc dữ liệu. DDL là tập hợp các lệnh và câu truy vấn sử dụng để định nghĩa và thay đổi các thành phần quan trọng của cơ sở dữ liệu. Dưới đây, chúng ta sẽ tìm hiểu về các khái niệm cơ bản trong DDL và cách chúng hoạt động.
1. CREATE
Lệnh CREATE trong DDL được sử dụng để tạo các đối tượng cơ sở dữ liệu mới, bao gồm cả bảng, chỉ mục và cơ sở dữ liệu chính.
Ví dụ: Tạo cơ sở dữ liệu mới có tên "mydb"
CREATE DATABASE mydb;
Ví dụ: Tạo một bảng mới có tên là "students"
CREATE TABLE students ( student_id INT PRIMARY KEY, student_name VARCHAR(50), age INT
);
Ví dụ: Tạo chỉ mục cho cột "product_name" trong bảng "products"
CREATE INDEX idx_product_name
ON products (product_name);
2. ALTER
Lệnh ALTER cho phép bạn thay đổi cấu trúc của các đối tượng cơ sở dữ liệu hiện có. Điều này bao gồm thêm, sửa đổi hoặc xóa cột từ bảng.
Ví dụ: Thêm cột "email" vào bảng "students"
ALTER TABLE students
ADD email VARCHAR(100);
3. DROP
Lệnh DROP được sử dụng để xóa các đối tượng cơ sở dữ liệu không còn cần thiết như bảng, chỉ mục hoặc cơ sở dữ liệu chính.
Ví dụ: Xóa bảng "products"
DROP TABLE products;
4. TRUNCATE
Lệnh TRUNCATE cũng được sử dụng để xóa dữ liệu, nhưng nó giữ lại cấu trúc bảng. Nó xóa tất cả các dòng trong bảng. Vì vậy nếu xóa toàn bộ dữ liệu bảng Truncate sẽ nhanh hơn delete. Nhưng hãy cẩn thận khi dùng nhé.
Ví dụ: Xóa tất cả dữ liệu trong bảng "orders"
TRUNCATE TABLE orders;
5. RENAME
Lệnh RENAME được sử dụng để đổi tên đối tượng cơ sở dữ liệu hiện có.
Ví dụ: Đổi tên bảng "old_table" thành "new_table"
ALTER TABLE old_table
RENAME TO new_table;
Các lệnh DDL này là cơ bản trong việc quản lý cấu trúc dữ liệu trong SQL. Chúng cho phép bạn xây dựng và duy trì cơ sở dữ liệu của mình một cách linh hoạt và hiệu quả.
Data Manipulation Language (DML)
Khi nói về cơ sở dữ liệu, chúng ta thường phải thực hiện các hoạt động như thêm, sửa đổi hoặc xóa dữ liệu. Để thực hiện các tác vụ này, chúng ta sử dụng Ngôn ngữ Manipulation Dữ liệu (DML) trong SQL. DML là một phần quan trọng của SQL, và nó cho phép chúng ta 4 thao tác với dữ liệu trong các bảng cơ sở dữ liệu. Dưới đây là 4 khái niệm cơ bản trong DML:
1. SELECT
SELECT là lệnh cơ bản trong DML và được sử dụng để truy vấn dữ liệu từ một hoặc nhiều bảng. Bạn có thể chỉ định các cột cụ thể bạn muốn lấy dữ liệu từ bảng và áp dụng các điều kiện để lọc kết quả.
Ví dụ: Lấy danh sách tên và tuổi của tất cả học sinh có tuổi lớn hơn 18.
SELECT student_name, age
FROM students
WHERE age > 18;
2. INSERT
INSERT là lệnh được sử dụng để chèn dữ liệu mới vào bảng. Bạn cung cấp các giá trị cho các cột tương ứng trong bảng để thêm dòng dữ liệu mới.
Ví dụ: Chèn thông tin một học sinh mới vào bảng "students".
INSERT INTO students (student_name, age)
VALUES ('John', 20);
3. UPDATE
UPDATE là lệnh dùng để cập nhật dữ liệu trong bảng. Bạn chỉ định bảng và cột bạn muốn cập nhật, cũng như giá trị mới bạn muốn đặt.
Ví dụ: Cập nhật tuổi của học sinh có tên là "Alice" thành 22.
UPDATE students
SET age = 22
WHERE student_name = 'Alice';
4. DELETE
DELETE là lệnh dùng để xóa dữ liệu khỏi bảng. Bạn có thể xóa tất cả dữ liệu từ bảng hoặc chỉ xóa các dòng thỏa mãn một điều kiện cụ thể.
Ví dụ: Xóa tất cả học sinh có tuổi dưới 18.
DELETE FROM students
WHERE age < 18;
DML cho phép chúng ta thực hiện các thao tác quan trọng để quản lý dữ liệu trong cơ sở dữ liệu. Bằng cách sử dụng các lệnh SELECT, INSERT, UPDATE và DELETE, chúng ta có khả năng tương tác với dữ liệu một cách linh hoạt và hiệu quả.
Data Control Language (DCL)
Khi làm việc với cơ sở dữ liệu, không chỉ quan trọng việc thêm, sửa đổi và xóa dữ liệu, mà còn quan trọng là quản lý quyền truy cập và bảo mật dữ liệu. Đó là nhiệm vụ của Ngôn ngữ Điều khiển Dữ liệu (DCL) trong SQL. DCL là một phần quan trọng của SQL và được sử dụng để kiểm soát quyền truy cập và phân quyền cho người dùng và vai trò. Dưới đây là một số khái niệm cơ bản và ví dụ về DCL:
1. GRANT (Cấp quyền)
GRANT là lệnh được sử dụng để cấp quyền cho người dùng hoặc vai trò. Nó cho phép người quản trị cơ sở dữ liệu quyết định những gì một người dùng cụ thể hoặc vai trò cụ thể có thể thực hiện trong cơ sở dữ liệu.
Ví dụ: Cấp quyền SELECT cho người dùng "user1" trên bảng "employees".
GRANT SELECT ON employees TO user1;
2. REVOKE (Thu hồi quyền)
REVOKE là lệnh được sử dụng để thu hồi quyền truy cập đã được cấp cho người dùng hoặc vai trò. Nó cho phép quản trị viên hủy bỏ quyền mà người dùng hoặc vai trò đã có.
Ví dụ: Thu hồi quyền SELECT cho người dùng "user1" trên bảng "employees".
REVOKE SELECT ON employees FROM user1;
3. CREATE ROLE (Tạo vai trò)
CREATE ROLE là lệnh được sử dụng để tạo một vai trò mới trong cơ sở dữ liệu. Vai trò này có thể được cấp quyền truy cập và sử dụng để tổ chức và quản lý quyền.
Ví dụ: Tạo một vai trò có tên "admin".
CREATE ROLE admin;
4. ALTER ROLE (Sửa đổi vai trò)
ALTER ROLE là lệnh được sử dụng để sửa đổi thông tin về một vai trò đã tồn tại, bao gồm cả việc thêm và xóa quyền.
Ví dụ: Thêm quyền SELECT cho vai trò "admin".
ALTER ROLE admin ADD SELECT;
5. DROP ROLE (Xóa vai trò)
DROP ROLE là lệnh được sử dụng để xóa một vai trò đã tồn tại khỏi cơ sở dữ liệu.
Ví dụ: Xóa vai trò "admin".
DROP ROLE admin;
DCL cho phép quản trị viên cơ sở dữ liệu kiểm soát quyền truy cập và bảo mật dữ liệu trong cơ sở dữ liệu. Bằng cách sử dụng các lệnh GRANT, REVOKE, CREATE ROLE, ALTER ROLE và DROP ROLE, họ có khả năng quản lý quyền truy cập của người dùng và vai trò một cách linh hoạt và an toàn.
Data Query Language (DQL)
Khi nói về SQL, chúng ta thường nói đến ba phần chính:
- DDL để định nghĩa cấu trúc cơ sở dữ liệu
- DML để thao tác và thay đổi dữ liệu
- DCL để quản lý bảo mật và quyền truy cập.
Tuy nhiên, còn một phần quan trọng khác của SQL đó là DQL.
DQL là gì?
DQL là phần của SQL được sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu. Nó cho phép chúng ta lựa chọn, trích xuất và hiển thị dữ liệu mà chúng ta quan tâm từ các bảng và cơ sở dữ liệu. DQL là công cụ mạnh mẽ cho việc truy cập thông tin và tạo báo cáo từ dữ liệu đã lưu trữ.
Hãy xem DQL chi tiết ở chapter tiếp theo nhé~