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