Hướng dẫn này bao gồm định nghĩa về khóa ngoại, các quy tắc, cách hoạt động của khóa ngoại, Cách tạo khóa ngoại với studio quản lý máy chủ SQL và hơn thế nữa.

Bạn đang xem : mssql tạo khóa ngoại

KEY NGOẠI GIAO là gì?

Một Khóa ngoại cung cấp một cách thực thi tính toàn vẹn của tham chiếu trong SQL Server. Nói một cách dễ hiểu, khóa ngoại đảm bảo các giá trị trong một bảng phải có trong bảng khác.

Quy tắc cho NGOẠI KHÓA

  • NULL được phép trong Khóa ngoại SQL.
  • Bảng đang được tham chiếu được gọi là Bảng chính
  • Bảng có khóa ngoại trong SQL được gọi là Bảng con.
  • Khóa ngoại SQL trong bảng con tham chiếu đến khóa chính trong bảng mẹ.
  • Mối quan hệ cha con này thực thi quy tắc được gọi là “Tính toàn vẹn tham chiếu”.

Ví dụ về Khóa ngoại trong SQL với sơ đồ tóm tắt tất cả các điểm ở trên cho KEY NGOẠI LỆ

SQL FOREIGN KEY Cách hoạt động của Khóa ngoại

Trong hướng dẫn này, bạn sẽ học

Cách tạo KEY FOREIGN trong SQL

Chúng tôi có thể tạo Khóa ngoại trong máy chủ SQL bằng 2 cách:

  1. SQL Server Management Studio
  2. T-SQL

SQL Server Management Studio

Bảng Gốc: Giả sử, chúng tôi có một bảng Gốc hiện tại là ‘Khóa học.’ Course_ID và Course_name là hai cột với Course_Id làm Khóa chính.

Khoá ngoại trong SQL

Bảng con: Chúng ta cần tạo bảng thứ hai dưới dạng bảng con. ‘Course_ID’ và ‘Course_Strength’ làm hai cột. Tuy nhiên, ‘Course_ID’ sẽ là Khoá ngoại.

Bước 1) Nhấp chuột phải vào Bảng & gt; Mới & gt; Bàn…

Khoá ngoại trong SQL

Bước 2) Nhập tên hai cột là ‘Course_ID’ và ‘Course_Strength.’ Nhấp chuột phải vào Cột ‘Course_Id’. Bây giờ hãy nhấp vào Mối quan hệ.

Khoá ngoại trong SQL

Bước 3) Trong ‘Mối quan hệ chính đối ngoại ’, nhấp vào ‘Thêm’

Khoá ngoại trong SQL

Bước 4) Trong ‘Bảng và Thông số cột’, hãy nhấp vào biểu tượng ‘…’

Khoá ngoại trong SQL

Bước 5) Chọn ‘Bảng khóa chính’ làm “KHÓA HỌC” và bảng mới hiện đang được tạo dưới dạng “Bảng khóa ngoài” từ trình đơn thả xuống.

Khoá ngoại trong SQL

Bước 6) ‘Bảng khóa chính’ – Chọn cột ‘Course_Id’ làm cột ‘Bảng khóa chính’.

‘Bảng Khoá ngoại’- Chọn cột‘ Course_Id ’làm cột‘ Bảng khoá ngoại ’. Nhấp vào OK.

Khoá ngoại trong SQL

Bước 7) Nhấp vào Thêm.

Khoá ngoại trong SQL

Bước 8) Đặt tên Bảng là ‘Course_Strength’ và nhấp vào OK.

Khoá ngoại trong SQL

Kết quả: Chúng tôi đã đặt mối quan hệ Cha mẹ – con cái giữa ‘Course’ ‘Course_strength.’

Khoá ngoại trong SQL

T-SQL: Tạo bảng cha-con bằng T-SQL

Bảng chính: Hãy xem xét lại, chúng tôi có một bảng chính hiện có với tên bảng là ‘Khóa học.’

Course_ID và Course_name là hai cột có Course_Id là Khoá Chính.

Xem Thêm  Angular – vũ khí hạng nặng của Front-end Developer?

Khoá ngoại trong SQL

Bảng Con: Chúng ta cần tạo bảng thứ hai làm bảng con với tên là ‘Course_Strength_TSQL.’

‘Course_ID’ và ‘Course_Strength’ làm hai cột cho bảng con Course_Strength_TSQL. ”Tuy nhiên,‘ Course_ID ’sẽ là Khoá ngoại.

Dưới đây là cú pháp để tạo bảng với NGOẠI KHÓA

Cú pháp:

 TẠO BẢNG childTable
(
  kiểu dữ liệu column_1 [NULL | NOT NULL],
  kiểu dữ liệu cột_2 [NULL | NOT NULL],
  ...

  CONSTRAINT fkey_name
    TỪ KHÓA NGOẠI TỆ (cột_ con 1, cột_ con2, ... cột_ con_n)
    REFERENCES parentTable (cột_chính_phẩm1, cột_số_chính_chính_phẩm2, ... cột_số_chính_phẩm_n)
    [ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}]
    [ON UPDATE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}]
); 

Đây là mô tả về các thông số trên:

  • childTable là tên của bảng sẽ được tạo.
  • cột_1, cột_2- các cột sẽ được thêm vào bảng.
  • fkey_name- tên của ràng buộc khóa ngoại sẽ được tạo.
  • child_column1, child_column2… child_column_n- tên của các cột chidTable để tham chiếu đến khóa chính trong parentTable.
  • parentTable- tên của bảng mẹ có khóa sẽ được tham chiếu trong bảng con.
  • parent_column1, parent_column2,… parent_column3- các cột tạo nên khóa chính của bảng chính.
  • BẬT XÓA. Một tham số tùy chọn. Nó chỉ định điều gì sẽ xảy ra với dữ liệu con sau khi xóa dữ liệu mẹ. Một số giá trị cho thông số này bao gồm KHÔNG CÓ HÀNH ĐỘNG, ĐẶT KHÔNG ĐỦ, CASCADE hoặc ĐẶT ĐỊNH NGHĨA.
  • BẬT CẬP NHẬT- Một tham số tùy chọn. Nó chỉ định điều gì sẽ xảy ra với dữ liệu con sau khi cập nhật dữ liệu mẹ. Một số giá trị cho thông số này bao gồm KHÔNG CÓ HÀNH ĐỘNG, ĐẶT KHÔNG ĐỦ, CASCADE hoặc ĐẶT ĐỊNH NGHĨA.
  • KHÔNG CÓ HÀNH ĐỘNG- được sử dụng cùng với BẬT XÓA và BẬT CẬP NHẬT. Điều đó có nghĩa là sẽ không có gì xảy ra với dữ liệu con sau khi cập nhật hoặc xóa dữ liệu mẹ.
  • CASCADE- được sử dụng cùng với BẬT XÓA và BẬT CẬP NHẬT. Dữ liệu con sẽ bị xóa hoặc cập nhật sau khi dữ liệu mẹ bị xóa hoặc cập nhật.
  • SET NULL- được sử dụng cùng với BẬT XÓA và BẬT CẬP NHẬT. Con sẽ được đặt thành null sau khi dữ liệu mẹ được cập nhật hoặc xóa.
  • SET DEFAULT- được sử dụng cùng với BẬT XÓA và BẬT CẬP NHẬT. Dữ liệu con sẽ được đặt thành giá trị mặc định sau khi cập nhật hoặc xóa trên dữ liệu mẹ.

Hãy xem ví dụ về Khóa ngoại trong SQL để tạo bảng với Một cột làm TỪ KHÓA NGOÀI:

Ví dụ về khóa ngoại trong SQL

Truy vấn:

 TẠO BẢNG Khóa học_Strength_TSQL
(
Course_ID Int,
Course_Strength Varchar (20)
CONSTRAINT FK FOREIGN KEY (Course_ID)
TÀI LIỆU THAM KHẢO KHÓA HỌC (Course_ID)
) 

Bước 1) Chạy truy vấn bằng cách nhấp vào thực thi.

Xem Thêm  Trình phát video HTML5: Cách chúng hoạt động trong 6 bước cuối cùng - cách phát video html5

Khoá ngoại trong SQL

Kết quả: Chúng tôi đã đặt mối quan hệ giữa Cha và con giữa ‘Course’ ‘Course_strength_TSQL.’

Khoá ngoại trong SQL

Sử dụng ALTER TABLE

Bây giờ chúng ta sẽ tìm hiểu cách sử dụng Khoá ngoại trong SQL và thêm Khoá ngoại trong máy chủ SQL bằng cách sử dụng câu lệnh ALTER TABLE, chúng ta sẽ sử dụng cú pháp được cung cấp bên dưới:

 ALTER TABLE childTable
THÊM CONSTRAINT fkey_name
    TỪ KHÓA NGOẠI TỆ (cột_ con 1, cột_ con2, ... cột_ con_n)
    REFERENCES parentTable (cột_của mẹ1, cột_chính_mục2, ... cột_sản_phẩm_năm); 

Đây là mô tả về các tham số được sử dụng ở trên:

  • childTable là tên của bảng sẽ được tạo.
  • cột_1, cột_2- các cột sẽ được thêm vào bảng.
  • fkey_name- tên của ràng buộc khóa ngoại sẽ được tạo.
  • child_column1, child_column2… child_column_n- tên của các cột chidTable để tham chiếu đến khóa chính trong parentTable.
  • parentTable- tên của bảng mẹ có khóa sẽ được tham chiếu trong bảng con.
  • parent_column1, parent_column2,… parent_column3- các cột tạo nên khóa chính của bảng chính.

Ví dụ về bảng thay thế thêm Khóa ngoại:

Bộ phận

 ALTER TABLE
THÊM CONSTRAINT fkey_student_admission
    NGOẠI KHÓA (nhập học)
    TÀI LIỆU THAM KHẢO sinh viên (nhập học); 

Chúng tôi đã tạo một khóa ngoại có tên fkey_student_admission trên bảng bộ phận. Khóa ngoại này tham chiếu đến cột nhập học của bảng sinh viên.

Ví dụ về Truy vấn FOREIGN KEY

Trước tiên, hãy xem Dữ liệu Bảng Gốc của chúng tôi, KHÓA HỌC.

Truy vấn:

 CHỌN * từ COURSE; 

Khóa ngoại trong SQL

Bây giờ, hãy chèn một số hàng trong bảng Con: ‘Course_strength_TSQL.’

Chúng tôi sẽ cố gắng chèn hai loại hàng

  1. Loại đầu tiên, mà Course_Id trong bảng con sẽ tồn tại trong Course_Id của bảng Parent. tức là Course_Id = 1 và 2
  2. Loại thứ hai, mà Course_Id trong bảng con không tồn tại trong Course_Id của bảng Gốc. tức là Course_Id = 5

Truy vấn:

 Chèn vào giá trị COURSE_STRENGTH (1, 'SQL');
Chèn vào COURSE_STRENGTH giá trị (2, 'Python');
Chèn vào các giá trị COURSE_STRENGTH (5, 'PERL'); 

Khoá ngoại trong SQL

Kết quả: Chúng ta hãy chạy Truy vấn cùng nhau để Xem bảng Cha và Con của chúng ta

Hàng có Course_ID 1 và 2 tồn tại trong bảng Course_strength. Trong khi, Course_ID 5 là một ngoại lệ.

Khoá ngoại trong SQL

Tóm tắt:

  • Mọi giá trị của Khóa ngoài phải là một phần của Khóa chính của các bảng khác.
  • Khoá Ngoại MySQL có thể tham chiếu đến một cột khác trong cùng một bảng. Tham chiếu này được gọi là tự tham chiếu.
  • Ràng buộc Khoá ngoại trong SQL: được sử dụng để bảo mật các liên kết giữa các bảng và dữ liệu không hợp lệ sẽ được chèn vào cột Khoá ngoại.
  • Bạn có thể tạo Khóa ngoại bằng Tạo bảng, Bảng thay thế hoặc SQL Server Management Studio.
  • Đây là sự khác biệt giữa Khóa chính và Khóa ngoại: Nhấp vào đây
Xem Thêm  Vòng lặp trong Python - Mảng Python - vòng lặp python qua mảng


Xem thêm những thông tin liên quan đến chủ đề mssql tạo khóa ngoại

Video hướng dẫn 16: tạo bảng, diagram, khóa ngoại trong SQL

alt

  • Tác giả: Chia sẻ kiến thức
  • Ngày đăng: 2014-12-24
  • Đánh giá: 4 ⭐ ( 6698 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chi tiết xin truy cập trang www.cskt-net.blogspot.com để xem nhiều hướng dẫn hơn
    Liên hệ: cskt.net@gmail.com

SQL Server: Foreign Key (Khoá ngoại)

  • Tác giả: v1study.com
  • Đánh giá: 3 ⭐ ( 9274 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ràng buộc khóa ngoại (Foreign Key – FK) được sử dụng để liên kết các bảng dữ liệu trong một cơ sở dữ liệu. FK đảm bảo toàn vẹn tham chiếu cho bảng.

Tạo Khóa Ngoại Trong Sql Server, Khóa Ngoại Foreign Key Trong Sql Server

  • Tác giả: saobiennhatrang.com
  • Đánh giá: 3 ⭐ ( 2329 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Dẫn nhậpTrong 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

Cách Tạo Khóa Ngoại Trong Sql Server, Khác Biệt Giữa Khóa Chính Và Khóa Ngoại Trong Sql

  • Tác giả: vantaiduongviet.vn
  • Đánh giá: 3 ⭐ ( 3963 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Các khoá chính và khóa ngoại là hai loại ràng buộc có thể được sử dụng để thực thi toàn vẹn dữ liệu trong các bảng SQL Server và đây là những đối tượng cơ sở dữ liệu quan trọng, Trong SQL Server, có hai khóa – khóa chính và khoá ngoại dường như giống nhau, nhưng thực tế cả hai đều khác nhau về các tính năng và hành vi

Cách Tạo Khóa Ngoại Trong Sql Server, Bài 7: Khóa Ngoại Trong Sql Server

  • Tác giả: webcasinovn.com
  • Đánh giá: 5 ⭐ ( 8092 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Dẫn nhậpTrong 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

Khóa ngoại trong SQL Server

  • Tác giả: howkteam.vn
  • Đánh giá: 5 ⭐ ( 1412 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khóa ngoại trong SQL Server

Thêm nhiều khóa chính, khóa ngoại vào table đã tồn tại trong MSSQL Server

  • Tác giả: trankyphat.com
  • Đánh giá: 4 ⭐ ( 4113 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php