Ràng buộc dữ liệu trong database

Giới thiệu nội dung bài viết

Chào các em, hôm nay chúng ta sẽ nói về chủ đề ràng buộc dữ liệu trong Database là gì nhé?

1. Ràng buộc dữ liệu

Chúng ta sử dụng ràng buộc dữ liệu khi tạo ra bảng hoặc chỉnh sửa bảng. Anh lấy ví dụ khi mình có trường dữ liệu là số điện thoại và mình muốn trường đó không được phép rỗng thì mình sẽ sử dụng từ khóa Constraint để bắt buộc người dùng phải nhập vào.

  • Cú pháp


1
2
3
4
5
6
CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
);

2. Constraint NOT NULL

  • Ví dụ dưới đây ta ràng buộc trường ID là không được NULL.


1
2
3
4
5
6
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);
  • Ví dụ cho Alter table


1
2
3
ALTER TABLE Persons

MODIFY Age int NOT NULL; 

3. Constraint Unique

Khi mình muốn dữ liệu của trường đó là duy nhất không bị trùng.


1
2
3
4
5
6
7
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT UC_Person UNIQUE (ID,LastName)
); 

4. Constraint khóa chính

Ta sử dụng từ khóa PRIMARY KEY để ràng buộc trường ID là khóa chính. Dữ liệu là duy nhất và không được trùng lặp. Trong Table luôn luôn phải có 1 khóa chính.


1
2
3
4
5
6
7
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
); 

5. Constraint khóa phụ

Ta sử dụng từ khóa FOREIGN KEY để khai báo khoá phụ và dùng để tham chiếu tới một bảng khác.


1
2
3
4
5
6
7
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
); 

6. Constraint Check

Anh lấy ví dụ mình muốn kiểm tra trường Age phải lớn hơn 18 mới cho phép được nhập vào Table. Nếu nhỏ hơn 18 thì không được. Chúng ta dùng từ khoá Check để làm việc này.


1
2
3
4
5
6
7
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CHECK (Age>=18)
);

7. Constraint Default

Khi ta muốn tạo một giá trị mặc định cho một trường. Ví dụ anh muốn đặt giá trị mặc định cho trường City là Sandnes nếu người dùng không nhập giá trị vào thì sẽ lấy giá trị Sandnes.


1
2
3
4
5
6
7
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    City varchar(255) DEFAULT 'Sandnes'
); 

8. Constraint Index

Sử dụng Index để đánh các chỉ mục của Table. Index giống như trang mục lục của một cuốn sách. Dựa vào Index thì dễ tìm kiếm thông tin hơn. Hãy tưởng tượng cuốn sách có 1000 trang. Nhờ vào Index thì chúng ta có thể dễ dàng tìm kiếm tới phần cần tìm trong cuốn sách hơn.

  • Cú pháp


1
2
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...); 
  • Ví dụ
1
2
CREATE INDEX idx_lastname
ON Persons (LastName); 
  • Xoá Index
1
2
ALTER TABLE table_name
DROP INDEX index_name; 

9. Constraint Auto Increment

Chúng ta sử dụng từ khóa Auto Increment để tăng tự động giá trị cho một trường trong bảng. Trường này thường là khóa chính. Tăng tự động có nghĩa là lúc đầu giá trị nó là 1. Khi ta thêm một dòng mới thì tự động trường đó tăng giá trị lên 2. Ta hoàn toàn có thể chỉnh sửa bước nhảy đơn vị tăng tự động.

1
2
3
4
5
6
7
CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
); 

10. Demo Video

11. Source Code

Sourcecode


Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Các khoá học lập trình MIỄN PHÍ tại đây


Comments