Wednesday, September 28, 2016

SQL: CREATE TABLE

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,
 ....
 )
Tipe data disesuaikan dengan karakteristik dari data-data setiap kolom atau field. Untuk refferensi tipe data dapat anda baca pada artikel: SQL: Tipe-tipe data

Contoh Pernyataan CREATE TABLE

Jika database belum ada maka buatlah database kepegawaian terlebih dahulu. Dengan perintah, sebagai berikut:
CREATE DATABASE kepegawaian
Jika diketahui contoh data tabel pegawai sebagai berikut:

Perintah SQLnya 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
Contoh penggunaan NULL dan NOT NULL :
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)
)
Contoh pernyataan diatas menunjukkan bahwa field nip, nama, alamat, gol, kode_jabatan, kode_fungsional wajib diisi. Sedangkan field tempat_lahir dan tanggal_lahir tidak wajib diisi atau dapat dikosongkan.

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.
Sebagai contoh relasi tabel sebagai berikut:
Relasi Tabel

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
)
Opsi pada perintah tersebut jelasnya dibawah ini.
  • 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

latihan pernyataan CREATE TABLE
latihan pernyataan CREATE TABLE
  1. Gambarkan skema basis data dari contoh data diatas
  2. Buatlah struktur tabel-tabel berikut menggunakan pernyataan CREATE TABLE lengkap dengan klausa PRIMARY KEY, FOREIGN KEY dan ON UPDATE DELETE

This Is The Newest Post

1 comments so far

Top 10 Casino Apps - Casinoworld
In this section we'll walk kadangpintar you worrione.com through our selection 바카라사이트 of top casino 1xbet korean apps, and hopefully you'll find plenty of useful information on the top How do you use poormansguidetocasinogambling.com PayPal?Are there any deposit bonuses at your casino?