Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kunci Asing - Apa yang mereka lakukan untuk saya?

Kunci asing memberikan integritas referensial. Data dalam kolom kunci asing divalidasi - nilainya hanya boleh salah satu yang sudah ada di tabel &kolom yang ditentukan dalam kunci asing. Ini sangat efektif untuk menghentikan "data buruk" - seseorang tidak dapat memasukkan apa pun yang mereka inginkan - angka, teks ASCII, dll. Ini berarti data dinormalisasi - nilai berulang telah diidentifikasi dan diisolasi ke tabel mereka sendiri, jadi tidak ada masalah lagi tentang berurusan dengan sensitivitas huruf besar-kecil dalam teks... dan nilainya konsisten. Ini mengarah ke bagian selanjutnya - kunci asing adalah apa yang Anda gunakan untuk menggabungkan tabel bersama.

Kueri Anda untuk proyek yang dimiliki pengguna tidak akan berfungsi - Anda mereferensikan kolom dari USERS tabel ketika tidak ada referensi ke tabel dalam kueri, dan tidak ada subkueri yang digunakan untuk mendapatkan informasi tersebut sebelum menautkannya ke PROJECTS meja. Apa yang benar-benar Anda gunakan adalah:

SELECT p.*
   FROM PROJECTS p
   JOIN USERS u ON u.user_id = p.creator
WHERE u.username = 'John Smith'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL-Kinerja saat memesan pada kolom terhitung

  2. Query MySQL Umum Teratas

  3. Memeriksa konflik rentang tanggal di MySQL

  4. Bagaimana cara membuat kelas model entitas generik yang mendukung id generik termasuk id yang dibuat secara otomatis?

  5. Bagaimana cara menambahkan batasan bukan nol ke kolom yang ada di MySQL