DDL là một trong cú pháp được sử dụng khá nhiều khi các bạn làm việc với SQL. Trong bài viết này SmartData sẽ giới thiệu với các bạn khái niệm DDL trong SQL , cú pháp và một số lệnh DDL thường dùng
Khái niệm DDL?
DDL là viết tắt của cụm từ Data Definition Language – Ngôn ngữ định nghĩa dữ liệu, đây là một ngôn ngữ được tạo ra để sửa đổi cấu trúc của các đối tượng dữ liệu trong cơ sở dữ liệu, các đối tượng dữ liệu ở đây bao gồm: bảng (table), chỉ mục (index), cấu trúc,…
Các câu lệnh DDL ngữ nghĩa khá tương đồng với ngôn ngữ lập trình để xác định cấu trúc và các lược đồ cơ sở dữ liệu
DDL bao gồm các lệnh như CREATE, DROP, ALTER, RENAME, TRUNCATE. Các lệnh được sử dụng để thêm sửa hoặc xóa đối tượng dữ liệu trong cơ sở dữ liệu. Sau đây chúng ta sẽ tìm hiểu một số câu lệnh DDL thường dùng
Một số lệnh DDL thường dùng
Lệnh CREATE
Lệnh CREATE sử dụng trong việc tạo mới một database với cú pháp
CREATE DATABASE ten_database;
Ví dụ:
CREATE DATABASE smartData;
Lệnh CREATE sử dụng tạo một bảng mới với cú pháp:
CREATE TABLE ten_bang
(
cot1 kieu_du_lieu [ PRIMARY KEY ],
cot2 kieu_du_lieu ,
cot3 kieu_du_lieu,
…
[CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, … cot_n)]
CONSTRAINT fk_ten
FOREIGN KEY (cot_con1, cot_con2, … cot_con_n)
REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n)
)
Giải thích:
- cot1, cot2,…cot_n: tên cột trong bảng
- kieu_du_lieu: là kiểu dữ liệu tương ứng với cot_n để lưu trữ vào cơ sở dữ liệu, có một số kiểu dữ liệu thường dùng như INTEGER(NUMBER), VARCHAR, DATE.
Note:
- Khái niệm khóa chính (Primary Key): Khoá chính có ý nghĩa giống như số căn cước công dân của chúng ta vậy – là nhân tố ràng buộc xác định tính duy nhất của hàng dữ liệu trong bảng. Nó giúp cơ sở dữ liệu đảm bảo tính toàn vẹn.
Trong cú pháp trên cũng đã nhắc đến cách thêm khóa chính khi tạo bảng, ta có thể xác định giá trị của trường nào là khóa chính và đánh dấu PRIMARY KEY ở sau kiểu kiểu dữ liệu. Ngoài ra nếu khoá chính được xác định các giá trị của nhiều hơn một trường (đương nhiên là các giá trị của trường này sẽ không được phép rỗng )thì ta có thể xác định khoá chính bằng câu lệnh
[CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, … cot_n)]
- Khái niệm khóa ngoại (Foreign Key): Ta đang làm việc với cơ sở dữ liệu quan hệ mà điều tạo nên quan hệ giữa các bảng đó chính là khóa ngoại, nó giúp dễ dàng xác định những kết nối khác nhau tồn tại trong một hệ thống quản lý database.
Nếu hai bảng cơ sở dữ liệu có liên quan với nhau qua một trường (thuộc tính), dùng khóa ngoại đảm bảo dữ liệu sai không được chèn vào trường đó. Ta có thể thêm ràng buộc khóa ngoại bảng cú pháp
CONSTRAINT fk_ten
FOREIGN KEY (cot_con1, cot_con2, … cot_con_n)
REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n)
Ví dụ: Ta muốn tạo bảng khohang với các trường id_hangton, id_sanpham, soluong và trường id_hangton là khóa chính, trường id_sanpham là khóa ngoại nối với trường id của bảng sanpham
Cú pháp:
CREATE TABLE khohang ( id_hangton INT PRIMARY KEY, id_sanpham INT NOT NULL, soluong INT, CONSTRAINT fk_htk_id_sanpham FOREIGN KEY (id_sanpham) REFERENCES sanpham (id) );
Lệnh ALTER
Lệnh ALTER là lệnh dùng để chỉnh sửa bảng cơ sở dữ liệu hiện có bao gồm việc thêm mới, loại bỏ, chỉnh sửa kiểu dữ liệu của cột,…
Cú pháp:
ALTER TABLE ten_bang
[ADD cot kieu_du_lieu]
[DROP COLUMN cot]
…
Ví dụ:
Thêm trường Email vào bảng customers
ALTER TABLE Customers ADD Email varchar(255);
Lệnh DROP
DROP là lệnh được sử dụng để xóa các đối tượng như bảng, chỉ mục, partition hay thậm chí là cả database. Khi sử dụng lệnh DROP bạn phải thật sự cẩn thận vì khi lệnh này thực hiện xong sẽ không thể khôi phục lại được đối tượng đã xóa.
Cú pháp:
DROP TABLE ten_bang
Ví dụ:
Xóa bảng Customers
DROP TABLE Customers
Lệnh TRUNCATE
Lệnh TRUNCATE có tác dụng tương tự lệnh DROP nhưng khác ở chỗ là lệnh TRUNCATE chỉ xoá dữ liệu trong bảng còn cấu trúc bảng vẫn được dữ nguyên, còn lệnh DROP thì xoá hết sạch mọi thứ về cấu trúc bảng và dữ liệu
Cú pháp:
TRUNCATE TABLE ten_bang;
Ví dụ:
Xoá sạch dữ liệu trong bảng Customers:
TRUNCATE TABLE Customers;
Tổng kết
Bài viết trên SmartData đã hướng dẫn các bạn một số lệnh DDL trong SQL
Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 3 tháng của SmartData
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:
1 Nhận xét