Làm thế nào để bạn tìm thấy khóa chính và khóa ngoại?

Máy chủ SQL tạo chế độ xem “INFORMATION_SCHEMA“ để truy xuất siêu dữ liệu về các đối tượng trong cơ sở dữ liệu

  1. TẠO Cơ sở dữ liệu DB_INFORMATION_SCHEMA_VIEW
  2. ĐI
  3. SỬ DỤNG DB_INFORMATION_SCHEMA_VIEW
  4. ĐI
  5. TẠO BẢNG Tbl_parent
  6. (
  7. Id INT IDENTITY(1,1) CONSTRAINT PK_tbl_parent_Id PRIMARY KEY,
  8. Tên VARCHAR(50)
  9. )
  10. ĐI
  11. TẠO BẢNG Tbl_child
  12. (
  13. Id INT IDENTITY(1,1) PRIMARY KEY,
  14. Tên VARCHAR(50),
  15. ParentId INT CONSTRAINT FK_tbl_parent_tbl_child_ParentId FOREIGN KEY REFERENCES tbl_parent(Id)
  16. )
  17. ĐI

Nếu chúng ta muốn biết khóa chính và khóa ngoại của bảng

Chúng ta có thể chỉ cần sử dụng một “information_schema. key_column_usage”, chế độ xem này sẽ trả về tất cả các khóa ngoại và khóa chính của bảng

  1. SỬ DỤNG DB_INFORMATION_SCHEMA_VIEW
  2. ĐI
  3. CHỌN * TỪ thông tin_lược đồ. key_column_usage
  4. ĐI

query output

<< Máy chủ SQL. Chế độ xem hệ thống

Khóa chính và khóa ngoại là những thành phần cơ bản nhất mà lý thuyết quan hệ dựa trên. Mỗi thực thể phải có một hoặc nhiều thuộc tính, khóa chính, có giá trị xác định duy nhất từng phiên bản của thực thể. Mỗi thực thể con phải có một thuộc tính, khóa ngoại, hoàn thành liên kết với thực thể mẹ

Một FOREIGN KEY là một trường (hoặc tập hợp các trường) trong một bảng, tham chiếu đến PRIMARY KEY trong một 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

Nhìn vào hai bảng sau

bảng người

PersonIDLastNameFirstNameTuổi1HansenOla302SvendsonTove233PettersenKari20

Bảng đơn hàng

OrderIDOrderNumberPersonID1778953244678332245624245621

Lưu ý rằng cột "PersonID" trong bảng "Orders" trỏ tới cột "PersonID" trong bảng "Persons"

Cột "PersonID" trong bảng "Persons" là PRIMARY KEY trong bảng "Persons"

Cột "PersonID" trong bảng "Orders" là một giá trị FOREIGN KEY trong bảng "Orders"

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



SQL NGOẠI KHÓA trên TẠO BẢNG

SQL sau tạo một FOREIGN KEY trên cột "PersonID" khi bảng "Orders" được tạo

mysql

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

Máy chủ SQL/Truy cập Oracle/MS

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

Để cho phép đặt tên ràng buộc FOREIGN KEY và để xác định ràng buộc FOREIGN KEY trên nhiều cột, hãy sử dụng cú pháp SQL sau

Các bảng có liên quan đến các bảng khác có mối quan hệ khóa chính hoặc khóa ngoại. Mối quan hệ khóa chính và khóa ngoại được sử dụng trong cơ sở dữ liệu quan hệ để xác định mối quan hệ nhiều-một giữa các bảng

Mối quan hệ khóa chính/khóa ngoại giữa các bảng trong lược đồ hình sao hoặc bông tuyết, đôi khi được gọi là mối quan hệ nhiều-một, biểu thị các đường dẫn dọc theo đó các bảng có liên quan được nối với nhau trong cơ sở dữ liệu. Các đường dẫn tham gia này là cơ sở để hình thành các truy vấn đối với dữ liệu lịch sử. Để biết thêm thông tin về mối quan hệ nhiều-một, hãy xem Mối quan hệ nhiều-một

Khóa chínhKhóa chính là một cột hoặc một tập hợp các cột trong bảng có giá trị xác định duy nhất một hàng trong bảng. Cơ sở dữ liệu quan hệ được thiết kế để thực thi tính duy nhất của các khóa chính bằng cách chỉ cho phép một hàng có giá trị khóa chính nhất định trong một bảng. Khóa ngoạiKhóa ngoại là một cột hoặc một tập hợp các cột trong bảng có giá trị tương ứng với giá trị của khóa chính trong bảng khác. Để thêm một hàng có giá trị khóa ngoại đã cho, phải tồn tại một hàng trong bảng liên quan có cùng giá trị khóa chính

Khóa ngoại được xác định như thế nào?

Để xác định và xác thực mối quan hệ giữa các bảng, bạn có thể chạy công việc phân tích khóa và tên miền chéo để tìm ứng viên khóa ngoại, chọn khóa ngoại, sau đó xác thực tính toàn vẹn tham chiếu của chúng. Bạn xác định khóa ngoại trong không gian làm việc Phân tích khóa và tên miền chéo .

Ví dụ về khóa chính và khóa ngoại là gì?

Sự khác biệt giữa Khóa chính so với Khóa ngoại