- 1. Vai trò của các ràng buộc (constraints) trong SQL
- 2. Các loại ràng buộc (constraints) trong SQL
- 3. Hướng dẫn sử dụng các ràng buộc (constraints)
- 3.1. NOT NULL
- 3.1.1. Ý nghĩa
- 3.1.2. Ví dụ
- 3.2. UNIQUE
- 3.2.3. Ý nghĩa
- 3.2.4. Ví dụ
- 3.3. PRIMARY KEY
- 3.3.5. Ý nghĩa
- 3.3.6. Ví dụ
- 3.4. FOREIGN KEY
- 3.4.7. Ý nghĩa
- 3.4.8. Ví dụ
- 3.5. CHECK
- 3.5.9. Ý nghĩa
- 3.5.10. Ví dụ
- 3.6. DEFAULT
- 3.6.11. Ý nghĩa
- 3.6.12. Ví dụ
- 4. Kết luận

Trong khi thiết lập DB thì cần phải có các quy tắc để đảm bảo được lượng dữ liệu sẽ được chứa trong DB, bài hôm nay chúng ta cùng tìm hiểu các quy tắc này dựa qua các ràng buộc (constraints).
Vai trò của các ràng buộc (constraints) trong SQL
Các ràng buộc (constraints) thường được sử dụng như là quy tắc cho các dữ liệu ở table.
Ràng buộc dùng để giới hạn các dữ liệu đến table. Đảm bảo tính chính xác và rõ ràng của dữ liệu. Nếu có bất kì sự vi phạm nguyên tắc đến các ràng buộc thì thao tác đó sẽ bị huỷ.
Các loại ràng buộc (constraints) trong SQL
Ở SQL, bao gồm các loại ràng buộc chung sau đây:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
Cú pháp chung:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
constraint
....
);
Hướng dẫn sử dụng các ràng buộc (constraints)
NOT NULL
Ý nghĩa
Mặc định, các cột sẽ có giá trị là NULL.
Khi định nghĩa cột là NOT NULL, thì sẽ bảo đảm người dùng không nhập được giá trị NULL đến cột, tức là cột phải có giá trị rõ ràng.
Ví dụ
CREATE TABLE doctor (
doctor_id INT,
first_name VARCHAR(10) NOT NULL,
middle_name VARCHAR(10)
);
Với ví dụ trên, bạn hãy thử INSERT hay UPDATE một record ở doctor với giá trị ở cột first_name là NULL, thì sẽ bị lỗi và không thể thực hiện các thao tác đó.
UNIQUE
Ý nghĩa
Ràng buộc UNIQUE sẽ đảm bảo giá trị các cột luôn khác nhau.
Với PRIMARY KEY thì cũng đảm bảo việc này, với PRIMARY KEY thì các column mặc định sẽ là khác nhau mà không cần phải khai báo.
Sử dụng UNIQUE sẽ áp dụng nhiều lần ở một table, nhưng với PRIMARY KEY thì không.
Ví dụ
CREATE TABLE doctor (
doctor_id INT,
first_name VARCHAR(10),
middle_name VARCHAR(10),
id_card VARCHAR(15),
UNIQUE (id_card)
);
Từ đó, đảm bảo id_card (căn cước công dân) sẽ không bị trùng lặp giữa các bác sĩ.
PRIMARY KEY
Ý nghĩa
Đảm bảo tính duy nhất ở mỗi record trong table.
Với primary key, thì nó sẽ là UNIQUE và NOT NULL.
Mỗi table chỉ có một khoá chính, khoá chính có thể chứa 1 hoặc nhiều cột.
Ví dụ
CREATE TABLE doctor (
doctor_id INT PRIMARY KEY,
first_name VARCHAR(10),
middle_name VARCHAR(10)
);
Hoặc có thể dùng cách 2 bên dưới.
CREATE TABLE doctor (
doctor_id INT,
first_name VARCHAR(10),
middle_name VARCHAR(10),
CONSTRAINT pk_doctor PRIMARY KEY (doctor_id)
);
Với cách 2 thì có thể tạo khoá chính với nhiều cột.
FOREIGN KEY
Ý nghĩa
Đảm bảo dữ liệu luôn được liên kết giữa 2 table, nếu khác thì quá trình INSERT, UPDATE sẽ bị huỷ.
FOREIGN KEY là một cột ở table, nó tham chiếu đến PRIMARY KEY ở table khác.
Ví dụ
CREATE TABLE specialization (
specialization_id INT PRIMARY KEY,
specialization_name VARCHAR(50)
);
CREATE TABLE doctor (
doctor_id INT PRIMARY KEY,
`first_name` VARCHAR (10),
`middle_name` VARCHAR (10),
`last_name` VARCHAR (10),
date_of_birth DATE,
qualification INT,
specialization_id INT,
FOREIGN KEY (specialization_id) REFERENCES specialization(specialization_id)
);
Với cột specialization_id (chuyên khoa) ở table doctor, thì giá trị sẽ chỉ thuộc ở table specialization, nếu cố tình nhập giá trị khác thì sẽ bị lỗi và thao tác bị huỷ bỏ.
CHECK
Ý nghĩa
Giới hạn phạm vi giá trị ở cột.
Hay nói cách khác, ràng buộc này sẽ giúp kiểm tra giá trị nhập vào phải khớp với điều kiện đã được khai báo với cột đó.
Ví dụ
CREATE TABLE doctor (
doctor_id INT PRIMARY KEY,
first_name VARCHAR(10),
middle_name VARCHAR(10),
qualification INT,
CHECK (qualification >= 0)
);
Với cách khai báo như trên, thì số năm kinh nghiệm (qualification) của doctor phải lớn hơn hoặc bằng 0, nếu nhập số âm sẽ báo lỗi.
DEFAULT
Ý nghĩa
Dùng để gán giá trị mặc định đến một cột, trong trường hợp người dùng không nhập giá trị cho cột này.
Ví dụ
CREATE TABLE doctor (
doctor_id INT PRIMARY KEY,
first_name VARCHAR(10),
middle_name VARCHAR(10),
qualification INT DEFAULT 1
);
Nếu người dùng không nhập giá trị cho cột qualification, thì giá trị mặc định sẽ là 1.
Kết luận
Để giữ được dữ liệu luôn chuẩn xác, dễ thao tác và bảo trì trong tương lai, thì các ràng buộc (constraints) cũng là một yếu tố khá quan trọng.

Devwork là Nền tảng TUYỂN DỤNG IT CẤP TỐC với mô hình kết nối Nhà tuyển dụng với mạng lưới hơn 30.000 headhunter tuyển dụng ở khắp mọi nơi.Với hơn 1800 doanh nghiệp IT tin dùng Devwork để :
Tag Cloud:
Tác giả: quyenntt
Việc làm tại Devwork
Bài viết liên quan

GraphQL là gì? Cấu trúc cơ bản của 1 truy vấn GraphQL
Bạn đang nghe nhiều người nhắc đến GraphQL nhưng vẫn chưa hiểu nó là gì và có thật sự đáng học không? Đừng lo! Trong bài viết này, chúng ta sẽ cùng giải mã GraphQL là gì từ cơ bản đến ứng dụng cũng như biết khi nào nên sử dụng GraphQL cho dự án của mình....
Từ A đến Z về webhook là gì: Nguyên lý, lợi ích và webhook Discord
Nếu bạn là người mới bắt đầu tìm hiểu về lập trình hay muốn tối ưu hệ thống thông báo, webhook chắc chắn là một khái niệm không thể bỏ qua. Bài viết này sẽ giải thích chi tiết webhook là gì, tại sao webhook lại trở thành xu hướng tích hợp hiện đại và đặc biệt là cách sử dụng webhook Discord trong vài bước đơn giản.

CSRF là gì? Hiểu rõ cách thức hoạt động và cách phòng chống tấn công CSRF
Bạn có thể vô tình bị mất tài khoản chỉ bằng cách... truy cập vào một đường link? Nghe có vẻ khó tin, nhưng đó chính là bản chất của CSRF. CSRF là gì, cách hacker lợi dụng người dùng hợp pháp ra sao, và làm thế nào để phát hiện và ngăn chặn? Tất cả sẽ được giải thích rõ trong bài viết này.

SVG là gì? Cách dùng SVG hiệu quả trong thiết kế web
Bạn từng nghe đến SVG nhưng chưa hiểu rõ nó dùng để làm gì? Trong bài viết này, chúng ta sẽ cùng tìm hiểu chi tiết về định dạng ảnh SVG là gì: từ khái niệm cơ bản, cách nhúng vào HTML/CSS, đến các ứng dụng thực tế trong thiết kế web, tất cả được trình bày dễ hiểu, có ví dụ minh họa cụ thể.


Tìm hiểu Postman là gì? Cách dùng Postman để test API
Bạn muốn test API nhưng không biết bắt đầu từ đâu? Bạn đang tìm một công cụ vừa đơn giản, vừa hiệu quả để thực hành? Hãy bắt đầu với Postman, phần mềm được hàng triệu developer trên toàn thế giới tin dùng. Bài viết này sẽ hướng dẫn bạn hiểu rõ Postman là gì và cách sử dụng nó để gửi request, xem response chỉ sau vài thao tác cơ bản.

Rest API là gì? Những điều cần biết để thiết kết hiệu quả
Trong thế giới công nghệ hiện đại, cụm từ "REST API" xuất hiện ngày càng nhiều. Nghe có vẻ phức tạp, nhưng thực chất, nó lại đóng vai trò quan trọng trong việc kết nối các ứng dụng và dịch vụ mà chúng ta sử dụng hàng ngày. Dù bạn là người nội trợ bận rộn, sinh viên năng động, dân văn phòng hay chủ doanh nghiệp, hiểu về REST API sẽ giúp bạn nắm bắt xu hướng công nghệ và tận dụng tối đa lợi ích mà nó mang lại.
