Perintah ALTER TABLE
📚 Pengenalan Perintah ALTER TABLE
Perintah ALTER TABLE digunakan untuk memodifikasi struktur tabel yang ada. Anda dapat menambah, mengubah, atau menghapus kolom, menambah atau menghapus constraint, dan melakukan perubahan lain pada struktur tabel.
Sintaks ALTER TABLE
Sintaks dasar untuk ALTER TABLE adalah:
ALTER TABLE nama_tabel action;
Menambah Kolom
Untuk menambah kolom baru ke tabel:
ALTER TABLE pelanggan ADD COLUMN telepon VARCHAR(15);
Anda juga dapat menambahkan beberapa kolom sekaligus:
ALTER TABLE pelanggan ADD COLUMN telepon VARCHAR(15), ADD COLUMN alamat TEXT, ADD COLUMN kota VARCHAR(50) DEFAULT 'Jakarta';
Mengubah Kolom
Untuk mengubah definisi kolom yang ada:
ALTER TABLE pelanggan MODIFY COLUMN nama VARCHAR(100);
Catatan: Sintaks untuk mengubah kolom mungkin berbeda tergantung pada sistem database. Di SQL Server, gunakan ALTER COLUMN, dan di PostgreSQL, gunakan ALTER COLUMN TYPE.
Menghapus Kolom
Untuk menghapus kolom dari tabel:
ALTER TABLE pelanggan DROP COLUMN telepon;
Anda juga dapat menghapus beberapa kolom sekaligus:
ALTER TABLE pelanggan DROP COLUMN telepon, DROP COLUMN alamat;
Menambah Constraint
Untuk menambah constraint ke tabel:
Menambah NOT NULL
ALTER TABLE pelanggan MODIFY COLUMN nama VARCHAR(50) NOT NULL;
Menambah UNIQUE
ALTER TABLE pelanggan ADD CONSTRAINT uc_email UNIQUE (email);
Menambah FOREIGN KEY
ALTER TABLE pesanan ADD CONSTRAINT fk_pesanan_pelanggan FOREIGN KEY (pelanggan_id) REFERENCES pelanggan(id);
Menambah CHECK
ALTER TABLE produk ADD CONSTRAINT chk_harga_positif CHECK (harga > 0);
Menghapus Constraint
Untuk menghapus constraint dari tabel:
ALTER TABLE pelanggan DROP CONSTRAINT uc_email;
Mengganti Nama Kolom
Untuk mengganti nama kolom:
ALTER TABLE pelanggan RENAME COLUMN nama TO nama_lengkap;
Catatan: Sintaks untuk mengganti nama kolom mungkin berbeda tergantung pada sistem database. Di SQL Server, gunakan sp_rename, dan di PostgreSQL, gunakan RENAME COLUMN.
Mengganti Nama Tabel
Untuk mengganti nama tabel:
ALTER TABLE pelanggan RENAME TO customer;
Catatan: Sintaks untuk mengganti nama tabel mungkin berbeda tergantung pada sistem database. Di SQL Server, gunakan sp_rename.
ALTER TABLE di Berbagai Sistem Database
Sintaks untuk ALTER TABLE mungkin sedikit berbeda tergantung pada sistem database yang digunakan:
MySQL
-- Menambah kolom ALTER TABLE pelanggan ADD COLUMN telepon VARCHAR(15); -- Mengubah kolom ALTER TABLE pelanggan MODIFY COLUMN nama VARCHAR(100); -- Menghapus kolom ALTER TABLE pelanggan DROP COLUMN telepon;
PostgreSQL
-- Menambah kolom ALTER TABLE pelanggan ADD COLUMN telepon VARCHAR(15); -- Mengubah kolom ALTER TABLE pelanggan ALTER COLUMN nama TYPE VARCHAR(100); -- Menghapus kolom ALTER TABLE pelanggan DROP COLUMN telepon;
SQL Server
-- Menambah kolom ALTER TABLE pelanggan ADD telepon VARCHAR(15); -- Mengubah kolom ALTER TABLE pelanggan ALTER COLUMN nama VARCHAR(100); -- Menghapus kolom ALTER TABLE pelanggan DROP COLUMN telepon;
Oracle
-- Menambah kolom ALTER TABLE pelanggan ADD telepon VARCHAR2(15); -- Mengubah kolom ALTER TABLE pelanggan MODIFY nama VARCHAR2(100); -- Menghapus kolom ALTER TABLE pelanggan DROP COLUMN telepon;
Contoh Lengkap ALTER TABLE
Berikut adalah contoh lengkap untuk memodifikasi tabel 'pelanggan':
-- Menambah kolom baru ALTER TABLE pelanggan ADD COLUMN telepon VARCHAR(15); -- Mengubah tipe data kolom ALTER TABLE pelanggan MODIFY COLUMN nama VARCHAR(100); -- Menambah constraint ALTER TABLE pelanggan ADD CONSTRAINT uc_email UNIQUE (email); -- Menghapus kolom ALTER TABLE pelanggan DROP COLUMN alamat;
Menampilkan Struktur Tabel
Untuk menampilkan struktur tabel setelah modifikasi:
MySQL
DESCRIBE pelanggan;
PostgreSQL
\d pelanggan;
SQL Server
EXEC sp_columns pelanggan;
Oracle
DESCRIBE pelanggan;
Best Practices untuk ALTER TABLE
- Backup data sebelum melakukan perubahan besar
- Periksa dependensi tabel sebelum mengubah struktur
- Gunakan transaksi jika memungkinkan (tergantung pada sistem database)
- Pertimbangkan dampak performa saat mengubah tabel besar
- Dokumentasikan semua perubahan struktur tabel
- Uji perubahan di lingkungan pengembangan sebelum menerapkan di produksi
Coba Sendiri
Anda dapat mencoba kode SQL di atas di editor berikut:
💡 Tips Perintah ALTER TABLE
Saat mengubah struktur tabel yang sudah berisi data, pastikan perubahan tidak akan menyebabkan kehilangan data. Misalnya, saat mengubah tipe data dari VARCHAR(50) ke VARCHAR(100), data yang ada akan aman, tetapi sebaliknya mungkin menyebabkan pemotongan data.