Pengenalan Data Definition Language (DDL)
DDL merupakan kepanjangan dari Data Definition Language, yaitu kumpulan perintah untuk menggambarkan desain database secara menyeluruh pada SQL (Structure Query Language). Perintah-perintah utama dalam DDL meliputi:
- CREATE: Digunakan untuk membuat objek baru.
- ALTER: Digunakan untuk mengubah struktur objek yang sudah ada.
- DROP: Digunakan untuk menghapus objek.
Penggunaan Perintah CREATE, ALTER, dan DROP pada MySQL
a. CREATE
Perintah CREATE digunakan untuk membuat database baru, tabel baru, maupun view baru.
- Contoh:
CREATE DATABASE toko_buku; - Penjelasan: Perintah tersebut berfungsi untuk membuat sebuah database baru dengan nama
toko_buku.
b. ALTER
Perintah ALTER digunakan untuk mengubah struktur tabel yang telah dibuat sebelumnya. Operasi ini dapat dilakukan untuk menambah, menghapus, mengubah kolom, memodifikasi tabel, hingga memberikan atribut baru pada kolom.
- Contoh:
ALTER TABLE buku ADD judul_buku varchar(20); - Penjelasan: Perintah tersebut berfungsi untuk menambah field (kolom) baru dengan nama
judul_bukuyang bertipe datavarchardengan panjang karakter maksimal 20 pada tabelbuku.
c. DROP
Perintah DROP berfungsi untuk menghapus objek pada database secara permanen. Objek tersebut dapat berupa database itu sendiri, tabel, function, index, procedure, trigger, atau view.
- Contoh:
DROP DATABASE toko_buku; - Penjelasan: Perintah tersebut berfungsi untuk menghapus database yang bernama
toko_buku.
Tipe-Tipe Data pada MySQL
Pemilihan tipe data yang tepat sangat penting untuk efisiensi penyimpanan database. Berikut adalah kategori tipe data pada MySQL:
A. Tipe Data Numerik (Angka)
Digunakan untuk menyimpan data bertipe angka.
- TINYINT: Menyimpan bilangan bulat (positif/negatif). Jangkauan: -128 s/d 127. Ukuran: 1 byte (8 bit).
- SMALLINT: Menyimpan bilangan bulat. Jangkauan: -32768 s/d 32767. Ukuran: 2 byte (16 bit).
- MEDIUMINT: Menyimpan bilangan bulat. Jangkauan: -8388608 s/d 8388607. Ukuran: 3 byte (24 bit).
- INT: Menyimpan bilangan bulat. Jangkauan: -2147483648 s/d 2147483647. Ukuran: 4 byte (32 bit).
- BIGINT: Menyimpan bilangan bulat dalam skala besar. Jangkauan: -9223372036854775808 s/d 9223372036854775807. Ukuran: 8 byte (64 bit).
- FLOAT: Menyimpan bilangan pecahan presisi tunggal. Ukuran: 4 byte (32 bit).
- DOUBLE / REAL: Menyimpan bilangan pecahan presisi ganda. Ukuran: 8 byte (64 bit).
- DECIMAL / NUMERIC: Menyimpan bilangan pecahan dengan presisi yang sangat tinggi. Ukuran: 8 byte (64 bit).
B. Tipe Data String (Teks)
Digunakan untuk menyimpan data berupa karakter atau teks.
- CHAR: Menyimpan data string dengan ukuran tetap (contoh: ID barang, NIK KTP). Jangkauan: 0 s/d 255 karakter.
- VARCHAR: Menyimpan data string dengan ukuran dinamis/berubah-ubah. Jangkauan: 0 s/d 65.535 karakter (pada versi terbaru).
- TINYTEXT: Menyimpan data teks pendek. Jangkauan: 0 s/d 255 karakter.
- TEXT: Menyimpan data teks standar. Jangkauan: 0 s/d 65.535 karakter.
- MEDIUMTEXT: Menyimpan data teks menengah. Jangkauan: 0 s/d 16.777.215 karakter.
- LONGTEXT: Menyimpan data teks sangat panjang. Jangkauan: 0 s/d 4.294.967.295 karakter.
C. Tipe Data Date and Time
Digunakan untuk menyimpan data waktu dan tanggal.
- DATE: Menyimpan tanggal (Format:
YYYY-MM-DD). Jangkauan: 1000-01-01 s/d 9999-12-31. Ukuran: 3 byte. - TIME: Menyimpan waktu (Format:
HH:MM:SS). Jangkauan: -838:59:59 s/d +838:59:59. Ukuran: 3 byte. - DATETIME: Gabungan tanggal dan waktu (Format:
YYYY-MM-DD HH:MM:SS). Jangkauan: 1000-01-01 00:00:00 s/d 9999-12-31 23:59:59. Ukuran: 8 byte. - YEAR: Menyimpan tahun (Format:
YYYY). Jangkauan: 1900 s/d 2155. Ukuran: 1 byte.
D. Tipe Data BLOB (Biner)
BLOB adalah singkatan dari Binary Large Object. Digunakan untuk menyimpan data biner murni, bersifat case-sensitive, dan ideal untuk file multimedia seperti gambar, dokumen, atau suara.
- BIT: Menyimpan data biner. Jangkauan: 64 digit biner.
- TINYBLOB: Jangkauan ukuran maksimal 255 byte.
- BLOB: Jangkauan ukuran maksimal 65.535 byte.
- MEDIUMBLOB: Jangkauan ukuran maksimal 16.777.215 byte.
- LONGBLOB: Jangkauan ukuran maksimal 4.294.967.295 byte.
Jenis-Jenis Key pada SQL
Key pada SQL adalah kombinasi dari beberapa atribut (kolom) yang berfungsi untuk membedakan baris data secara unik dalam sebuah tabel atau untuk menghubungkan (merelasikan) satu tabel dengan tabel lainnya.
- Super Key: Kumpulan atribut yang dapat digunakan untuk mengidentifikasi setiap baris data pada tabel secara unik.
- Candidate Key: Super key minimal yang tidak memiliki atribut berulang. Candidate key dipilih dari gabungan field yang paling sedikit untuk mengidentifikasi nilai unik.
- Primary Key: Candidate key yang terpilih sebagai identifikasi utama sebuah record. Data pada primary key tidak boleh kosong (Not Null) dan tidak boleh duplikat. Setiap tabel hanya boleh memiliki satu Primary Key.
- Alternate Key: Candidate key yang tidak terpilih menjadi Primary Key.
- Foreign Key: Kunci yang digunakan untuk merelasikan tabel satu dengan tabel lainnya, membentuk hubungan parent dan child. Primary Key pada tabel utama (parent) akan dirujuk oleh Foreign Key pada tabel terkait (child).
- Composite Key: Kunci yang terdiri dari dua atau lebih atribut untuk mengidentifikasi suatu entitas secara unik. Biasanya digunakan jika tidak ada satu pun kolom tunggal yang memenuhi syarat sebagai Primary Key.
Jenis-Jenis Constraint pada MySQL
Constraint adalah aturan pembatasan yang diterapkan pada kolom atau tabel untuk menjaga integritas dan validitas data.
- NOT NULL: Memastikan bahwa sebuah kolom tidak boleh dibiarkan kosong pada saat pengisian record. Kolom tersebut wajib diisi dengan data.
- UNIQUE: Memastikan bahwa setiap nilai dalam suatu kolom berbeda satu sama lain (tidak ada duplikasi record).
- PRIMARY KEY: Kombinasi dari constraint
NOT NULLdanUNIQUE. Mengidentifikasi setiap baris dalam tabel secara unik. Hanya diperbolehkan satuPRIMARY KEYdalam sebuah tabel. - FOREIGN KEY: Menjaga integritas referensial data antar tabel. Memastikan bahwa nilai pada kolom child harus memiliki rujukan yang valid di kolom parent (tabel lain).
- CHECK: Melakukan validasi atau pengecekan sebelum data disimpan ke dalam database. Data akan dievaluasi dengan nilai boolean; jika memenuhi syarat bernilai true dan disimpan, namun jika false, SQL akan menolaknya dan menampilkan pesan error.






