Lompat ke konten Lompat ke sidebar Lompat ke footer

SQL: CREATE TABLE - Kita Koding

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

Posting Komentar untuk "SQL: CREATE TABLE - Kita Koding"