Các loại ràng buộc trong SQL (Phần 1)-Ràng buộc khóa chính,khóa ngoại

  • Ý nghĩa các từ khóa trong SQL
  • Cách thao tác với dữ liệu của bảng trong cơ sở dữ liệu (SQL)
  • Hướng dẫn cơ bản thao tác với Table trong Database (SQL)
  • 5 câu hỏi thường gặp về Data Warehouse
  • Hệ thống cơ sở dữ liệu

bảng thứ,td{biên giới:1px solid;padding:1px}bảng{biên giới-sụp đổ: sụp đổ}

Khái niệm ràng buộc trong SQL

Các ràng buộc trong SQL được sử dụng để chỉ định các quy tắc cho dữ liệu trong một bảng.

Các ràng buộc được sử dụng để giới hạn loại dữ liệu có thể đi vào một bảng. Điều này đảm bảo tính chính xác và độ tin cậy của dữ liệu trong một bảng. Nếu có bất kỳ vi phạm nào giữa ràng buộc và thao tác dữ liệu, thao tác đó sẽ bị hủy.

Các loại ràng buộc phổ biến

SQL cung cấp một số loại ràng buộc phổ biến như:

  • NOT NULL: Đảm bảo dữ liệu không trống hoặc thiếu
  • ĐỘC ĐÁO: Đảm bảo dữ liệu trong một trường không bị trùng lặp trong các bản ghi của cùng một bảng
  • DEFAULT: Đặt giá trị mặc định cho một cột nếu không có giá trị nào được chỉ định (khi chèn dữ liệu)
  • KIỂM TRA: Đảm bảo rằng các giá trị trong một cột thỏa mãn một điều kiện cụ thể
  • PRIMARY KEY: đảm bảo rằng giá trị dữ liệu của một trường là duy nhất và không thể rỗng, được sử dụng làm định danh cho một bản ghi trong bảng
  • FOREIGN KEY: Để đảm bảo mối quan hệ với một bản ghi trong bảng khác, giá trị của trường khóa ngoại phải tương ứng với giá trị của trường khóa chính trong bảng khác.
  • CREATE INDEX: Dùng để tạo và lấy dữ liệu từ cơ sở dữ liệu một cách nhanh chóng

Cách khai báo ràng buộc

Các ràng buộc có thể được khai báo khi khởi tạo bảng bằng câu lệnh CREATE TABLE hoặc sau khi bảng đã được tạo bằng câu lệnh ALTER TABLE.

Xem thêm bài viết hay:  40 lời chúc mừng sinh nhật tuổi 19 cho bản thân và người thân yêu

Cú pháp cơ bản với việc tạo bảng:

TẠO BẢNG tên_bảng ( ràng buộc kiểu dữ liệu cột1, ràng buộc kiểu dữ liệu cột2, ràng buộc kiểu dữ liệu cột3, …. );

Ràng buộc KEY CHÍNH

Ràng buộc khóa chính đảm bảo rằng giá trị dữ liệu của một trường là duy nhất và không thể rỗng, được sử dụng làm mã định danh cho một bản ghi trong bảng.

1. Thêm khóa chính khi tạo bảng

Trường hợp bảng chỉ có một trường làm khóa chính:

mysql Máy chủ SQL/Truy cập Oracle/MS
TẠO BẢNG Người ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) ); TẠO BẢNG Người ( ID int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );

Trường hợp bảng có nhiều trường kết hợp làm khóa chính hay còn gọi là khóa chính tổng hợp:

Truy cập MySQL/SQL Server/Oracle/MS
TẠO BẢNG Người ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT PK_Person PRIMARY KEY (ID,LastName) );

Lưu ý: cú pháp trên cũng có thể được sử dụng để xác định tên của ràng buộc.

2. Thêm khóa chính sau khi tạo bảng

Ta muốn thêm khóa chính sau khi tạo bảng có thể sử dụng từ khóa ALTER TABLE.

Truy cập MySQL/SQL Server/Oracle/MS

(căn bản)

Truy cập MySQL/SQL Server/Oracle/MS

(đặt tên khóa chính + đặt khóa chính với nhiều trường)

ALTER TABLE PersonsADD PRIMARY KEY (ID);

ALTER TABLE PersonsADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);

Lưu ý: Nếu bạn sử dụng ALTER TABLE để thêm khóa chính, các cột khóa chính phải được khai báo là không phải NULL (khi bảng được tạo lần đầu tiên)

3. Bỏ ràng buộc khóa chính

mysql Máy chủ SQL/Truy cập Oracle/MS
THAY ĐỔI BẢNG PersonsDROP PRIMARY KEY; ALTER TABLE PersonsDROP CONSTRAINT PK_Person;
Xem thêm bài viết hay:  Bộ sưu tập các bức tranh tô màu hoa cúc cho bé thỏa sức tô màu

Ràng buộc khóa ngoại

Ràng buộc khóa ngoại đảm bảo rằng liên quan đến một bản ghi trong bảng khác, giá trị của trường khóa ngoại phải tương ứng với giá trị của trường khóa chính trong bảng khác.

Bảng có khóa ngoại được gọi là bảng con và bảng có khóa chính được gọi là bảng được tham chiếu hoặc bảng cha.

Giả sử chúng ta có 2 bảng sau:

bảng người

ID cá nhân Họ Tên đầu tiên Tuổi
đầu tiên hansen ola 30
2 Svendson tove 23
3 Petersen kari 20
Bảng đơn hàng

Mã đặt hàng Số thứ tự ID cá nhân
đầu tiên 77895 3
2 44678 3
3 22456 2
4 24562 đầu tiên

Ràng buộc FOREIGN KEY ngăn không cho dữ liệu không hợp lệ được chèn vào cột khóa ngoại, bởi vì nó phải là một trong các giá trị có trong bảng cha.

Lưu ý rằng cột “PersonID” trong bảng “Orders” đề cập đến cột “PersonID” trong bảng “Persons”. Cột “PersonID” trong bảng “Persons” là KHÓA CHÍNH của bảng “Persons”. Cột “PersonID” trong bảng “Orders” là một FOREIGN KEY của bảng “Orders”.

1. Thêm khóa ngoại khi tạo bảng

MYSQL Máy chủ SQL/Truy cập Oracle/MS
TẠO BẢNG Đơn đặt hàng ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) THAM KHẢO Persons(PersonID));

TẠO BẢNG Đơn đặt hàng ( OrderID int NOT NULL PRIMARY KEY, OrderNumber int NOT NULL, PersonID int

TÀI LIỆU THAM KHẢO KHÓA NƯỚC NGOÀI Persons(PersonID));

2. Thêm khóa ngoại sau khi tạo bảng

Chúng ta muốn thêm khóa ngoại sau khi đã tạo bảng có thể sử dụng từ khóa ALTER TABLE.

Truy cập MySQL/SQL Server/Oracle/MS

(căn bản)

Truy cập MySQL/SQL Server/Oracle/MS

(đặt tên khóa ngoại + khóa ngoại có nhiều trường)

THAY ĐỔI BẢNG Đơn đặt hàng THÊM KHÓA NGOẠI TỆ (PersonID) TÀI LIỆU THAM KHẢO Persons(PersonID);

ALTER TABLE OrderADD CONSTRAINT FK_PersonOrderFOREIGN KEY (PersonID) THAM KHẢO Persons(PersonID);
Xem thêm bài viết hay:  TRỌN BỘ 999+ Tin nhắn chúc buổi tối ngọt ngào và vui vẻ

3. Loại bỏ ràng buộc khóa ngoại

mysql Máy chủ SQL/Truy cập Oracle/MS
THAY ĐỔI BẢNG Đơn đặt hàngDROP NGOẠI KHÓA FK_PersonOrder; THAY ĐỔI ĐƠN HÀNG BẢNG DROP CONSTRAINT FK_PersonOrder;

Sự khác biệt giữa KHÓA CHÍNH và KHÓA NGOẠI TỆ

món chính khóa ngoại
Khóa chính xác định duy nhất một bản ghi trong bảng. Khóa ngoại là một trường trong một bảng và là khóa chính trong một bảng khác.
Khóa chính không chấp nhận giá trị null. Khóa ngoại có thể chấp nhận nhiều null.
Theo mặc định, khóa chính là chỉ mục được nhóm và dữ liệu trong bảng cơ sở dữ liệu được sắp xếp theo thứ tự của chuỗi chỉ mục được nhóm. Khóa ngoại không tự động tạo chỉ mục, được nhóm hoặc không được nhóm. Bạn có thể tạo chỉ mục trên khóa ngoại theo cách thủ công.
Chúng ta chỉ có thể có một khóa chính trong một bảng. Chúng ta có thể có nhiều khóa ngoại trong một bảng.

Nguồn & Tài liệu tham khảo

  1. https://www.educba.com/primary-key-vs-foreign-key/
  2. https://www.w3schools.com/sql/sql_constraints.asp
  3. https://viblo.asia/p/khac-biet-giua-khoa-chinh-va-khoa-ngoi-trong-sql-924lJMdWZPM
  4. Ý nghĩa từ khóa trong sql

Sinh viên Phạm Tuấn Vũ

Bạn thấy bài viết Các loại ràng buộc trong SQL (Phần 1)-Ràng buộc khóa chính,khóa ngoại có khắc phục đươc vấn đề bạn tìm hiểu ko?, nếu ko hãy comment góp ý thêm về Các loại ràng buộc trong SQL (Phần 1)-Ràng buộc khóa chính,khóa ngoại bên dưới để Trường Cao đẳng Nghề Khách sạn Du lịch Quốc tế IMPERIAL có thể thay đổi & cải thiện nội dung tốt hơn cho các bạn nhé! Cám ơn bạn đã ghé thăm Website: imperialhotelschool.edu.vn của Trường Cao đẳng Nghề Khách sạn Du lịch Quốc tế IMPERIAL

Nhớ để nguồn: Các loại ràng buộc trong SQL (Phần 1)-Ràng buộc khóa chính,khóa ngoại của website imperialhotelschool.edu.vn

Chuyên mục: Kiến thức chung

Viết một bình luận