![]() |
![]() |
Structured Query Language (SQL) adalah suatu bahasa database standar industri. SQL menyediakan Data Definiton Language (DDL) dan Data Manipulation Language (DML). Walaupun dalam beberapa bagian saling bersangkutan, perintah DDL memungkinkan kita untuk membuat dan mendefinisikan tabel (CREATE TABLE), dan index (CREATE INDEX), sedangkan perintah DML memungkinkan anda untuk membangun query untuk mengambil data (SELECT) dari beberapa tabel, menyisip (INSERT) data baru, memperbaiki (UPDATE) data, dan menghapus (DELETE).
CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])
Perintah CREATE TABLE digunakan untuk mendefinisikan suatu tabel baru beserta fieldnya dan konstraint, jika NOT NULL disebutkan, maka record baru membutuhkan data yang sah untuk field tersebut.
CONSTRAINT clause dapat digunakan untuk membuat berbagai batasan pada field
termasuk PRIMARY KEY, anda dapat juga menggunakan perintah CREATE INDEX untuk
membuat index dan PRIMARY KEY pada tabel yang ada. CONSTRAINT clause menyerupai
CREATE INDEX, tetapi dapat digunakan untuk membuat Relation antar tabel.
CONSTRAINT name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreigntable [(foreignfield1, foreignfield2)]}
dimana :
table | nama tabel yang akan dibuat |
field1, field2 | nama field |
type | jenis data pada masing-masing field |
size | ukuran field untuk jenis data TEXT dan Binary |
index | untuk membuat CONSTRAINT |
jenis data pada database JET
Jenis Data | Ukuran Penyimpanan | Keterangan |
BINARY | 1 byte per karakter | Menyimpan segala jenis data sebagaimana adanya tanpa translasi. |
BIT | 1 byte | Menyimpan nilai Yes atau No. |
BYTE | 1 byte | Menyimpan nilai integer 0 s/d 255 |
COUNTER | 4 byte | Menyimpan nilai numerik yang otomatis bertambah setiap record baru ditambahkan. |
CURRENCY | 8 byte | Menyimpan suatu nilai skalar antara – 922,337,203,685,477.5808 dan 922,337,203,685,477.5807 |
DATETIME | 8 byte | Menyimpan suatu nilai tanggal dan waktu antara tahun 100 s/d 9999 |
GUID | 128 byte | Menyimpan suatu nomor identifikasi unik yang digunakan untuk RPC |
SINGLE | 4 byte | Menyimpan suatu nilai floating point single-precision dengan jangkauan – 3.402823E38 s/d – 1.401298E-45 untuk nilai negatif , 1.401298E-45 s/d 3.402823E38 untuk nilai positif dan 0. |
DOUBLE | 8 byte | Menyimpan suatu nilai floating point double-precision dengan jangkauan – 1.79769313486232E308 s/d – 4.94065645841247E-324 untuk nilai negatif, 4.94065645841247E-324 s/d 1.79769313486232E308 untuk nilai positif, dan 0 |
SHORT | 2 byte | Menyimpan suatu nilai short integer antara – 32,768 dan 32,767. |
LONG | Menyimpan suatu nilai long integer antara – 2,147,483,648 dan 2,147,483,647. | |
LONGTEXT | 1 byte per karakter | Kosong s/d maksimal 1.2 gigabytes. |
LONGBINARY | Sesuai dengan kebutuhan | Kosong s/d maksimal 1.2 gigabytes. Digunakan untuk objek OLE. |
TEXT | 1 byte per karakter | 0 s/d 255 karakter |
Contoh :
Nama Field | Type | Size | AutoIncrField | AllowNulls | Require |
ForumID | Text | 25 | Tidak | Ya | |
Keterangan | Text | 50 | |||
Alamat | Text | 50 | Tidak | Ya |
Primary Key (P_Key) dengan field ForumID
Perintah SQL :
CREATE TABLE FORUM ( ForumID TEXT(25) NOT NULL CONSTRAINT P_KEY PRIMARY KEY, Keterangan TEXT(50), Alamat TEXT(50) NOT NULL);
atau
CREATE TABLE FORUM ( ForumID TEXT(25) NOT NULL , Keterangan TEXT(50), Alamat TEXT(50) NOT NULL, CONSTRAINT P_KEY PRIMARY KEY (ForumID));
Nama Field | Type | Size | AutoIncrField | AllowNulls | Require |
Status | Byte | 1 | Tidak | Ya | |
Keterangan | Text | 50 |
Primary Key (P_Key) dengan field Status
Perintah SQL :
CREATE TABLE STATUS ( Status BYTE NOT NULL CONSTRAINT P_KEY PRIMARY KEY, Keterangan TEXT(50));
Nama Field | Type | Size | AutoIncrField | AllowNulls | Require |
Text | 25 | Tidak | Ya | ||
Nama | Text | 50 | |||
Alamat | Text | 50 | |||
Kota | Text | 50 | |||
Telepon | Text | 25 | |||
Homepage | Text | 50 | |||
Perusahaan | Text | 50 | |||
TanggalGabung | Date | 8 |
Primary Key (P_Key) dengan field Email
Perintah SQL :
CREATE TABLE PESERTA (Email TEXT(25) NOT NULL CONSTRAINT P_KEY PRIMARY KEY, Nama TEXT(50), Alamat TEXT(50), Kota TEXT(50), Telepon TEXT(50), Homepage TEXT(50), Perusahaan TEXT(50), TanggalGabung Date);
Nama Field | Type | Size | AutoIncrField | AllowNulls | Require |
ID | Long | 4 | Ya | ||
Text | 25 | Tidak | Ya | ||
ForumID | Text | 25 | Tidak | Ya | |
Status | Byte | Tidak | Ya |
Primary Key (P_Key) dengan field ID
Berserta Relation terhadap tabel PESERTA, FORUM dan STATUS
Nama Field (Foreign key) | Foreign Tabel | Foreign Field |
Peserta | ||
ForumID | Forum | ForumID |
Status | Status | Status |
Perintah SQL :
CREATE TABLE AKTIFITAS ( ID COUNTER CONSTRAINT P_KEY PRIMARY KEY, Email TEXT(25) NOT NULL CONSTRAINT AktifitasPeserta REFERENCES PESERTA(Email), ForumID TEXT(25) NOT NULL CONSTRAINT AktifitasForum REFERENCES FORUM (ForumID), Status BYTE CONSTRAINT AktifitasStatus REFERENCES STATUS(Status));
CREATE [ UNIQUE ] INDEX indexON table (field [ASC|DESC][, field [ASC|DESC], ...])[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
Membuat suatu index pada tabel yang telah ada.
dimana :
index | nama dari index yang akan dibuat |
table | nama dari tabel yang akan mengandung index tersebut |
field | nama dari field yang akan di index |
Gunakan UNIQUE untuk membuat nilai unik terhadap field tertentu sehingga tidak memungkinkan duplikasi data. Gunakan WITH clause untuk menentukan apakah :
Contoh membuat Index S_KEY berdasarkan Nama pada tabel PESERTA, perintah SQL DDL-nya adalah sebagai berikut :
CREATE INDEX S_KEY ON PESERTA(NAMA);
ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] |CONSTRAINT multifieldindex} |DROP {COLUMN field I CONSTRAINT indexname} }
Melakukan modifikasi terhadap rancangan tabel yang telah ada.
dimana :
table | Nama dari tabel |
field | Nama field yang akan ditambah (ADD), dihapus (DROP) |
type | Type field yang akan ditambahkan |
size | Ukuran field yang akan ditambahkan |
index | Perintah CONSTRAINT clause |
indexname | Nama index yang akan dihapus |
Contoh menambahkan field Keterangan Text(50) pada tabel aktifitas :
ALTER TABLE Aktifitas ADD COLUMN Keterangan Text(50);
DROP {TABLE table | INDEX index ON table}
Menghapus tabel yang ada dalam database, atau index dari suatu tabel
table | nama tabel yang akan dihapus atau tabel dimana index berada |
index | nama index yang akan dihapus |
Contoh menghapus tabel TEMP
DROP TABLE Temp;
Latihan 1, Pembuatan Tabel, Index dan Konstraint dengan DML
Latihan 2, Tantangan pemakaian DDL SQL
Latihan 3, Memanfaatkan beberapa Data Kontrol pada 1 Form untuk Validasi
Latihan 4, Tantangan Pemrograman