Ringkasan. dalam tutorial ini, kami akan menunjukkan cara menggunakan pernyataan MySQL CREATE TABLE untuk membuat tabel baru di database
Sintaks MySQL CREATE TABLE
Pernyataan CREATE TABLE_ memungkinkan Anda membuat tabel baru di database
Berikut ini mengilustrasikan sintaks dasar dari pernyataan CREATE TABLE
CREATE TABLE [IF NOT EXISTS] table_name( column_1_definition, column_2_definition, ..., table_constraints ) ENGINE=storage_engine;
Code language: SQL (Structured Query Language) (sql)Mari kita periksa sintaks secara lebih rinci
Pertama anda tentukan nama tabel yang ingin anda buat setelah CREATE TABLE kata kunci. Nama tabel harus unik dalam database.
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)3 adalah opsional. Ini memungkinkan Anda untuk memeriksa apakah tabel yang Anda buat sudah ada di database. Jika demikian, MySQL akan mengabaikan seluruh pernyataan dan tidak akan membuat tabel baruKedua, Anda menentukan daftar kolom tabel di bagian
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)4, kolom dipisahkan dengan komaKetiga, Anda dapat secara opsional menentukan mesin penyimpanan untuk tabel di klausa
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)5. Anda dapat menggunakan mesin penyimpanan apa pun seperti InnoDB dan MyISAM. Jika Anda tidak mendeklarasikan mesin penyimpanan secara eksplisit, MySQL akan menggunakan InnoDB secara defaultInnoDB menjadi mesin penyimpanan default sejak MySQL versi 5. 5. Mesin penyimpanan InnoDB membawa banyak manfaat dari sistem manajemen basis data relasional seperti transaksi ACID, integritas referensial, dan pemulihan kerusakan. Pada versi sebelumnya, MySQL menggunakan MyISAM sebagai mesin penyimpanan default
Berikut ini menunjukkan sintaks untuk definisi kolom
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)_Berikut detailnya
- The
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)_6 menentukan nama kolom. Setiap kolom memiliki tipe data tertentu dan ukuran opsional e. g. ,column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)_7 - Batasan
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)_8 memastikan bahwa kolom tidak akan berisicolumn_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)_0, sebuah kolom mungkin memiliki batasan tambahan seperti CHECK, dan UNIQUE PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)1 menentukan nilai default untuk kolomPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)2 menunjukkan bahwa nilai kolom bertambah satu secara otomatis setiap kali baris baru dimasukkan ke dalam tabel. Setiap tabel memiliki maksimal satuPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)3 kolom
Setelah daftar kolom, Anda dapat menentukan batasan tabel seperti UNIQUE, CHECK, PRIMARY KEY dan FOREIGN KEY
Misalnya, jika Anda ingin menyetel kolom atau grup kolom sebagai kunci utama, Anda menggunakan sintaks berikut
PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)_Contoh pernyataan MySQL CREATE TABLE_
Mari kita ambil beberapa contoh membuat tabel baru
1) MySQL CREATE TABLE contoh sederhana
Pernyataan berikut membuat tabel baru bernama
PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)6CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)Tabel tugas memiliki kolom berikut
PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)7 adalah kolom penambahan otomatis. Jika Anda menggunakan pernyataanPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)_8 untuk menyisipkan baris baru ke dalam tabel tanpa menentukan nilai untuk kolomPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)7, MySQL akan secara otomatis menghasilkan bilangan bulat berurutan untukPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)7 mulai dari 1- Kolom
CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)_1 adalah kolom string karakter variabel yang panjang maksimumnya adalah 255. Artinya, Anda tidak dapat memasukkan string yang panjangnya lebih dari 255 ke dalam kolom ini. Kendalacolumn_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)8 menunjukkan bahwa kolom tidak menerimacolumn_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)_4 danCREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)5 adalahCREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)6 kolom. Karena kolom ini tidak memiliki batasanPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)_0, mereka dapat menyimpancolumn_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)9. Kolom tanggal_mulai memiliki nilai default tanggal saat ini. Dengan kata lain, jika Anda tidak memberikan nilai untuk kolom start_date saat Anda memasukkan baris baru, kolom start_date akan menggunakan tanggal saat ini dari server database.CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)_9 danDESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)0 adalahDESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)1 kolom yang tidak mengizinkancolumn_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)9- Kolom
DESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)_3 adalah kolomDESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)4 yang menerimacolumn_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Code language: SQL (Structured Query Language) (sql)9 DESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)_6 adalah kolomDESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)7 yang menerima waktu saat ini sebagai nilai default
PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)7 adalah kolom primary key dari tabelPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)6. Artinya, nilai dalam kolomPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)_7 akan secara unik mengidentifikasi baris dalam tabelSetelah Anda menjalankan pernyataan CREATE TABLE untuk membuat tabel
PRIMARY KEY (col1,col2,...)
CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );
Code language: SQL (Structured Query Language) (sql)3DESCRIBE tasks;
Code language: SQL (Structured Query Language) (sql)_Gambar ini menunjukkan diagram database dari tabel ________9______6
2) MySQL CREATE TABLE dengan contoh kunci primer kunci asing
Misalkan setiap tugas memiliki daftar periksa atau daftar tugas. Untuk menyimpan daftar periksa tugas, Anda dapat membuat tabel baru bernama
CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );
Code language: SQL (Structured Query Language) (sql)6 sebagai berikutCREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );
Code language: SQL (Structured Query Language) (sql)Tabel
CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );
Code language: SQL (Structured Query Language) (sql)_6 memiliki kunci utama yang terdiri dari dua kolom. Oleh karena itu, kami menggunakan batasan tabel untuk menentukan kunci utamaPRIMARY KEY (todo_id , task_id)
Code language: SQL (Structured Query Language) (sql)Selain itu,
PRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)_7 adalah kolom kunci asing yang merujuk ke kolomPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)7 dari tabelPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)6, kami menggunakan batasan kunci asing untuk menetapkan hubungan iniFOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE
Code language: SQL (Structured Query Language) (sql)Anda akan mempelajari lebih lanjut tentang batasan kunci asing di tutorial selanjutnya
Gambar ini menggambarkan tabel
CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );
Code language: SQL (Structured Query Language) (sql)_6 dan hubungannya dengan tabelPRIMARY KEY (col1,col2,...)
Code language: SQL (Structured Query Language) (sql)6Dalam tutorial ini, Anda telah belajar bagaimana menggunakan pernyataan MySQL CREATE TABLE untuk membuat tabel baru di database