Manipulasi Table pada 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.
  • 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)


Tidak ada komentar:

Posting Komentar