Melaksanakan kunci utama dan asing di SQL
Kunci utama ialah lajur atau gabungan lajur yang secara unik mengenal pasti setiap rekod baris dalam jadual. Ia mesti unik dan tidak kosong. Setiap jadual hanya boleh mempunyai satu kunci utama; Sebagai contoh, pengguna \ _id sering digunakan sebagai kunci utama jadual pengguna. Tentukan kunci utama anda boleh menentukan lajur tunggal atau komposit apabila membuat jadual. Kekunci asing digunakan untuk menubuhkan persatuan antara jadual, menunjuk ke kunci utama jadual lain, dan pastikan integriti rujukan, seperti Pengguna Jadual Pesanan \ _ID menunjuk kepada pengguna Jadual Pengguna \ _ID. Menetapkan kunci asing menghalang penyisipan data haram dan menyokong operasi cascading. Penggunaan kunci asing memerlukan sokongan enjin pangkalan data (seperti InnoDB). Adalah disyorkan bahawa kunci utama dipilih dari peningkatan bilangan bulat atau uuid untuk mengelakkan bidang perniagaan; Bidang utama asing harus diindeks untuk meningkatkan prestasi pertanyaan; Kekunci asing boleh dielakkan apabila keperluan prestasi sangat tinggi, konsistensi kawalan lapisan aplikasi, atau apabila menggunakan pangkalan data bukan hubungan.
Penggunaan kunci utama dan kunci asing yang betul dalam SQL adalah asas untuk membina struktur pangkalan data relasi. Ini bukan sahaja memastikan integriti data, tetapi juga membantu kami mewujudkan korelasi data yang jelas.

Apakah kunci utama?
Kunci utama adalah lajur atau kumpulan lajur yang digunakan untuk mengenal pasti secara unik setiap rekod baris dalam jadual. Ia mempunyai beberapa ciri utama:
- Nilai mesti unik
- Tidak boleh batal
- Setiap jadual hanya boleh mempunyai satu kunci utama (tetapi boleh mengandungi pelbagai lajur)
Sebagai contoh, user_id
biasanya digunakan sebagai kunci utama dalam jadual pengguna, kerana setiap ID pengguna adalah unik dan tidak akan diulang atau kosong.

Cara untuk menentukan kunci utama boleh ditentukan secara langsung semasa membuat jadual:
Buat Pengguna Jadual ( USER_ID INT Utama utama, Nama Varchar (100) );
Anda juga boleh menetapkan kunci utama kompaun melalui kombinasi lajur berganda:

Buat jadual order_items ( order_id int, product_id int, kuantiti int, Kunci utama (order_id, product_id) );
Apakah peranan kunci asing?
Kunci asing digunakan untuk mewujudkan sambungan antara dua jadual, yang menunjukkan kunci utama jadual lain. Kekangan utama asing menghalang penyisipan data haram dan memastikan rujukan lengkap.
Sebagai contoh, medan user_id
dalam jadual pesanan boleh ditetapkan sebagai kunci asing dan menunjuk kepada user_id
jadual pengguna:
Buat pesanan jadual ( Pesanan_id int utama, user_id int, Jumlah perpuluhan (10,2), Kunci Asing (USER_ID) Rujukan Pengguna (user_id) );
Manfaat untuk melakukan ini termasuk:
- Memasukkan
user_id
tidak sah akan ditolak - Sekiranya pengguna dipadam, pesanan yang berkaitan boleh diproses secara automatik (pada padam cascade atau set null diperlukan)
- Logik antara data lebih jelas dan kecekapan pertanyaan lebih tinggi
Walau bagaimanapun, perlu diperhatikan bahawa secara lalai beberapa sistem pangkalan data (seperti MySQL's Myisam Engine) tidak menyokong kunci asing, dan anda mesti menggunakan InnoDB.
Soalan Lazim dan Cadangan untuk Kekunci Utama dan Asing
Adakah kunci utama dipilih dari bidang kenaikan atau perniagaan?
- Integer penurunan diri (seperti
INT AUTO_INCREMENT
) yang paling biasa digunakan, mudah dan stabil - Kadang -kadang uuid juga digunakan, terutamanya dalam sistem yang diedarkan untuk mengelakkan konflik
- Cuba jangan gunakan bidang perniagaan yang berubah -ubah sebagai kunci utama, seperti nama pengguna, e -mel, dll.
Adakah anda mahu mengindeks medan kunci asing?
- Ya, lebih baik untuk mengindeks secara manual medan kunci asing, jika tidak, ia akan mempengaruhi prestasi pertanyaan sambungan.
- Kebanyakan pangkalan data secara automatik membuat indeks, tetapi tidak semua
Bilakah tidak ada kunci asing yang diperlukan?
- Sistem ini mempunyai keperluan prestasi yang sangat tinggi dan dapat mengawal konsistensi data melalui lapisan aplikasi
- Struktur jadual sering berubah, dan kos mengekalkan kunci asing adalah tinggi
- Apabila menggunakan pangkalan data bukan hubungan (seperti MongoDB)
Pada dasarnya itu sahaja. Penetapan kunci utama dan asing nampaknya mudah, tetapi butirannya mudah diabaikan dalam perkembangan sebenar, mengakibatkan kesukaran dalam penyelenggaraan kemudian. Selagi anda memilih dan menggunakannya dengan munasabah mengikut keperluan perniagaan, struktur pangkalan data boleh menjadi lebih mantap dan pertanyaan lebih cekap.
Atas ialah kandungan terperinci Melaksanakan kunci utama dan asing di SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ThefirstdayOfheyearisobtaintainTaTaThtainTyConstrtruncatingToJanuary1stofthegivenyear, andthelastdayisdecember31stofthesameyear, withmethodsvaryingbydatabasesystem;

Fungsi tofindthesumofacolumninsql, usethesum (), yang mana -mana yang tidak dapat diterangkan;

Konteks pelaksanaan SQL merujuk kepada identiti atau peranan ketika menjalankan pernyataan SQL, yang menentukan keizinan sumber dan operasi mana yang dapat diakses. Tetapan kebenaran harus mengikuti prinsip kebenaran minimum, dan keizinan umum termasuk pilih, memasukkan, melaksanakan, dan lain -lain untuk menyelesaikan masalah kebenaran, anda perlu mengesahkan nama log masuk, keizinan peranan, tetapan pelaksanaan dan kebenaran skema. Melaksanakan penukaran konteks boleh dilaksanakan melalui ExecuteAs, tetapi perhatian harus dibayar kepada kewujudan pengguna, pemberian kebenaran dan kesan keselamatan prestasi. Adalah disyorkan untuk mengelakkan sewenang -wenangnya memberikan peranan DB_OWNER atau sysadmin. Akaun permohonan hanya perlu mengakses objek yang diperlukan dan diberi kuasa melalui skema.

Aself-joinisusedtocomparerowswithinthesametable,suchasinhierarchicaldatalikeemployee-managerrelationships,bytreatingthetableastwoseparateinstancesusingaliases,asdemonstratedwhenlistingemployeesalongsidetheirmanagers'nameswithaLEFTJOINtoincludetop-lev

ThealterTableStatementisusedTomodifeanexistingtable'sstructureWithoutrecreatingit; 1.addanewcolumnusingaddcolumn; 2.dropacolumnwithdropcolumn, whoSalsodeletesitsdata;

Sintaks untuk membuat pandangan ialah pernyataan createViewView_nameasSelect; 2. Pandangan tidak menyimpan data sebenar, tetapi berdasarkan hasil pertanyaan masa nyata dari jadual asas; 3. Pandangan boleh diubahsuai menggunakan CreateOrreplaceView; 4. Pandangan boleh dipadam melalui Dropview; 5. Pandangan ini sesuai untuk memudahkan pertanyaan kompleks, menyediakan kawalan akses data, dan mengekalkan konsistensi antara muka, tetapi perhatian harus dibayar kepada prestasi dan logik, dan akhirnya berakhir dengan ayat lengkap.

Afullouterjoinreturnsallrowsfrombothtables, withnullswherenomatchexists; 1) itcombinesmatchingrecordsandincludesunmatchedrowsfrombothleftandrightTables;

Transformdatamodelsbyembeddingorreferencingbasedonaccesspatternsinsteadofusingjoins; 2.handletransactionsbyforingatomicoperationsandeventualconsistency, reservingmulti-documenttransactionsforcases;
