Lewati ke konten utama

Pengantar Pernyataan ALTER TABLE dalam SQL

Dalam tutorial ini, Anda akan mempelajari cara menggunakan dan menerapkan pernyataan ALTER TABLE dalam SQL.
Diperbarui 28 Sep 2026  · 7 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Dalam SQL, secara umum ada tiga jenis perintah -

  • DDL - singkatan dari Data Definition Language yang mencakup perintah SQL untuk mendefinisikan basis data, termasuk membuat tabel, memberikan spesifikasi, memodifikasi tabel, dan sebagainya. Contoh DDL meliputi CREATE, DROP, ALTER, dll. Perubahan yang disebabkan oleh perintah DDL tidak dapat dibatalkan (rollback).

  • DML - singkatan dari Data Manipulation Language yang memungkinkan Anda menjalankan kueri select, insert, update, dan delete. Perubahan yang disebabkan oleh perintah DML dapat dibatalkan. Contoh - SELECT, INSERT, UPDATE, dan DELETE.

  • DCL - singkatan dari Data Control Language yang memungkinkan Anda menentukan hak akses, izin, dan kontrol lain dari sistem basis data Anda.

Dalam tutorial ini, Anda akan melihat penggunaan pernyataan ALTER TABLE yang bersifat DDL. Berikut adalah materi yang akan dibahas dalam tutorial ini -

  • Kebutuhan pernyataan ALTER TABLE
  • Membuat tabel di basis data PostgreSQL
  • Menjalankan berbagai pernyataan ALTER TABLE di PostgreSQL

Catatan: Tutorial ini tidak akan mengajarkan cara membuat tabel, menyisipkan data ke tabel, atau menyeleksi data dari tabel di PostgreSQL. Jika Anda ingin penyegaran materi tersebut, Anda dapat melihat artikel ini.

Kebutuhan Pernyataan ALTER TABLE

Spesifikasi sebuah basis data dapat berubah seiring waktu. Misalnya, Anda mungkin perlu menambahkan kolom ke tabel tertentu, atau perlu menambahkan kunci utama lain ke sebuah tabel. Anda juga mungkin perlu mengubah tipe data dari kolom tertentu dalam tabel. Anda mungkin tidak bisa begitu saja menghapus tabel dan membuatnya kembali dari awal. Pernyataan Alter Table memungkinkan Anda melakukan semua ini dengan sangat mulus. Dengan Alter Table, Anda dapat -

  • Menambahkan, memodifikasi, atau menghapus kolom
  • Menambahkan atau menghapus constraint

Anda juga dapat mengaktifkan/menonaktifkan constraint, tetapi hal itu tidak dibahas dalam tutorial ini.

Anda akan melihat masing-masing use case di atas dalam tutorial ini, tetapi sebelum itu, Anda memerlukan sebuah tabel di PostgreSQL agar dapat memulai. Pada bagian berikutnya, Anda akan membuat tabel sederhana.

Membuat tabel di basis data PostgreSQL

Anda akan membuat tabel bernama student_details di PostgreSQL (menggunakan utilitas pgAdmin) dengan kolom dan tipe data berikut -

  • student_id (integer)
  • student_full_name (character)
  • student_year (integer)

Anda akan mulai dengan tabel ini yang hanya terdiri dari tiga kolom. Nanti, seiring Anda mengikuti tutorial, Anda akan menambahkan lebih banyak kolom ke tabel ini dan akan mengubah tabel dengan berbagai cara. Kueri create berikut akan membuat tabel sesuai spesifikasi di atas -

CREATE TABLE student_details(
 student_id SERIAL,
 student_full_name VARCHAR (50),
 student_year VARCHAR (100)
);

Mari sisipkan beberapa record ke tabel ini juga -

  • INSERT INTO student_details(student_full_name, student_year) VALUES('John Doe','1st');
  • INSERT INTO student_details(student_full_name, student_year) VALUES('Chris Villa','3rd');

Karena tipe data student_id disetel ke SERIAL, PostgreSQL akan secara otomatis menambah nilai kolom dan tipe data tersebut ditafsirkan sebagai integer secara default oleh PostgreSQL.

Tabel student_details seharusnya terlihat seperti ini -

Tabel student_details

Sekarang Anda sudah memiliki tabel di PostgreSQL. Mari kita lihat penerapan berbeda dari Alter Table pada bagian berikutnya.

Menjalankan berbagai pernyataan ALTER TABLE di PostgreSQL

Pada bagian ini, Anda akan melihat penggunaan pernyataan Alter Table dalam dua cara berikut seperti disebutkan di atas -

  • Menambahkan, memodifikasi, dan menghapus kolom
  • Menambahkan dan menghapus constraint

Menambahkan, memodifikasi, atau menghapus kolom

Mulailah dengan menambahkan satu kolom lagi bernama student_grade (bertipe character) ke tabel -

ALTER TABLE student_details ADD student_grade VARCHAR(5);

Sekarang, tabel seharusnya seperti berikut -

Tabel student_details dengan kolom student_grade

Perhatikan bahwa untuk entri yang Anda masukkan, nilainya null pada kolom student_grade. Ini secara implisit dilakukan oleh sebagian besar RDBMS. Namun, Anda selalu dapat menjalankan kueri update untuk memperbarui nilainya. Sekarang mari lihat cara memodifikasi kolom menggunakan Alter Table. Anda akan mengubah ukuran maksimum yang diizinkan untuk kolom student_year dari 100 menjadi 10 karena mengalokasikan terlalu banyak ruang untuk hanya tiga karakter (student_year bisa 1st, 2nd, atau 3rd) tidaklah praktis.

ALTER TABLE student_details ALTER COLUMN student_year TYPE VARCHAR(10);

Anda dapat melihat hasilnya pada gambar berikut -

Tabel student_details dengan student_year (10)

Anda juga dapat mengganti nama kolom. Mari lihat caranya -

ALTER TABLE student_details RENAME student_id TO student_roll;

Kueri di atas mengganti nama kolom student_id menjadi student_roll. Anda juga dapat memverifikasinya menggunakan kueri select, dan hasil Anda seharusnya mirip dengan gambar berikut -

Tabel student_details dengan kolom yang diubah namanya menjadi student_roll

Sekarang mari lihat bagaimana Anda dapat menghapus kolom dari sebuah tabel -

ALTER TABLE student_details DROP COLUMN student_year;

Kueri tersebut menghapus kolom student_year dan setelah dieksekusi, tabel akan menjadi seperti -

Tabel student_details setelah menghapus kolom student_year

Perhatikan bahwa jika kolom yang Anda hapus direferensikan oleh tabel lain, Anda mungkin mendapatkan error pelanggaran integritas referensial.

Sekarang Anda akan melihat cara menambahkan dan menghapus constraint pada sebuah tabel.

Menambahkan dan menghapus constraint.

Tabel student_details belum memiliki kunci utama. Kunci utama adalah gabungan constraint not null dan unique. Mari tentukan kolom student_roll (yang telah diubah dari student_id) sebagai kunci utama dari student_details -

ALTER TABLE student_details ADD PRIMARY KEY (student_roll);

Anda juga dapat menambahkan constraint lain, misalnya, Anda dapat menambahkan constraint check pada kolom student_grade sehingga nilainya selalu A, B, atau C.

ALTER TABLE student_details ADD CONSTRAINT year_check CHECK (student_grade IN ('A', 'B', 'C'));

year_check adalah placeholder untuk constraint yang Anda tambahkan ke tabel. Sekarang jika Anda mencoba menyisipkan entri berikut ke tabel, Anda akan mendapatkan error -

INSERT INTO student_details(student_full_name, student_grade) VALUES('David Lune','3rd');

Error-nya terlihat seperti berikut -

hasil error

Menghapus constraint juga serupa. Anda perlu menentukan nama constraint yang ingin dihapus. Mari hapus constraint yang Anda beri nama year_check -

ALTER TABLE student_details DROP CONSTRAINT year_check;

Mari verifikasi. Jika constraint year_check benar-benar dihapus, maka kueri ini INSERT INTO student_details(student_full_name, student_grade) VALUES('David Lune','3rd'); tidak akan menimbulkan error. Tabel sekarang memuat record tersebut -

tabel final

Anda juga dapat mencoba constraint check lainnya.

Sekian untuk tutorial ini!

Tutorial ini memperkenalkan Anda pada pernyataan Alter Table untuk secara efektif memodifikasi skema sebuah tabel. Jika Anda ingin meningkatkan keterampilan SQL Anda, Anda mungkin tertarik mengikuti kursus berikut yang ditawarkan oleh DataCamp -

Topik
SQL

Kursus SQL

Kursus

Analisis Data Eksploratif di SQL

4 jam
188.2K
Pelajari cara menjelajahi apa saja yang tersedia di dalam database: tabel, hubungan antar tabel, dan data yang disimpan di dalamnya.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya