Indonesia: 4 July, 2024

Tutorial Mysql Part 10: Cara Mengubah Struktur Tabel Mysql (Alter Table)

Di tutorial sebelumnya kita telah mempelajari Bagaimana Cara Menampilkan Data Tabel MySQL. Pada tutorial ini kita lanjutkan dengan mempelajari Bagaimana Cara Merubah Struktur Tabel MySQL menggunakan query ALTER TABLE.

Jika teman-teman belum memiliki database dan tabelnya, silahkan salin query di bawah ini:
Query membuat dan menggunakan database:

CREATE DATABASE mahasiswa;

USE mahasiswa;

Query membuat table:

CREATE TABLE daftar_mata_kuliah (
kode_matkul VARCHAR (8) NOT NULL,
nama_matkul VARCHAR (50) NOT NULL
) ENGINE = InnoDB;

Sekarang mari kita lihat struktur tabelnya:

MariaDB [mahasiswa]> DESC daftar_mata_kuliah;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| kode_matkul | varchar(8)  | NO   |     | NULL    |       |
| nama_matkul | varchar(50) | NO   |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.219 sec)

Cara Menambah Kolom Tabel MySQL

Kita telah berhasil membuat tabel daftar_mata_kuliah, namun ada yang terlupa yaitu kolom jenis_matkul.

Bagaimana cara menambahkan kolom jenis_matkul? gunakan query berikut:

ALTER TABLE nama_tabel
ADD nama_kolom tipe_data
[FIRST | AFTER nama_kolom];

Keterangan query:

  • nama_tabel di gunakan untuk menentukan nama tabel yang ingin di tambahkan kolomnya.
  • nama_kolom di gunakan untuk menentukan nama kolom yang akan di tambahkan ke dalam tabel.
  • tipe_data di gunakan untuk menentukan tipe data dari kolom yang ingin di tambahkan.
  • FIRST | AFTER nama_kolom (optional) di gunakan untuk menentukan posisi kolom yang ingin di tambahkan.

Perhatikan contoh berikut:

ALTER TABLE daftar_mata_kuliah
ADD jenis_matkul VARCHAR (7) NOT NULL;

Berikut hasil query di atas:

MariaDB [mahasiswa]> ALTER TABLE daftar_mata_kuliah
    -> ADD jenis_matkul VARCHAR (7) NOT NULL;
Query OK, 0 rows affected (0.212 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [mahasiswa]> DESC daftar_mata_kuliah;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| kode_matkul  | varchar(8)  | NO   |     | NULL    |       |
| nama_matkul  | varchar(50) | NO   |     | NULL    |       |
| jenis_matkul | varchar(7)  | NO   |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
3 rows in set (0.032 sec)

Penjelasan:

Kolom jenis_matkul telah berhasil di tambahkan ke dalam tabel daftar_mata_kuliah dengan tipe data VARCHAR dengan panjang maksimal 7 karakter dan menerima nilai NOT NULL. Kita dapat melihat hasil perubahannya menggunakan query DESC daftar_mata_kuliah;

Catatan: Jika kita tidak menuliskan perintah first atau after nya, maka secara default posisi kolom yang di tambahkan berada di paling bawah.

Cara Menambah Multiple Kolom Tabel MySQL

Menambahkan kolom ke dalam tabel yang di lakukan satu per satu menyebabkan pekerjaan menjadi lama. MySQL telah menyediakan cara agar kita dapat menambahkan beberapa kolom ke dalam tabel dalam satu perintah.

Berikut querynya:

ALTER TABLE nama_tabel
ADD nama_kolom tipe_data
[FIRST | AFTER nama_kolom],
ADD nama_kolom tipe_data
[FIRST | AFTER nama_kolom],
……;

Perhatikan contoh berikut:

ALTER TABLE daftar_mata_kuliah
ADD sks CHAR (10) NOT NULL
AFTER nama_matkul,
ADD dosen_mengajar VARCHAR (50) NOT NULL,
ADD keterangan VARCHAR (50) NULL;

Berikut hasil query di atas:

MariaDB [mahasiswa]> ALTER TABLE daftar_mata_kuliah
    -> ADD sks CHAR (10) NOT NULL
    -> AFTER nama_matkul,
    -> ADD dosen_mengajar VARCHAR (50) NOT NULL,
    -> ADD keterangan VARCHAR (50) NULL;
Query OK, 0 rows affected (0.160 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [mahasiswa]> DESC daftar_mata_kuliah;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| kode_matkul    | varchar(8)  | NO   |     | NULL    |       |
| nama_matkul    | varchar(50) | NO   |     | NULL    |       |
| sks            | char(10)    | NO   |     | NULL    |       |
| jenis_matkul   | varchar(7)  | NO   |     | NULL    |       |
| dosen_mengajar | varchar(50) | NO   |     | NULL    |       |
| keterangan     | varchar(50) | YES  |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
6 rows in set (0.110 sec)

Penjelasan:

Kolom sks, dosen_mengajar, dan keterangan telah berhasil di tambahkan ke dalam tabel daftar_mata_kuliah. Kolom sks memiliki tipe data CHAR dengan panjang maksimal 10 karakter yang di simpan setelah kolom nama_matkul, kolom dosen_mengajar memiliki tipe data VARCHAR dengan panjang maksimal 50 karakter, dan kolom keterangan memiliki tipe data VARCHAR dengan panjang maksimal 50 karakter. Masing-masing kolom sks dan dosen_mengajar menerima nilai NOT NULL sedangkan kolom keterangan menerima nilai NULL.

Kita dapat melihat hasil perubahannya menggunakan query DESC daftar_mata_kuliah;

Cara Mengubah (Modify) Tabel MySQL

Setelah tabel selesai di buat, akan tetapi masih ada yang perlu di perbaiki pada penulisan nama field/kolom tabel, atau mengubah kembali tipe data dari kolom, atau ingin mengubah nilai NOT NULL menjadi NULL. Untuk dapat mengubahnya kita dapat menggunakan query berikut:

ALTER TABLE nama_tabel 
CHANGE nama_kolom_lama nama_kolom_baru tipe_data;

Keterangan:

  • nama_kolom_lama merupakan nama kolom yang ingin dirubah namanya.
  • nama_kolom_baru marupakan nama kolom baru yang akan menggantikan nama kolom lama.
  • Mengunakan perintah CHANGE kita bisa mengubah nama_kolom dan tipe_data sekaligus di dalam satu perintah.

Perhatikan contoh berikut:

ALTER TABLE daftar_mata_kuliah 
CHANGE sks jumlah_sks CHAR (1) NOT NULL;

Berikut hasil query di atas:

MariaDB [mahasiswa]> ALTER TABLE daftar_mata_kuliah
    -> CHANGE sks jumlah_sks CHAR (1) NOT NULL;
Query OK, 0 rows affected (0.106 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [mahasiswa]> DESC daftar_mata_kuliah;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| kode_matkul    | varchar(8)  | NO   |     | NULL    |       |
| nama_matkul    | varchar(50) | NO   |     | NULL    |       |
| jumlah_sks     | char(1)     | NO   |     | NULL    |       |
| jenis_matkul   | varchar(7)  | NO   |     | NULL    |       |
| dosen_mengajar | varchar(50) | NO   |     | NULL    |       |
| keterangan     | varchar(50) | YES  |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
6 rows in set (0.028 sec)

Penjelasan:

Kita telah berhasil mengubah nama kolom dan tipe data dari kolom sks CHAR (10) menjadi kolom jumlah_sks CHAR (1). Kita dapat melihat hasil perubahannya menggunakan query DESC daftar_mata_kuliah;

Jika kita hanya ingin mengubah tipe datanya saja tanpa mengubah nama kolom, maka kita bisa mengunakan query berikut:

ALTER TABLE nama_tabel 
MODIFY nama_kolom tipe_data 
[FIRST | AFTER nama_kolom]

Cara Mengubah (Rename) Nama Tabel MySQL

Kita juga bisa mengubah nama tabel menggunakan query berikut:

ALTER TABLE nama_tabel
RENAME TO nama_tabel_baru;

Perhatihan contoh berikut:

ALTER TABLE daftar_mata_kuliah
RENAME TO mata_kuliah;

Berikut hasil query di atas:

MariaDB [mahasiswa]> ALTER TABLE daftar_mata_kuliah
    -> RENAME TO mata_kuliah;
Query OK, 0 rows affected (0.307 sec)

MariaDB [mahasiswa]> SHOW TABLES;
+---------------------+
| Tables_in_mahasiswa |
+---------------------+
| mata_kuliah         |
+---------------------+
1 row in set (0.001 sec)

Penjelasan:

Nama tabel daftar_mata_kuliah telah berhasil di ganti menjadi tabel mata_kuliah. Kita dapat melihat hasil perubahannya menggunakan query SHOW TABLES;

Cara Menghapus Kolom Tabel MySQL

Gunakan query berikut untuk menghapus kolom di dalam tabel:

ALTER TABLE nama_tabel
DROP COLUMN nama_kolom;

Perhatihan contoh berikut:

ALTER TABLE mata_kuliah
DROP COLUMN keterangan;

Hasil query di atas:

MariaDB [mahasiswa]> ALTER TABLE mata_kuliah
    -> DROP COLUMN keterangan;
Query OK, 0 rows affected (0.156 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [mahasiswa]> DESC mata_kuliah;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| kode_matkul    | varchar(8)  | NO   |     | NULL    |       |
| nama_matkul    | varchar(50) | NO   |     | NULL    |       |
| jumlah_sks     | char(1)     | NO   |     | NULL    |       |
| jenis_matkul   | varchar(7)  | NO   |     | NULL    |       |
| dosen_mengajar | varchar(50) | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0.085 sec)

Penjelasan:

Kita telah berhasil menghapus kolom keterangan di dalam tabel mata_kuliah. Untuk dapat melihat hasilnya gunakan query DESC nama_tabel.

Setelah memplajari Bagaimana Cara Mengubah Struktur Tabel MySQL. materi selanjutnya kita akan mempelajari Bagaimana Cara Menambahkan Nilai NULL, NOT NULL, dan DEFAULT di Tabel MySQL

Selamat belajar

Semoga Bermanfaat🎉🎉

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *