Kunci utama MySQL adalah satu atau kombinasi dari bidang, yang digunakan untuk mengidentifikasi setiap catatan dalam tabel secara unik. Jika kolom berisi batasan kunci utama, maka tidak boleh nol atau kosong. Tabel mungkin memiliki kolom duplikat, tetapi hanya dapat berisi satu kunci utama. Itu selalu mengandung nilai unik ke dalam kolom
Saat Anda memasukkan baris baru ke dalam tabel, kolom kunci utama juga dapat menggunakan atribut AUTO_INCREMENT untuk menghasilkan nomor urut baris tersebut secara otomatis. MySQL secara otomatis membuat indeks bernama "Primer" setelah menentukan kunci utama ke dalam tabel. Karena memiliki indeks terkait, kita dapat mengatakan bahwa kunci utama mempercepat kinerja kueri
Aturan untuk kunci Primer
Berikut ini adalah aturan untuk kunci utama
- Nilai kolom kunci utama harus unik
- Setiap tabel hanya dapat berisi satu kunci utama
- Kolom kunci utama tidak boleh nol atau kosong
- MySQL tidak mengizinkan kami untuk memasukkan baris baru dengan kunci primer yang ada
- Disarankan untuk menggunakan tipe data INT atau BIGINT untuk kolom primary key
Kita dapat membuat primary key dengan dua cara
- Pernyataan BUAT TABEL
- Pernyataan MENGUBAH TABEL
Mari kita bahas masing-masing secara rinci
Kunci Utama Menggunakan Pernyataan CREATE TABLE
Pada bagian ini, kita akan melihat bagaimana primary key dibuat menggunakan pernyataan CREATE TABLE
Sintaksis
Berikut ini adalah sintaks yang digunakan untuk membuat primary key di MySQL
Jika kita ingin membuat hanya satu kolom primary key ke dalam tabel, gunakan sintaks di bawah ini
Jika kita ingin membuat lebih dari satu kolom kunci utama ke dalam tabel, gunakan sintaks di bawah ini
Penjelasan Parameter
Tabel berikut menjelaskan parameter secara detail
Parameter NameDescriptionsTable_nameIni adalah nama tabel yang akan kita buat. Col1, col2It adalah nama kolom yang terdapat pada tabel. Constraint_nameIni adalah nama kunci utama. Column_name(s)Ini adalah nama kolom(s) yang akan menjadi primary keyContoh Kunci Utama
Contoh berikut menjelaskan bagaimana primary key digunakan di MySQL
Pernyataan ini membuat tabel bernama "Login" yang kolom "login_id"-nya berisi kunci utama
Selanjutnya, gunakan insert query untuk menyimpan data ke dalam tabel
Keluaran
Pada output di bawah ini, kita dapat melihat bahwa kueri penyisipan pertama berhasil dijalankan. Sedangkan pernyataan sisipan kedua gagal dan memberikan kesalahan yang mengatakan. Entri duplikat untuk kolom kunci utama
Jika Anda ingin menentukan kunci utama pada banyak kolom, gunakan kueri seperti di bawah ini
Pada output, kita dapat melihat bahwa nilai primary key berisi dua kolom yaitu Student_ID dan Roll_No
Kunci Utama Menggunakan Pernyataan ALTER TABLE
Pernyataan ini memungkinkan kita untuk melakukan modifikasi pada tabel yang ada. Saat tabel tidak memiliki kunci utama, pernyataan ini digunakan untuk menambahkan kunci utama ke kolom tabel yang sudah ada
Sintaksis
Berikut ini adalah sintaks pernyataan ALTER TABLE untuk membuat primary key di MySQL
Contoh
Pernyataan berikut membuat tabel "Orang" yang tidak memiliki kolom kunci utama ke dalam definisi tabel
Setelah membuat tabel, jika kita ingin menambahkan kunci utama ke tabel ini, kita perlu mengeksekusi pernyataan ALTER TABLE seperti di bawah ini
Kita dapat melihat output di mana kedua pernyataan berhasil dieksekusi
Jika tabel perlu menambahkan primary key ke dalam tabel yang sudah ada data ke dalam kolomnya, maka harus dipastikan kolom tersebut tidak berisi duplikat atau nilai null
JATUHKAN Kunci Utama
Pernyataan ALTER TABLE juga memungkinkan kita untuk melepaskan kunci utama dari tabel. Sintaks berikut digunakan untuk menjatuhkan kunci utama
Kueri di bawah mencantumkan semua batasan kunci primer (PK) dalam database (skema) dengan kolomnya (satu baris per kolom)
Lihat juga. daftar semua kunci utama (satu baris per PK)
Pertanyaan
select tab.table_schema as database_schema, sta.index_name as pk_name, sta.seq_in_index as column_id, sta.column_name, tab.table_name from information_schema.tables as tab inner join information_schema.statistics as sta on sta.table_schema = tab.table_schema and sta.table_name = tab.table_name and sta.index_name = 'primary' where tab.table_schema = 'your database name' and tab.table_type = 'BASE TABLE' order by tab.table_name, column_id;Kolom
- table_schema - nama basis data (skema) PK
- pk_name - nama batasan PK
- column_id - id kolom dalam indeks (1, 2,. ). 2 atau lebih tinggi berarti kuncinya komposit (berisi lebih dari satu kolom)
- nama_kolom - nama kolom kunci utama
- table_name - nama tabel PK
Baris
- Satu baris. mewakili satu kolom primary key
- Lingkup baris. kolom semua kendala PK dalam database (skema)
- Dipesan oleh. nama tabel, id kolom
Hasil sampel
Contoh hasil database Sakila (skema)
Anda juga bisa mendapatkan ini
Dapatkan kamus data HTML interaktif ini dalam hitungan menit dengan Dataedo
Coba gratis