Kursus
SQL sangat penting bagi data scientist dan data engineer untuk mengambil wawasan dari database. Sebuah database terdiri atas banyak tabel, dan ada beragam varian SQL mulai dari PostgreSQL hingga Snowflake.
Data Definition Language (DDL) dalam SQL digunakan untuk mendefinisikan dan mengelola struktur objek database. Dalam artikel ini, saya akan menjelaskan perintah DDL di SQL dengan contoh menggunakan Movies Database. Mari mulai!
Apa Itu Perintah DDL dalam SQL?
Data Definition Language (DDL) memungkinkan saya mendefinisikan dan mengelola sebuah skema di SQL. Singkatnya, skema dalam SQL adalah cetak biru yang menentukan bagaimana data diatur dalam sebuah database dan bagaimana relasi antar berbagai tabel di dalamnya dikelola.
Perintah DDL terdiri atas beberapa perintah dengan fungsionalitas berbeda, yang akan saya bahas dalam urutan berikut:
|
Perintah DDL |
DESKRIPSI |
SINTAKS |
|
|
Membuat tabel dan kolom-kolomnya beserta tipe datanya. |
|
|
|
Mengubah nama kolom dan menambah atau menghapus kolom. |
|
|
|
Mengganti nama tabel. |
|
|
|
Menambahkan penjelasan pada kode SQL agar dapat ditinjau anggota tim lain. |
|
|
|
Menghapus data dari sebuah tabel tanpa menghapus tabelnya. |
|
|
|
Menghapus tabel beserta datanya. |
|
Perintah DDL dalam SQL dengan Contoh
Kini setelah kita memahami dasar perintah DDL dan tujuannya, mari telusuri beberapa contoh praktis menggunakan Movies database.
Perintah CREATE dalam SQL
Saat saya perlu membuat tabel baru, saya menggunakan perintah CREATE TABLE seperti di bawah ini:
CREATE TABLE table_name (
column_1 datatype,
column_2 datatype,
...,
column_n datatype
);
Pada contoh di atas, saya mendefinisikan kolom dengan tipe data berbeda. SQL mendukung berbagai tipe data, meskipun yang paling umum biasanya STRING (teks), INT (bilangan bulat), FLOAT (bilangan desimal), dan DATE (tanggal).
Misalnya, jika saya ingin membuat tabel actor, saya gunakan CREATE TABLE seperti berikut:
CREATE TABLE actor (
actor_id String(32767),
first_name String(32767),
last_name String(32767),
last_update String(32767)
);
Dengan ketentuan:
actoradalah nama tabelactor_idadalah nama kolom yang isinya diharapkan berformat teks (String) dan tidak melebihi 32767 karakter.first_nameadalah nama kolom yang isinya diharapkan berformat teks (String) dan tidak melebihi 32767 karakter.last_nameadalah nama kolom yang isinya diharapkan berformat teks (String) dan tidak melebihi 32767 karakter.last_updateadalah nama kolom yang isinya diharapkan berformat teks (String) dan tidak melebihi 32767 karakter.
Setelah saya mengeksekusi kueri, tabel baru akan terlihat bersama tabel lainnya, sehingga saya bisa melakukan kueri kapan saja.
Perintah ALTER dalam SQL
Dengan menggunakan ALTER di SQL, saya dapat memperbarui sebuah tabel tanpa harus membuat tabel lain dan menghapus yang lama. Organisasi bisa memiliki ribuan tabel, dan mengetahui cara menjaga data tetap mutakhir tanpa berisiko kehilangan data sangatlah penting.
Perlu dicatat bahwa ada berbagai cara menggunakan ALTER—termasuk:
- Menambahkan kolom baru pada sebuah tabel
- Mengganti nama kolom pada sebuah tabel
- Memodifikasi kolom pada sebuah tabel
- Menghapus kolom pada sebuah tabel
Perintah ADD dalam ALTER
Untuk menambahkan kolom baru menggunakan ALTER, kita menggabungkan perintah ALTER dengan perintah ADD, seperti berikut:
ALTER TABLE table_name ADD column_name datatype;
Di sini, kita menambahkan kolom baru nationality dengan tipe data STRING ke tabel actor.
ALTER TABLE actor ADD nationality String(32767);
Semua perintah ALTER dalam SQL mengikuti struktur yang serupa, membuat SQL terasa alami untuk dipelajari dan dikuasai.
Perintah RENAME dalam ALTER
Setiap kali saya perlu mengganti nama kolom, saya menggunakan perintah RENAME dalam ALTER seperti berikut:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
Sebagai contoh, mari ubah nama kolom last_name menjadi family_name agar tidak membingungkan apakah merujuk pada nama tengah atau nama keluarga. Dalam hal ini, saya akan menjalankan kueri berikut:
ALTER TABLE actor RENAME COLUMN last_name TO family_name;
Perintah MODIFY dalam ALTER
Tipe data mendefinisikan properti kolom dan memengaruhi kualitas data. Misalnya, last_update disetel sebagai String(text), tetapi data jelas menunjukkan bahwa kolom tersebut merepresentasikan tanggal dan waktu.
Melihat berbagai tipe data dan merujuk kembali pada data di kolom tersebut, tipe data yang tepat adalah TIMESTAMP.
Mengubah tipe data kolom secara tepat memudahkan agregasi dan pemfilteran data berdasarkan tanggal menggunakan perintah SQL lainnya. Berikut cara kita menggunakan MODIFY di SQL:
ALTER TABLE table_name ALTER COLUMN column_name datatype;
Merefleksikan hal di atas pada last_update, saya menggunakan kueri berikut:
ALTER TABLE actor ALTER COLUMN last_update TIMESTAMP;
Perintah DROP dalam ALTER
Opsi terakhir yang ditawarkan ALTER adalah menghapus kolom. Ada banyak alasan mengapa saya perlu DROP sebuah kolom, termasuk namun tidak terbatas pada:
- Informasi yang tidak lagi relevan,
- Informasi duplikat, di mana kolom yang sama ditemukan di tabel lain,
- Masalah kualitas data,
- Optimasi ruang penyimpanan.
Menghapus kolom di SQL itu mudah, tetapi gunakan dengan hati-hati karena tidak selalu mungkin untuk membatalkan aksi penghapusan kolom.
ALTER TABLE table_name DROP COLUMN column_name;
Perintah untuk menghapus kolom mirip dengan mengganti nama kolom, namun keduanya bukan hal yang sama. Mengganti nama kolom mempertahankan data di dalam kolom tetapi mengubah header-nya. Di sisi lain, perintah DROP menghapus baik data maupun header, seolah-olah kolom tersebut tidak pernah ada.
Setelah menyadari bahwa kolom last_update memberikan sedikit informasi selain menandai apakah database diperbarui, saya memutuskan untuk menghapusnya menggunakan kueri berikut:
ALTER TABLE actor DROP COLUMN last_update;
Perintah RENAME dalam SQL
Perintah RENAME hanya berlaku untuk mengubah nama tabel dan jangan disamakan dengan kemampuan RENAME milik ALTER. Faktanya, untuk mengubah nama sebuah tabel, kuerinya cukup:
RENAME TABLE old_table_name TO new_table_name;
Tabel actor hanya berisi nama dan tidak menyertakan informasi lain tentang para aktor. Oleh karena itu, masuk akal untuk memperjelasnya dengan mengubah nama tabel menjadi:
RENAME TABLE actor TO actor_names;
COMMENT dalam SQL
Memberi komentar di SQL penting untuk kejelasan dan konteks, membuat kueri Anda lebih mudah dipahami dan dipelihara. Ini membantu menjelaskan logika yang kompleks, mendokumentasikan perubahan, dan menjelaskan alasan pilihan tertentu. Di SQL, Anda dapat menambahkan komentar dengan dua cara:
- Komentar satu baris
- Komentar multi-baris
Mari kita lihat penerapannya.
Komentar satu baris di SQL
Komentar satu baris biasanya ditulis berdampingan dengan kode, seperti di bawah ini. Dengan demikian, saya dapat membaca komentar rekan sambil membaca kodenya.
Pada tabel actor, actor_id dan last_update kurang intuitif dan perlu diperjelas dengan komentar.
CREATE TABLE actor (
actor_id String(32767), --unique identifier
first_name String(32767),
last_name String(32767),
last_update String(32767)--datetime of last update
);
Memberi komentar di SQL adalah perintah yang berbeda dari yang lain di artikel ini karena tidak memanggil fungsi COMMENT. Dua tanda minus tanpa spasi di antaranya '--' menandai awal komentar. Apa pun yang ditulis setelahnya tidak akan dianggap sebagai bagian dari kode.
Komentar multi-baris di SQL
Saat penjelasan lebih panjang, gunakan komentar multi-baris. Ini lebih disukai untuk menjelaskan sebuah fungsi atau memberikan konteks terperinci. Untuk menambahkan komentar multi-baris di SQL, mulai dengan /* dan akhiri dengan */. Mesin SQL mengabaikan apa pun yang ditulis di antara /* dan */ dan tidak mengeksekusinya sebagai bagian dari kueri.
/* Create a table `actor` with the actors’ names. Store first and last name, and keep track of any updates*/
CREATE TABLE actor (
actor_id String(32767), --unique internal identifier
first_name String(32767),
last_name String(32767),
last_update String(32767)--datetime of last update
);
Perintah TRUNCATE dalam SQL
Melakukan truncate pada tabel tidak sama dengan menghapusnya. Truncate menghapus semua data tetapi mempertahankan struktur tabel, sedangkan menghapus akan menghilangkan seluruh tabel beserta strukturnya. Perlu kehati-hatian untuk memilih perintah yang tepat sesuai tujuan.
Padanan TRUNCATE di Excel dapat dilakukan dengan memilih semua data di bawah nama kolom, lalu tekan delete. Di SQL, saya menulis:
TRUNCATE TABLE table_name;
Jika tabel actor perlu di-truncate, saya mengeksekusi:
TRUNCATE TABLE actor;
Hasilnya adalah tabel yang hanya berisi nama kolom tanpa nilai.
Perintah DROP dalam SQL
Berlawanan dengan TRUNCATE, perintah DDL DROP menghapus tabel dan seluruh nilainya sekaligus. Harus berhati-hati saat mengeksekusi perintah seperti ini, karena aksi tersebut tidak selalu dapat dibatalkan. Perintah DROP memiliki struktur serupa dengan kueri TRUNCATE:
DROP TABLE table_name;
Sehingga menghapus tabel actor semudah
DROP TABLE actor;
Meskipun varian SQL yang berbeda mungkin memerlukan sedikit perubahan sintaks, perintah DDL di atas pada dasarnya sama apa pun versi SQL yang Anda gunakan.
Perintah DDL vs Jenis Perintah Lain
Pada bagian sebelumnya, saya menjelaskan bagaimana perintah DDL mendefinisikan struktur tabel dan memperbarui konten atau propertinya sesuai kebutuhan. Jenis perintah SQL lain memungkinkan seleksi, agregasi, pembaruan, bahkan penggabungan tabel untuk mendapatkan sudut pandang berbeda atas data, dan tiap kelompok perintah memiliki tujuan spesifik.
|
Perintah |
Definisi |
Tujuan |
|
DQL |
Data Query Language |
Mengambil data dari database berdasarkan kriteria |
|
DML |
Data Manipulation Language |
Memanipulasi tabel di dalam database dengan fungsionalitas lebih banyak daripada ALTER. |
|
DCL |
Data Control Language |
Kontrol perizinan atas akses dan otoritas. |
|
TCL |
Transaction Control Language |
Menerapkan pembaruan ke database atas perubahan yang dilakukan menggunakan perintah DML |

Bangun Keahlian SQL Anda dengan DataCamp
Kualitas data yang baik dicapai saat data terdefinisi dan terstruktur dengan baik. Perintah DDL dalam SQL membantu profesional data membangun dan memelihara database yang terstruktur. Perintah SQL lainnya, seperti perintah DML, memungkinkan Anda melihat, mengagregasi, memasukkan, memfilter, dan menggabungkan data. Pelajari lebih lanjut tentang SQL dan bangun keterampilan Anda dengan menjelajahi sumber daya berikut:
- Pelajari berbagai jenis perintah untuk bekerja dengan SQL
- Simpan lembar contekan SQL agar akrab dengan praktik terbaik dan perintah yang sering digunakan.
- Persiapkan wawancara SQL dengan Panduan Top Wawancara SQL kami
Profesional Data dan AI dengan pengalaman luas dalam membangun model data science kustom menggunakan teknik statistik serta model lanjutan seperti deret waktu, LLM, Jaringan Saraf, dan Teori Graf.

