Belajar apa itu MySQL Primary Key

Dalam tutorial ini, Anda akan belajar bagaimana menggunakan MySQL kendala kunci utama untuk membuat kunci utama untuk meja.

Pengenalan MySQL kunci utama

Kunci utama adalah kolom atau set kolom yang secara unik mengidentifikasi setiap baris dalam tabel. Berikut ini adalah aturan yang harus Anda ikuti ketika Anda menentukan kunci utama untuk tabel:
  • Kunci utama harus mengandung nilai-nilai yang unik. Jika kunci utama terdiri dari beberapa kolom, kombinasi nilai-nilai di kolom ini harus unik.
  • Kolom kunci primer tidak dapat berisi NULL nilai. Ini berarti bahwa Anda harus menyatakan kolom kunci utama dengan NOT NULL atribut. Jika Anda tidak, MySQL akan memaksa kolom kunci utama sebagai NOT NULL implisit.
  • Sebuah tabel hanya memiliki satu primary key.
Karena MySQL bekerja lebih cepat dengan bilangan bulat, tipe kolom kunci primer harus menjadi contoh tipe integer, INT atau BIGINT . Anda dapat memilih tipe integer yang lebih kecil seperti TINYINT , SMALLINT , dll, namun Anda harus memastikan bahwa rentang nilai dari tipe integer untuk kunci utama adalah cukup untuk menyimpan semua baris mungkin bahwa meja mungkin.
 
Kolom kunci primer sering memiliki AUTO_INCREMENT atribut yang menghasilkan unik urutan untuk kunci otomatis. The kunci utama dari baris berikutnya lebih besar dari yang sebelumnya.
 
MySQL menciptakan indeks bernama PRIMARY dengan PRIMARY jenis untuk kunci utama dalam sebuah tabel.
 
Mendefinisikan MySQL PRIMARY KEY Kendala
 
MySQL memungkinkan Anda untuk membuat kunci utama dengan mendefinisikan batasan kunci utama ketika Anda membuat atau memodifikasi tabel.
 
Mendefinisikan MySQL kendala PRIMARY KEY menggunakan pernyataan CREATE TABLE
 
MySQL memungkinkan Anda untuk membuat kunci utama ketika Anda membuat tabel dengan menggunakan CREATE TABLE pernyataan. Untuk membuat PRIMARY KEY kendala untuk meja, Anda menentukan PRIMARY KEY dalam definisi kolom kunci utama dunia.
 
Contoh berikut membuat users tabel yang kunci utama adalah user_id kolom:

CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY ,
username VARCHAR ( 40 ) ,
email VARCHAR ( 255 )
password VARCHAR ( 255 ) ,
) ;

Anda juga dapat menentukan PRIMARY KEY pada akhir CREATE TABLE pernyataan sebagai berikut:

CREATE TABLE roles (
role_id INT AUTO_INCREMENT ,
role_name VARCHAR ( 50 ) ,
) ;
PRIMARY KEY ( role_id )

Dalam hal kunci utama terdiri dari beberapa kolom, Anda harus menentukan mereka pada akhir CREATE TABLE pernyataan. Anda meletakkan daftar koma-dipisahkan dari kolom kunci utama dalam kurung mengikuti PRIMARY KEY kata kunci.

CREATE TABLE userroles (
user_id INT NOT NULL ,
PRIMARY KEY ( user_id , role_id ) ,
role_id INT NOT NULL ,
FOREIGN KEY ( user_id ) REFERENCES users ( user_id ) ,
FOREIGN KEY ( role_id ) REFERENCES roles ( role_id )
) ;

Selain menciptakan kunci utama yang terdiri dari user_id dan role_id kolom, pernyataan itu juga menciptakan dua kunci asing kendala.

Mendefinisikan MySQL kendala PRIMARY KEY menggunakan ALTER TABLE pernyataan

Jika meja, untuk beberapa alasan, tidak memiliki kunci utama, Anda dapat menggunakan ALTER TABLE pernyataan untuk menambahkan kolom yang memiliki karakteristik semua yang diperlukan kunci utama untuk kunci utama sebagai pernyataan berikut:

ALTER TABLE table_name
ADD PRIMARY KEY ( primary_key_column ) ;

Contoh berikut menambahkan kolom id untuk kunci primer.


Pertama, membuat t1 tabel tanpa mendefinisikan kunci primer.


CREATE TABLE t1 (
id int ,
title varchar ( 255 ) NOT NULL
) ;

Kedua, tambahkan id kolom primary key dari t1 meja.

ALTER TABLE t1
ADD PRIMARY KEY ( id ) ;

PRIMARY KEY vs KEY UNIK vs KEY

Sebuah KEY adalah sinonim untuk INDEX . Anda menggunakan KEY ketika Anda ingin membuat indeks untuk kolom atau satu set kolom yang bukan merupakan bagian dari kunci kunci atau unik primer.


Sebuah UNIQUE Indeks menciptakan kendala untuk kolom yang nilainya harus unik. Berbeda dengan PRIMARY indeks, MySQL memungkinkan NULL nilai dalam UNIQUE indeks. Tabel bisa juga memiliki beberapa UNIQUE indeks.



Sebagai contoh, email dan username pengguna di users tabel harus unik. Anda dapat menentukan UNIQUE indeks untuk email dan nama kolom sebagai pernyataan berikut:



Tambahkan UNIQUE indeks untuk username kolom.


ALTER TABLE users
ADD UNIQUE INDEX username_unique ( username ASC ) ;

Tambahkan UNIQUE indeks untuk email kolom.

ALTER TABLE users
ADD UNIQUE INDEX email_unique ( email ASC ) ;

Dalam tutorial Anda telah belajar bagaimana untuk membuat kunci utama untuk tabel baru atau menambahkan kunci utama untuk tabel yang ada.

Comments