Cách Tạo Khóa Ngoại Trong Sql Server 2008, Khóa Ngoại Foreign Key Trong Sql Server

Dẫn nhập

Trong bài trước, chúng ta đã tìm hiểu về KHÓA CHÍNHvà cách tạo, xóa, đặt tên cho khóa chính trong một Table. Ngoài ra, Kteam cũng đã đề cập đến một thành phần khác có khả năng tham chiếu đến Table thông qua Khóa chính đó làKHÓA NGOẠI.Bạn đang xem: Cách tạo khóa ngoại trong sql server 2008

Tại sao có khóa chính lại còn cần khóa ngoại? Khóa ngoại sử dụng để làm gì? Chúng ta sẽ cùng nhau tìm hiểu về nó nhé!

Nội dung chính

Để theo dõi tốt nhất bài này, bạn nên xem qua bài:

Trong bài này, chúng ta sẽ cùng nhau tìm hiểu một số vấn đề sau:

Khóa ngoại là gì? Thao tác với khóa ngoại. Sơ đồ diagram.

Khóa ngoại là gì?

Khóa ngoại là gì? Thao tác với khóa ngoại. Sơ đồ diagram.

Các table trong một database không tồn tại độc lập mà còn có mối quan hệ mật thiết với nhau về mặt dữ liệu.Bạn đang xem: Cách tạo khóa ngoại trong sql server 2008

Mối quan hệ này được thể hiện thông qua ràng buộc giá trị dữ liệuxuất hiện ở bảng này phải có xuất hiện trước trong một bảng khác.

Bạn đang xem: Cách tạo khóa ngoại trong sql server 2008

Mối quan hệ giữa các table trong database nhằm đảm bảo được tính đúng đắn và hợp lệcủa dữ liệu trong database.

Điều kiện để tạo khóa ngoại

Khóa ngoại phải có cùng kiểu dữ liệu, cùng số lượng trường có sắp xếp tương ứng khóa chính

Tác dụng

Khóa ngoại phải có cùng kiểu dữ liệu, cùng số lượng trường có sắp xếp tương ứng khóa chính

Khóa ngoại giúp đảm bảo toàn vẹn dữ liệu, không có trường hợp tham chiếu đến dữ liệu không tồn tại.

Xem thêm: Đầu Số 037 Là Mạng Gì ? Ý Nghĩa Của Đầu Số 037? Có Phải Số Tài Lộc?

Thao tác với khóa ngoại

Bạn sử dụng Database Primary_Foreign sau để dễ dàng thao tác trong quá trình theo dõi bài viết nhé!

CREATE DATABASE Primary_ForeignGOUSE Primary_ForeignGOCREATE TABLE BoMon(MaBM CHAR(10) PRIMARY KEY,Name NVARCHAR(100) DEFAULT N”Tên bộ môn”)GOCREATE TABLE Lop(MaLop CHAR(10) NOT NULL,Name NVARCHAR(100) DEFAULT N”Tên lớp”PRIMARY KEY(MaLop))GO

Quy ước

TableKey: Table chứa khóa chính được tham chiếu đến.Table Foreign: Table chứa khóa ngoạiColumn K,K1,K2…: Column định danh khóa chính thuộc table Key được tham chiếu đến.Column F,F1,F2…: Column của khóa ngoại thuộc table Foreign.Số lượng columnFntương ứng số lượng columnKn nhằm đảm bảo khóa ngoại có số trường tương ứng khóa chính tham chiếu đến. (n là số)

Tạo khóa ngoại trong lúc tạo bảng

Cú pháp:

Table: Table chứa khóa chính được tham chiếu đến.Table: Table chứa khóa ngoạiColumn: Column định danh khóa chính thuộc table Key được tham chiếu đến.Column: Column của khóa ngoại thuộc table Foreign.Số lượng columntương ứng số lượng columnnhằm đảm bảo khóa ngoại có số trường tương ứng khóa chính tham chiếu đến. (n là số)Cú pháp:

CREATE TABLE

(

FOREIGN KEY ()

REFERENCES ()

)

Ví dụ:

CREATE TABLE GiaoVien( MaGV CHAR(10) NOT NULL, Name NVARCHAR(100) DEFAULT N”Tên giáo viên”, DiaChi NVARCHAR(100) DEFAULT N”Địa chỉ giáo viên”, NgaySinh DATE, Sex BIT, MaBM CHAR(10), — Tạo khóa ngoại ngay khi tạo bảng FOREIGN KEY(MaBM) REFERENCES dbo.BOMON(MaBM))GOALTER TABLE dbo.GIAOVIEN ADD PRIMARY KEY(MaGV)

Tạo khóa ngoại sau khi tạo bảng

Cú pháp:ALTER TABLE

Cú pháp:ALTER TABLE

ADD FOREIGN KEY()

REFERENCES ()

Ví dụ:

Tương tự khóa chính, khóa ngoại cũng đặt tên thông qua từ khóa CONSTRAINT. Một Table có thể có một hoặc nhiều khóa chính nên nguyên tắc đặt tên sẽ có chút khác biệt

Tương tự khóa chính, khóa ngoại cũng đặt tên thông qua từ khóa CONSTRAINT. Một Table có thể có một hoặc nhiều khóa chính nên nguyên tắc đặt tên sẽ có chút khác biệt

Tên khóa ngoại: FK__

Tùy theo đặc tả và độ phức tạp của từng Database mà ta có thể thay đổi cách đặt tên theo mong muốn

Cú pháp:

Cú pháp:

ALTER TABLE

ADD CONSTRAINT

FOREIGN KEY()

REFERENCES ()

Ví dụ:

— Tạo khóa ngoại sau khi tạo bảngALTER TABLE dbo.HocSinh ADD CONSTRAINT FK_HS FOREIGN KEY(MaLop) REFERENCES dbo.Lop(MaLop)

Hủy khóa ngoại có đặt tên

Cú pháp:ALTER TABLE DROP CONSTRAINT

Cú pháp:ALTER TABLE DROP CONSTRAINT

Ví dụ:

ALTER TABLE dbo.HocSinh DROP CONSTRAINT FK_KS

Sơ đồ diagram

Với việc tạo khóa ngoại bằng code tuy đơn giản nhưng lại không cho bạn cái nhìn trực quan về các liên kế trong Database. Vậy để xem mối quan hệ giữa khóa chính khóa ngoại ta đi sẽ mở mô hình diagram như sau

Với việc tạo khóa ngoại bằng code tuy đơn giản nhưng lại không cho bạn cái nhìn trực quan về các liên kế trong Database. Vậy để xem mối quan hệ giữa khóa chính khóa ngoại ta đi sẽ mở mô hình diagram như sau

Bước 1: Chọn Database cần xem >chuột phải vào Database Diagrams > New Database Diagram

*
*
*

Trong đó:

Ký hiệu vô cùng trỏ về Table có chứa Khóa ngoại.Ký hiệu chìa khóa trỏ về Table có chứa Khóa chính.Liên kết nối vô cùng và chìa khóa biểu diễn quan hệ tham chiếu của khóa ngoại từ table này đến khóa chính của table khác.

Ký hiệu vô cùng trỏ về Table có chứa Khóa ngoại.Ký hiệu chìa khóa trỏ về Table có chứa Khóa chính.Liên kết nối vô cùng và chìa khóa biểu diễn quan hệ tham chiếu của khóa ngoại từ table này đến khóa chính của table khác.

Từ Diagram chúng ta dễ dàng nắm bắt được các thông tin cơ bản như Tên Table, Tên column, khóa chính, khóa ngoại,…

Kết

Trong bài này, chúng ta đã biết cách KHỞI TẠO KHÓA NGOẠI trong SQL.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập –Thử thách –Không ngại khó

Tải xuống

Tài liệu

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện chotsale.com.vn.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!

*

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện chotsale.com.vn.com để nhận được sự hỗ trợ từ cộng đồng.