Pernyataan ALTER TABLE merupakan salah satu pernyataan DDL (Data Definition Language) dalam MySQL yang
digunakan untuk memodifikasi/mengubah definisi dan strktur dari
struktur tabel, baik field maupun nama tabelnya. Dalam pernyataan ALTER
TABLE terdapat beberapa klausa untuk memodifikasi struktur tabel yaitu:
Klausa ADD
Klausa ADD merupakan klausa yang dimiliki oleh pernyataan ALTER TABLE yang digunakan untuk menambah field dari suatu table. Sintaks Klausa ADD sebagai berikut.
ALTER TABLE nama_table
ADD nama_field tipe_data;
Klausa CHANGE
Klausa CHANGE merupakan klausa yang dimiliki oleh pernyataan ALTER TABLE yang digunakan untuk mengubah nama dan atau tipe data suatu field. Sintaks Klausa CHANGE sebagai berikut:
ALTER TABLE nama_table
CHANGE nama_field_lama nama_field_baru tipe_data
Klausa DROP
Klausa DROP merupakan klausa yang dimiliki oleh pernyataan ALTER TABLE yang digunakan untuk menghpus field atau kolom tertentu. Sintaks Klausa DROP sebagai berikut:
ALTER TABLE nama_tabel
DROP nama_field
Klausa RENAME
Klausa RENAME digunakan untuk mengubah nama suatu tabel. Adapun sintaksnya sebagai beikut:
ALTER TABEL nama_tabel
RENAME nama_tabel
Contoh Pernyataan ALTER TABLE
Penyiapan database dan tabel
- Buat database akademik
1
2
| mysql> CREATE DATABASE akademik; Query OK, 1 row affected (0.00 sec) |
- Aktifkan database
1
2
| mysql> USE akademik; Query OK, 1 row affected (0.00 sec) |
- Tampilkan semua database yang ada
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| mysql> show databases; + --------------------+ | Database | + --------------------+ | information_schema | | akademik | | cdcol | | kepegawaian14b | | mysql | | performance_schema | | phpmyadmin | | rental_film | | rental_mobil | | test | | webauth | + --------------------+ 14 rows in set (0.00 sec) |
- Buat tabel mahasiswa
1
2
3
4
5
6
7
| mysql> CREATE TABLE mahasiswa( -> npm CHAR (5) primary key , -> nama VARCHAR (30), -> tempat_lahir CHAR (30), -> tgl_lahir DATE , -> angkatan YEAR ); Query OK, 0 rows affected (0.06 sec) |
- Tampilkan daftar tabel
1
2
3
4
5
6
7
| mysql> show tables; + ------------------------+ | Tables_in_akademik_14b | + ------------------------+ | mahasiswa | + ------------------------+ 1 rows in set (0.00 sec) |
Tampilkan struktur tabel mahasiswa
1
2
3
4
5
6
7
8
9
10
11
| mysql> DESC mahasiswa; + --------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + --------------+-------------+------+-----+---------+-------+ | npm | char (5) | NO | PRI | NULL | | | nama | varchar (30) | YES | | NULL | | | tempat_lahir | char (30) | YES | | NULL | | | tgl_lahir | date | YES | | NULL | | | angkatan | year (4) | YES | | NULL | | + --------------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) |
Latihan Pernyataan ALTER TABLE
Contoh Klausa ADD
- Tambahkan field kode_prodi char(2) pada tabel mahasiswa
1
2
3
4
| mysql> ALTER TABLE mahasiswa -> ADD kode_prodi CHAR (2); Query OK, 0 rows affected (0.14 sec) Records: 0 Duplicates: 0 Warnings: 0 |
- Struktur tabel setelaah penambahan field
1
2
3
4
5
6
7
8
9
10
11
12
| mysql> DESC mahasiswa; + --------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + --------------+-------------+------+-----+---------+-------+ | npm | char (5) | NO | PRI | NULL | | | nama | varchar (30) | YES | | NULL | | | tempat_lahir | char (30) | YES | | NULL | | | tgl_lahir | date | YES | | NULL | | | angkatan | year (4) | YES | | NULL | | | kode_prodi | char (2) | YES | | NULL | | + --------------+-------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) |
- Ubah field nama menjadi nama_mahasiswa
1
2
3
4
| mysql> ALTER TABLE mahasiswa -> change nama nama_mahasiswa varchar (30); Query OK, 0 rows affected (0.13 sec) Records: 0 Duplicates: 0 Warnings: 0 |
- Tampilkan struktur tabel mahasiswa
1
2
3
4
5
6
7
8
9
10
11
12
| mysql> DESC mahasiswa; + ----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + ----------------+-------------+------+-----+---------+-------+ | npm | char (5) | NO | PRI | NULL | | | nama_mahasiswa | varchar (30) | YES | | NULL | | | tempat_lahir | char (30) | YES | | NULL | | | tgl_lahir | date | YES | | NULL | | | angkatan | year (4) | YES | | NULL | | | kode_prodi | char (2) | YES | | NULL | | + ----------------+-------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) |
Contoh Klausa DROP
- Hapus field tempat_lahir untuk tabel mahasiswa
1
2
3
4
| mysql> alter table mahasiswa -> drop tempat_lahir; Query OK, 0 rows affected (0.13 sec) Records: 0 Duplicates: 0 Warnings: 0 |
- Tampilkan struktur tabel mahasiswa
1
2
3
4
5
6
7
8
9
10
11
| mysql> DESC mahasiswa; + ----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + ----------------+-------------+------+-----+---------+-------+ | npm | char (5) | NO | PRI | NULL | | | nama_mahasiswa | varchar (30) | YES | | NULL | | | tgl_lahir | date | YES | | NULL | | | angkatan | year (4) | YES | | NULL | | | kode_prodi | char (2) | YES | | NULL | | + ----------------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) |
Contoh Klausa RENAME
- Ganti nama tabel mahasiswa menjadi mhs
1
2
3
| mysql> alter table mahasiswa -> rename mhs; Query OK, 0 rows affected (0.01 sec) |
- Tampilakan daftar tabel
1
2
3
4
5
6
7
| mysql> show tables; + ------------------------+ | Tables_in_akademik_14b | + ------------------------+ | mhs | + ------------------------+ 1 row in set (0.00 sec) |
Sumber
- SQL ALTER TABLE Statement, http://www.w3schools.com/sql/sql_alter.asp