Fungsi pernyataan CREATE TABLE
Pernyataan CREATE TABLE termasuk dalam kateogri DDL (Data Definition Languange). Pernyataan ini digunakan untuk menciptakan suatu tabel dalam basis data.Bentuk umum Pernyataan CREATE TABLE
Adapun bentuk umum pernyataan CREATE TABLE pada mySQL sebagai berikut:
1
2
3
4
5
6
7
| CREATE TABLE nama_tabel ( nama_kolom1 data_type1 [ PRIMARY KEY ], nama_kolom2 data_type2, nama_kolom3 data_type3, .... ) |
Contoh Pernyataan CREATE TABLE
Jika database belum ada maka buatlah database kepegawaian terlebih dahulu. Dengan perintah, sebagai berikut:CREATE DATABASE kepegawaianJika diketahui contoh data tabel pegawai sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
| CREATE TABLE pegawai ( nip CHAR (6) PRIMARY KEY , nama VARCHAR (50), alamat VARCHAR (100), tempat_lahir VARCHAR (30), tanggal_lahir DATE , gol CHAR (2), kode_jabatan CHAR (3), kode_fungsional CHAR (2) ) |
Klausa PRIMARY KEY
Klausa PRIMARY KEY dapat diletakkan diakhir pertanyaan, menjadi sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
| CREATE TABLE pegawai ( nip CHAR (6), nama VARCHAR (50), alamat VARCHAR (100), tempat_lahir VARCHAR (30), tanggal_lahir DATE , gol CHAR (2), kode_jabatan CHAR (3), kode_fungsional CHAR (2) PRIMARY KEY (nip) ) |
Klausa NULL dan NOT NULL
- Klausa NULL digunakan untuk menentukan sebuah field dapat tidak diisi (NULL)
- Klausa NOT NULL digunakan untuk menentukan sebuah field wajin diisi dan tidak boleh kosong
1
2
3
4
5
6
7
8
9
10
11
12
| CREATE TABLE pegawai ( nip CHAR (6) NOT NULL , nama VARCHAR (50) NOT NULL , alamat VARCHAR (100) NOT NULL , tempat_lahir VARCHAR (30) NULL , tanggal_lahir DATE NULL , gol CHAR (2) NOT NULL , kode_jabatan CHAR (3) NOT NULL , kode_fungsional CHAR (2) NOT NULL PRIMARY KEY (nip) ) |
KLAUSA FOREIGN KEY
Dalam database relational ditemukan klausa primary key dan foreign key. Tujuan utama dari adanya kedua klausa adalah untuk mengidentifikasi relasi setiap tabel dengan tabel lain.- Primary key adalah field atau beberapa field pada tabel yang bersifat unik dan menjadi dasar pengurutan dalam suatu tabel .
- Foreign Key adalah satu atau beberapa field pada tabel yang merupakan field yang dihubungkan ke field primarykey tabel induknya.
Pada contoh skema basis data diatas dapat diketahui bahwa:
- Tabel jabatan memiliki primary key kode_jabatan
- Tabel fungsional memiliki primary key kode_fungsional
- Tabel pegawai memiliki primary key nip dan foreign key kode_jabatan dan kode_fungsional
1
2
3
4
5
6
7
8
9
10
11
12
13
| CREATE TABLE pegawai ( nip CHAR (6) NOT NULL PRIMARY KEY , nama VARCHAR (50) NOT NULL , alamat VARCHAR (100) NOT NULL , tempat_lahir VARCHAR (30) NULL , tanggal_lahir DATE NULL , gol CHAR (2) NOT NULL , kode_jabatan CHAR (3) NOT NULL FOREIGN KEY REFERENCES jabatan(Kode_jabatan), kode_fungsional CHAR (2) NOT NULL FOREIGN KEY REFERENCES fungsioanal(Kode_fungsional) ) |
Klausa ON DELETE dan ON UPDATE
Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key. Contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
| CREATE TABLE pegawai ( nip CHAR (6) NOT NULL PRIMARY KEY , nama VARCHAR (50) NOT NULL , alamat VARCHAR (100) NOT NULL , tempat_lahir VARCHAR (30) NULL , tanggal_lahir DATE NULL , gol CHAR (2) NOT NULL , kode_jabatan CHAR (3) NOT NULL FOREIGN KEY REFERENCES jabatan(Kode_jabatan) ON UPDATE DELETE , kode_fungsional CHAR (2) NOT NULL , FOREIGN KEY REFERENCES fungsioanal(Kode_fungsional) ON UPDATE DELETE ) |
- RESTRICT, Jika tabel anak berisi nilai dalam kolom yang mengkait yang nilainya sama dengan di kolom terkait pada tabel induk, baris dalam tabel induk tidak bisa dihapus, dan nilai di kolom terkait tidak dapat diupdate. Ini adalah opsi default jika klausa ON DELETE atau ON UPDATE tidak dispesifikasikan.
- CASCADE, Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-nilai yang berkaitan diupdate dalam tabel induk.
- SET NULL, Nilai-nilai dalam kolom yang mengkait dari tabel anak diset ke NULL saat baris-baris dengan data terkait dalam tabel induk dihapus dari tabel induk atau ketika data terkait dalam tabel induk diupdate. Untuk menggunakan opsi ini, semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai NULL.
- NO ACTION Tidak ada aksi yang diambil dalam tabel anak ketika baris-baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk diupdate.
- SET DEFAULT Nilai-nilai dalam kolom-kolom yang mengkait dari tabel anak diset ke nilai default mereka ketika baris-baris dihapus dari tabel induk atau kolom terkait dari tabel induk diupdate.
Tipe data MySQL
- tipe CHAR umumnya digunakan untuk field yang memiliki panjang data yang seragam. misalnya nip, gol, kode_jabatan, dan kode_fungsional
- tipe VARCHAR digunakan untuk field yang memiliki panjang data yang tidak seragam, misalnya nama, alamat dan tempat_lahir.
Latihan Pernyataan CREATE TABLE
- Gambarkan skema basis data dari contoh data diatas
- Buatlah struktur tabel-tabel berikut menggunakan pernyataan CREATE TABLE lengkap dengan klausa PRIMARY KEY, FOREIGN KEY dan ON UPDATE DELETE