Tại sao dùng khoá ngoại
Câu 1: Ràng buộc khóa ngoại là gì? Tại sao các ràng buôc như vậy là quan trọng? Tính toàn vẹn tham chiếu là gì?
Ràng buộc khóa ngoại trong bảng cơ sở dữ liệu là trường phù hợp với trường khóa chính trong bảng khác. Trường khóa ngoại được sử dụng để tạo ra mối quan hệ với trường khóa chính của bảng chính. Điều này ngăn cản bạn chèn thêm bất kỳ dữ liệu không hợp lệ trong trường khóa ngoại vì trường khóa ngoại chỉ chấp nhận những giá trị đã có trong trường khóa chính. Tính toàn vẹn tham chiếu là sự nhất quán về CSDL giữa 2 quan hệ tham chiếu với nhau. Câu 6. Hãy cho biết điểm mạnh và điểm yếu của cơ chế trigger. Trình bày sự tương phản giữa trigger với các ràng buộc toàn vẹn khác được hỗ trợ bởi SQL. Một bảng chỉ có thể có MỘT khóa chính và trong bảng, khóa chính này có thể bao gồm một hoặc nhiều cột (trường). Ví dụ:
SQL sau tạo một KHÓA CHÍNH trên cột “ID” khi bảng “Persons” được tạo: MySQL:
SQL Server / Oracle / MS Access:
Để cho phép đặt tên cho ràng buộc KHÓA CHÍNH và để xác định ràng buộc KHÓA CHÍNH trên nhiều cột, hãy sử dụng cú pháp SQL sau: MySQL / SQL Server / Oracle / MS Access:
Lưu ý: Trong ví dụ trên chỉ có MỘT KHÓA CHÍNH (PK_Person). Tuy nhiên, GIÁ TRỊ của khóa chính được tạo thành từ HAI CỘT (ID + LastName).
Để tạo ràng buộc CHÍNH CHÍNH trên cột “ID” khi bảng đã được tạo, hãy sử dụng SQL sau: MySQL / SQL Server / Oracle / MS Access:
Để cho phép đặt tên cho ràng buộc KHÓA CHÍNH(PRIMARY KEY) và để xác định ràng buộc KHÓA CHÍNH(PRIMARY KEY) trên nhiều cột, hãy sử dụng cú pháp SQL sau: MySQL / SQL Server / Oracle / MS Access:
Lưu ý: Nếu bạn sử dụng câu lệnh ALTER TABLE để thêm khóa chính, (các) cột khóa chính phải được khai báo không chứa giá trị NULL (khi bảng được tạo lần đầu tiên).
Để loại bỏ ràng buộc Khoá CHÍNH, hãy sử dụng SQL sau: MySQL:
SQL Server / Oracle / MS Access:
2. Khoá ngoại(FOREIGN KEY) trong SQLKEY FOREIGN là một khóa ngoại dùng để liên kết hai bảng với nhau. KHÓA NGOẠI là một trường (hoặc tập hợp các trường) trong một bảng tham chiếu đến KHÓA CHÍNH trong một bảng khác. Bảng chứa khóa ngoại được gọi là bảng con và bảng chứa khóa ứng viên được gọi là bảng tham chiếu hoặc bảng cha. Nhìn vào hai bảng sau: Bảng Persons: PersonIDLastNameFirstNameAge1HOÁTINH302LANTƯỚNG233XUÂNTÁ20Bảng Orders: OrderIDOrderNumberPersonID1778953244678332245624245621Lưu ý rằng cột “PersonID” trong bảng “Order” trỏ đến cột “PersonID” trong bảng “Person”. Cột “PersonID” trong bảng “Person” là TỪ KHÓA CHÍNH() trong bảng “Person”. Cột “PersonID” trong bảng “Đơn hàng” là một TỪ KHÓA NGOẠI TỆ trong bảng “Đơn hàng”. Ràng buộc FOREIGN KEY được sử dụng để ngăn chặn các hành động phá hủy liên kết giữa các bảng. Ràng buộc NGOẠI KHÓA cũng ngăn không cho dữ liệu không hợp lệ được chèn vào cột khóa ngoại, vì nó phải là một trong những giá trị có trong bảng mà nó trỏ tới.
SQL sau tạo một TỪ KHÓA NGOẠI trên cột “PersonID” khi bảng “Orders” được tạo: MySQL:
SQL Server / Oracle / MS Access:
Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau: MySQL / SQL Server / Oracle / MS Access:
Để tạo ràng buộc NGOẠI KHÓA trên cột “PersonID” khi bảng “Orders” đã được tạo, hãy sử dụng SQL sau: MySQL / SQL Server / Oracle / MS Access:
Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau: MySQL / SQL Server / Oracle / MS Access:
Để loại bỏ ràng buộc NGOẠI KHÓA, hãy sử dụng SQL sau: MySQL:
SQL Server / Oracle / MS Access:
Full series tự học SQL từ cơ bản tới nâng cao tại đây nha. Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa: |