DDL (Data Definition Language) merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, atribut (kolom), batasan-batasan terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini adalah CREATE, ALTER, dan DROP.
Penggunaan dari masing-masing perintah dapat dijelaskan sebagai berikut:
1. Syntax Membuat Database (CREATE)
Nama database tidak boleh mengandung spasi dan tidak boleh memiliki nama yang sama antar database. Berikut ini perintah untuk membuat database:
CREATE DATABASE minimarket;
2. Memilih Database
Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu database sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel, Berikut ini perintah untuk menggunakan database:
USE minimarket;
3. Syntax Menghapus Database
Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah untuk menghapus database:
DROP DATABASE minimarket;
4. Membuat Tabel
Namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1 merupakan nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin membuat tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma (,). Berikut ini perintah untuk membuat tabel:
CREATE TABLE produk (id_produk INT(10), nama_produk VARCHAR(255), harga INT(11), stok INT(11), kategori VARCHAR(255), tgl_exp DATE);
5. Syntax Menghapus Tabel
Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untuk menghapus tabel:
DROP TABLE produk;
6. Mendefinisikan Null/Not Null
NULL dan Not NULL merupakan default value dari sebuah kolom yang diizinkan NULL atau tidak:
CREATE TABLE transaksi (id_transaksi INT(11) NOT NULL, jenis_bayar VARCHAR(255), tanggal DATE, total INT(255));
7. Mendefinisikan Nilai Default
Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika ada penambahan baris baru, sementara nilai pada kolom tersebut tidak diisi oleh pengguna:
CREATE TABLE transaksi_detail (id_detail INT(11), id_transaksi INT(11), id_produk INT(11), jumlah_beli INT(11) DEFAULT 1);
8. Mendefinisikan Primary Key Pada Tabel
Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah Syntax mendefinisikan primary key untuk Field1
CREATE TABLE namatabel (Field1 TipeData1 NOT NULL PRIMARY KEY, Field2 TipeData2);
atau
CREATE TABLE namatabel (Field1 TipeData1, Field2 TipeData2, PRIMARY KEY(Field1));
atau
ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY (namakolom);
9. Menghapus Primary Key Pada Tabel
ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;
atau
ALTER TABLE namatabel DROP PRIMARY KEY;
10. Menambah Kolom Baru Pada Tabel
ALTER TABLE namatabel ADD fieldbaru tipe;
Namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah nama kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan ditambahkan. Berikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25) :
ALTER TABLE produk ADD keterangan VARCHAR(25);
Untuk meletakkan field diawal, tambahkan sintaks first :
ALTER TABLE produk ADD COLUMN keterangan VARCHAR(10) FIRST;
Untuk menyisipkan field setelah field tertentu, tambahkan sintaks after :
ALTER TABLE produk ADD COLUMN keterangan VARCHAR(255) AFTER stok;
11. Mengubah Tipe Data atau Lebar Kolom Pada Tabel
ALTER TABLE NAMATABEL MODIFY COLUMN FIELD TIPE
atau
ALTER TABLE NAMATABEL ALTER COLUMN FIELD TIPE
Namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya. Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru atau tipe data lama dengan lebar kolom yang berbeda. Berikut ini perintah untuk mengubah tipe data untuk kolom keterangan dengan char(20) :
ALTER TABLE produk MODIFY COLUMN kategori VARCHAR(20);
atau
ALTER TABLE produk ALTER COLUMN kategori VARCHAR(20);
12. Mengubah Nama Kolom
ALTER TABLE namatabel CHANGE COLUMN namalamakolom namabarukolom tipedatabaru;
Namatabel adalah nama tabel yang akan diubah nama kolomnya, namalamakolom adalah kolom yang akan diganti namanya, namabarukolom adalah nama baru kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut ini perintah untuk mengubah nama kolom:
ALTER TABLE produk CHANGE COLUMN kategori kat VARCHAR(20);
13. Membuat AutoIncrement
Peningkatan otomatis memungkinkan nomor unik dihasilkan secara otomatis ketika catatan baru dimasukkan ke dalam tabel. AutoIncrement umumnya berpasangan dengan PrimaryKey.
ALTER TABLE produk CHANGE COLUMN id_produk id_produk INT(11) AUTO_INCREMENT;
14. Menghapus Kolom Pada Tabel
ALTER TABLE namatabel DROP COLUMN namakolom;
15. Membuat dan Menghapus Index
Index berfungsi mempercepat proses pencarian data dalam suatu tabel. Adanya
index pada suatu field tabel menyebabkan proses pencarian otomatis akan dilakukan terlebih dahulu ke dalam index, apabila ditemukan baru akan diambilkan data sesungguhnya dari tabel, apabila tidak ditemukan dalam index, sudah dipastikan bahwa data tesebut memang tidak ada dalam tabel. Index juga dapat dibuat untuk setiap kolom yang akan dijadikan kriteria tertentu untuk pencarian data sehingga proses pencariannya akan lebih cepat. Ada perintah untuk membuat dan menghapus index, tapi tidak ada perintah untuk merubah index. Perhatikan contoh berikut :
CREATE INDEX idx_nama_produk ON produk(nama_produk);
atau
ALTER TABLE produk ADD INDEX idx_nama_produk (nama_produk);
Untuk menghapus index :
DROP INDEX idx_nama_produk ON produk;
atau
ALTER TABLE produk DROP INDEX idx_nama_produk;