Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao tôi cần sử dụng khóa ngoại nếu tôi có thể sử dụng WHERE?

Nó không hoàn toàn cần thiết cho truy vấn, đó là sự thật. Nó tồn tại vì một số lý do:

  1. Như một ràng buộc trên bảng để ngăn bạn chèn thứ gì đó không trỏ đến bất kỳ thứ gì;
  2. Là một đầu mối cho trình tối ưu hóa; và
  3. Vì lý do lịch sử, nơi nào là cần thiết hơn.

(1) có lẽ là một trong ba điều quan trọng. Điều này được gọi là tính toàn vẹn tham chiếu . Có nghĩa là nếu có một giá trị trong khóa ngoại thì sẽ có một bản ghi tương ứng với giá trị đó làm khóa chính trong bảng mẹ.

Điều đó đang được nói, không phải tất cả các cơ sở dữ liệu đều hỗ trợ tính toàn vẹn tham chiếu (ví dụ:bảng MySQL / MyISAM) và những cơ sở dữ liệu không nhất thiết phải thực thi nó (vì lý do hiệu suất).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào nên xây dựng lại các chỉ mục cơ sở dữ liệu?

  2. Có cách nào để sử dụng ON DUPLICATE KEY để cập nhật tất cả những gì tôi muốn chèn không?

  3. Muốn Số hàng trên Nhóm cột trong MY SQL?

  4. Mệnh đề MySQL IN:số lượng đối số tối đa

  5. MySQL:cột số lượng / tính chọn lọc thấp =làm thế nào để lập chỉ mục?