Panduan Lengkap ALTER TABLE MySQL: Cara Menambah, Mengubah, dan Menghapus Kolom serta Constraint

artikel berikut membahas mengenai Panduan Lengkap ALTER TABLE MySQL: Cara Menambah, Mengubah, dan Menghapus Kolom serta Constraint

Apa Itu ALTER Statement dalam MySQL?

ALTER TABLE adalah perintah dalam MySQL yang digunakan untuk mengubah struktur tabel setelah dibuat. Dengan perintah ini, kita bisa menambah, mengubah, atau menghapus kolom, serta menambahkan atau menghapus constraint.

1. Menambah Kolom Baru (ADD COLUMN)

Untuk menambahkan kolom baru ke tabel yang sudah ada, gunakan perintah berikut:

ALTER TABLE nama_tabel
ADD COLUMN nama_kolom tipe_data constraints;

Contoh:

Misalkan kita memiliki tabel siswa dengan struktur awal sebagai berikut:

CREATE TABLE siswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    nis CHAR(10) UNIQUE
);

Jika ingin menambahkan kolom tanggal_lahir dengan tipe data DATE, gunakan perintah berikut:

ALTER TABLE siswa
ADD COLUMN tanggal_lahir DATE;

Jika ingin menambahkan lebih dari satu kolom sekaligus:

ALTER TABLE siswa
ADD COLUMN alamat VARCHAR(255),
ADD COLUMN no_hp VARCHAR(15);

2. Mengubah Tipe Data Kolom (MODIFY COLUMN)

Jika kita ingin mengubah tipe data dari suatu kolom yang sudah ada, gunakan perintah berikut:

ALTER TABLE nama_tabel
MODIFY COLUMN nama_kolom tipe_data constraints;

Contoh:

Misalkan kita ingin mengubah kolom no_hp di tabel siswa dari VARCHAR(15) menjadi VARCHAR(20):

ALTER TABLE siswa
MODIFY COLUMN no_hp VARCHAR(20);

Jika ingin mengubah tipe data sekaligus menambahkan constraint NOT NULL:

ALTER TABLE siswa
MODIFY COLUMN alamat VARCHAR(255) NOT NULL;

3. Menghapus Kolom (DROP COLUMN)

Jika suatu kolom tidak lagi diperlukan, kita bisa menghapusnya dengan perintah berikut:

ALTER TABLE nama_tabel
DROP COLUMN nama_kolom;

Contoh:

Misalkan kita ingin menghapus kolom alamat dari tabel siswa:

ALTER TABLE siswa
DROP COLUMN alamat;

Catatan: Hati-hati dalam menggunakan DROP COLUMN, karena data dalam kolom tersebut akan hilang secara permanen.

4. Menambahkan dan Menghapus Constraint

a. Menambahkan Constraint

Jika kita ingin menambahkan constraint setelah tabel dibuat, gunakan perintah berikut:

  • Menambahkan PRIMARY KEY (jika sebelumnya belum ada):

    ALTER TABLE siswa
    ADD PRIMARY KEY (id);
    
  • Menambahkan FOREIGN KEY:

    ALTER TABLE siswa
    ADD CONSTRAINT fk_kelas FOREIGN KEY (kelas_id) REFERENCES kelas(id);
    
  • Menambahkan UNIQUE Constraint:

    ALTER TABLE siswa
    ADD CONSTRAINT unique_nis UNIQUE (nis);
    
  • Menambahkan DEFAULT Value pada Kolom:

    ALTER TABLE siswa
    ALTER COLUMN created_at SET DEFAULT CURRENT_TIMESTAMP;
    

b. Menghapus Constraint

Jika ingin menghapus constraint yang sudah ada, gunakan perintah berikut:

  • Menghapus PRIMARY KEY:

    ALTER TABLE siswa
    DROP PRIMARY KEY;
    
  • Menghapus FOREIGN KEY:

    ALTER TABLE siswa
    DROP FOREIGN KEY fk_kelas;
    
  • Menghapus UNIQUE Constraint:

    ALTER TABLE siswa
    DROP INDEX unique_nis;
    
  • Menghapus DEFAULT Value:

    ALTER TABLE siswa
    ALTER COLUMN created_at DROP DEFAULT;
    

Kesimpulan

ALTER TABLE dalam MySQL sangat berguna untuk mengelola perubahan dalam struktur tabel tanpa harus menghapus dan membuat ulang tabel dari awal. Dengan perintah ini, kita dapat menambah, mengubah, dan menghapus kolom, serta menambahkan dan menghapus constraint untuk memastikan integritas data.