Ringkasan. dalam tutorial ini, Anda akan belajar bagaimana menggunakan batasan primary key MySQL untuk membuat primary key untuk sebuah tabel
Pengantar kunci utama MySQL
Kunci utama adalah kolom atau sekumpulan kolom yang secara unik mengidentifikasi setiap baris dalam tabel. Kunci utama mengikuti aturan ini
- Kunci utama harus berisi nilai unik. Jika kunci utama terdiri dari beberapa kolom, kombinasi nilai dalam kolom ini harus unik
- Kolom kunci utama tidak boleh memiliki
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)_1 nilai. Upaya apa pun untuk memasukkan atau memperbaruiCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)_2 ke kolom kunci utama akan mengakibatkan kesalahan. Perhatikan bahwa MySQL secara implisit menambahkan batasanCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)3 ke kolom kunci utama - Sebuah tabel hanya dapat memiliki satu kunci utama
Karena MySQL bekerja lebih cepat dengan bilangan bulat, tipe data kolom kunci utama harus berupa bilangan bulat e. g. ,
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)4CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)5. Dan Anda harus memastikan bahwa rentang nilai dari tipe integer untuk kunci utama cukup untuk menyimpan semua kemungkinan baris yang mungkin dimiliki tabelKolom kunci utama sering kali memiliki atribut
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)_6 yang secara otomatis menghasilkan bilangan bulat berurutan setiap kali Anda memasukkan baris baru ke dalam tabelSaat Anda menentukan kunci utama untuk sebuah tabel, MySQL secara otomatis membuat indeks yang disebut
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)7MySQL
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)_8 contohBatasan
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 memungkinkan Anda menentukan kunci utama tabel saat Anda membuat atau mengubah tabel1) Tentukan kendala
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)_8 diCREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)1Biasanya, Anda menentukan kunci utama untuk tabel dalam pernyataan
CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)2Jika primary key memiliki satu kolom, Anda dapat menggunakan batasan
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 sebagai batasan kolomCREATE TABLE table_name( primary_key_column datatype PRIMARY KEY, ... );
Ketika kunci utama memiliki lebih dari satu kolom, Anda harus menggunakan batasan
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 sebagai batasan tabelCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)Dalam sintaks ini, Anda memisahkan kolom di
CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)5 dengan koma (,)Batasan tabel
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 dapat digunakan ketika kunci utama memiliki satu kolomCREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)Contoh berikut membuat tabel bernama
CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)7 yang kunci utamanya adalah kolomCREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)8CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );
Code language: SQL (Structured Query Language) (sql)Pernyataan ini membuat tabel
CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)_9 yang memiliki batasanCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 sebagai batasan tabelCREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)Jika kunci utama terdiri dari beberapa kolom, Anda harus menentukannya di akhir pernyataan
CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)1 . Anda meletakkan daftar kolom kunci utama yang dipisahkan koma di dalam tanda kurung mengikutiCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 kata kunciContoh berikut membuat tabel
CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );
Code language: SQL (Structured Query Language) (sql)_3 yang kunci utamanya terdiri dari dua kolom.CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)8 danCREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );
Code language: SQL (Structured Query Language) (sql)5. Ini mendefinisikan batasanCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)Perhatikan bahwa pernyataan tersebut juga menciptakan dua kendala kunci asing
2) Tentukan batasan
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 menggunakanCREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );
Code language: SQL (Structured Query Language) (sql)8Jika tabel, karena alasan tertentu, tidak memiliki kunci utama, Anda dapat menggunakan pernyataan
CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );
Code language: SQL (Structured Query Language) (sql)9 untuk menambahkan kunci utama ke tabel sebagai berikutALTER TABLE table_name ADD PRIMARY KEY(column_list);
Code language: SQL (Structured Query Language) (sql)Contoh berikut menambahkan kolom
CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)_0 ke primary keyPertama, buat tabel
CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)_1 tanpa kunci utamaCREATE TABLE pkdemos( id INT, title VARCHAR(255) NOT NULL );
Code language: SQL (Structured Query Language) (sql)Kedua, tambahkan kunci utama ke tabel
CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)1 menggunakan pernyataanCREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );
Code language: SQL (Structured Query Language) (sql)8ALTER TABLE pkdemos ADD PRIMARY KEY(id);
Code language: SQL (Structured Query Language) (sql)Jika Anda menambahkan kunci utama ke tabel yang sudah memiliki data. Data dalam kolom, yang akan disertakan dalam kunci utama, harus unik dan bukan NULL
CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)8 vs.CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)5 vs.CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)6CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)6 adalah sinonim untukCREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );
Code language: SQL (Structured Query Language) (sql)6 saat ingin membuat indeks untuk kolom atau kumpulan kolom yang bukan merupakan bagian dari kunci utama atau kunci unikIndeks
CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)_0 memastikan bahwa nilai dalam kolom harus unik. Berbeda dengan indeksCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)7, MySQL mengizinkanCREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)2 nilai dalam indeksCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)3. Selain itu, sebuah tabel dapat memiliki beberapa indeks ________31______3Misalkan
CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)5 danCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)6 pengguna di tabelCREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );
Code language: SQL (Structured Query Language) (sql)7 harus unik. Untuk menerapkan aturan ini, Anda dapat menentukan indeksCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)_3 untuk kolomCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)5 danCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)6 sebagai pernyataan berikutTambahkan indeks
CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)_3 untuk kolomCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)6ALTER TABLE users ADD UNIQUE INDEX username_unique (username ASC) ;
Code language: SQL (Structured Query Language) (sql)Tambahkan indeks
CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)_3 untuk kolomCREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );
Code language: SQL (Structured Query Language) (sql)5CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );
Code language: SQL (Structured Query Language) (sql)0Dalam tutorial ini, Anda telah mempelajari cara membuat primary key untuk tabel baru atau menambahkan primary key ke tabel yang sudah ada