Perintah Alter Table di Database MySQL

Apa Itu Alter Table?

ALTER TABLE adalah salah satu perintah di database MySQL untuk merubah struktur table baik itu merubah nama table, merubah nama kolom, merubah tipe data, dan lain-lain.



Sebagai latihan, mari kita mulai dengan membuat table sebagai eksperimen.
  • Login ke database MySQL

    # mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.5.36 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> use akademik;
    Database changed
    

  • Buat Table TEST di MySQL, seperti berikut

    mysql> CREATE table TEST(
        -> kolom_1  varchar(5),
        -> kolom_2  int(3),
        -> kolom_3  date
        -> );
    Query OK, 0 rows affected (0.15 sec)
    

    Untuk melihat struktur table TEST diatas, gunakan perintah dibawah ini

    mysql> desc test;
    +---------+------------+------+-----+---------+-------+
    | Field   | Type       | Null | Key | Default | Extra |
    +---------+------------+------+-----+---------+-------+
    | kolom_1 | varchar(5) | YES  |     | NULL    |       |
    | kolom_2 | int(3)     | YES  |     | NULL    |       |
    | kolom_3 | date       | YES  |     | NULL    |       |
    +---------+------------+------+-----+---------+-------+
    3 rows in set (0.02 sec)
    

Menambah Kolom

Untuk menambahkan sebuah kolom pada suatu table, anda bisa menggunakan perintah berikut ini:

SQL> ALTER TABLE nama_table 
     ADD nama_kolom [FIRST | AFTER];

Keterangan sintak :
  • FIRST bersifat optional, kalau anda ingin menempatkan kolom yang anda tambahkan di urutan pertama.
  • AFTER bersifat optional, kalau anda ingin menempatkan kolom yang anda tambahkan SETELAH kolom yang diinginkan.

Latihan 1

Tambahkan sebuah kolom dengan nama kolom_4 dengan tipe data char(1) pada table TEST diatas!

Jawab

mysql> alter table TEST
    -> add kolom_4 char(1);
Query OK, 0 rows affected (0.73 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test;
+---------+------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| kolom_1 | varchar(5) | YES  |     | NULL    |       |
| kolom_2 | int(3)     | YES  |     | NULL    |       |
| kolom_3 | date       | YES  |     | NULL    |       |
| kolom_4 | char(1)    | YES  |     | NULL    |       |
+---------+------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

Terlihat kolom kolom_4 telah ditambahkan pada table TEST.

Latihan 2

Tambahkan sebuah kolom lagi dengan nama kolom_0 dengan tipe char(10) pada table TEST, dan letakkan kolom_0 pada posisi pertama/teratas!.

Jawab

mysql> alter table TEST
    -> add kolom_0 char(10)
    -> first;
Query OK, 0 rows affected (0.29 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test;
+---------+------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| kolom_0 | char(10)   | YES  |     | NULL    |       |
| kolom_1 | varchar(5) | YES  |     | NULL    |       |
| kolom_2 | int(3)     | YES  |     | NULL    |       |
| kolom_3 | date       | YES  |     | NULL    |       |
| kolom_4 | char(1)    | YES  |     | NULL    |       |
+---------+------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

Latihan 3

Tambahkan sebuah kolom dengan nama kolom_2_0 pada table TEST dengan tipe data int(4) dan tempatkan kolom tersebut setelah kolom_2.

Jawab
mysql> alter table TEST
    -> add kolom_2_0 int(4)
    -> AFTER kolom_2;
Query OK, 0 rows affected (0.30 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test;
+-----------+------------+------+-----+---------+-------+
| Field     | Type       | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+-------+
| kolom_0   | char(10)   | YES  |     | NULL    |       |
| kolom_1   | varchar(5) | YES  |     | NULL    |       |
| kolom_2   | int(3)     | YES  |     | NULL    |       |
| kolom_2_0 | int(4)     | YES  |     | NULL    |       |
| kolom_3   | date       | YES  |     | NULL    |       |
| kolom_4   | char(1)    | YES  |     | NULL    |       |
+-----------+------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

Menghapus Kolom

Untuk menghapus sebuah kolom pada suatu table, anda bisa menggunakan sintak berikut ini:

SQL> ALTER TABLE nama_table 
     DROP nama_kolom;

Sebagai latihan, coba anda delete/hapus kolom kolom_2_0 pada table TEST. Caranya adalah

mysql> alter table TEST
    -> drop kolom_2_0;
Query OK, 0 rows affected (0.29 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test;
+---------+------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| kolom_0 | char(10)   | YES  |     | NULL    |       |
| kolom_1 | varchar(5) | YES  |     | NULL    |       |
| kolom_2 | int(3)     | YES  |     | NULL    |       |
| kolom_3 | date       | YES  |     | NULL    |       |
| kolom_4 | char(1)    | YES  |     | NULL    |       |
+---------+------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

Pada table TEST diatas, terlihat bahwa kolom kolom_2_0 telah berhasil di hapus.

Merubah Tipe Data

Untuk merubah tipe data suatu kolom di table, anda bisa menggunakan sintak dibawah ini:

SQL> ALTER TABLE nama_table 
     MODIFY nama_kolom tipe_data_baru;

Sebagai latihan coba anda ubah tipe data kolom_2 dari INT(3) menjadi INT(10). Caranya adalah sebagai berikut:

mysql> alter table test
    -> modify kolom_2 int(10);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test;
+---------+------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| kolom_0 | char(10)   | YES  |     | NULL    |       |
| kolom_1 | varchar(5) | YES  |     | NULL    |       |
| kolom_2 | int(10)    | YES  |     | NULL    |       |
| kolom_3 | date       | YES  |     | NULL    |       |
| kolom_4 | char(1)    | YES  |     | NULL    |       |
+---------+------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

Merubah Nama Table (Rename)

Untuk merubah nama suatu table, anda bisa menggunakan sintak dibawah ini:

SQL> ALTER TABLE nama_table
     RENAME TO nama_table_baru;

Sebagai latihan, coba anda rename table TEST dengan nama TEST_BARU. Caranya adalah sebagai berikut:

mysql> alter table test
    -> rename to test_baru;
Query OK, 0 rows affected (0.06 sec)

mysql> show tables;
+--------------------+
| Tables_in_akademik |
+--------------------+
| karyawan           |
| test_baru          |
+--------------------+
2 rows in set (0.00 sec)

Terlihat pada hasil perintah show tables diatas, table test telah berubah menjadi test_baru.


Sekian tutorial singkat tentang Perintah Alter Table di Database MySQL. Semoga bermanfaat & Happy Learning MySQL :).

Jika anda menyukai tutorial ini, silahkan anda share tutorial ini dengan teman-teman anda.

Salam,

Naura-Lab.

Jika Anda rasa artikel ini bermanfaat, saya sangat berterima kasih bila Anda mau membagikannya ke teman. Jangan lupa dapatkan update artikel terbaru dari Naura-Lab melalui email:

1 comments:

Post a Comment