Mengubah struktur sebuah tabel
Ada saatnya kita perlu mengubah struktur tabel yang pernah
kita buat sebelumnya. Pengubahan
struktur bisa dalam hal penambahan kolom (ADD),
pengubahan lebar dan jenis kolom (MODIFY),
atau bisa saja penghapusan kolom dan indeks (DROP),
penggantian nama kolom (CHANGE),
pengantian nama tabel (RENAME), dan sebagainya. Apa
pun juga yang anda lakukan pada kolom
tersebut tentu akan mempunyai dampak langsung pada
data-data yang sudah ada. Nah, sekarang
kita perlu menambahkan beberapa kolom baru, yaitu kolom
jenis kelamin, kota, tanggal lahir dan
kodepos pada tabel karyawan.
Perintah untuk mengubah struktur tabel adalah "ALTER
TABLE". Mari kita coba...
mysql> alter table karyawan
-> ADD jenkelamin
CHAR(2) NOT NULL,
-> ADD kota
VARCHAR(25) NOT NULL,
-> ADD kodepos
CHAR(5) NOT NULL,
-> ADD tgllahir DATE
-> ;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates:
0 Warnings: 0
Sekarang kita lihat hasilnya:
mysql> describe karyawan ;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| nopeg | int(10) | NO
| PRI | NULL | auto_increment |
| nama | varchar(50) | NO |
| | |
| jenkelamin | char(2) |
YES |
| NULL | |
| kota | varchar(25) |
NO |
| | |
| kodepos | char(5) | NO
| | |
|
| tgllahir | date | YES
| | NULL | |
+------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
Mungkin ada baiknya kalau nama kolom nopeg kita ubah
aja menjadi noid. Begitupun dengan nama
kolom jenkelamin, kita ubah namanya menjadi jenkel
saja. Dalam pengubahan kolom ini sebaiknya
'sifat-sifat' kolom yang asli tetap ditulis ulang. Misal
bila kolom nopeg memiliki sifat
'auto_increment', maka selama sifat itu tetap dipertahankan,
maka dia (auto_increment) harus ditulis
ulang. Begini caranya...
Mengubah kolom jenkelamin menjadi jenkel,
sekaligus mengubah jenis datanya dari CHAR(2)
menjadi CHAR(1):
mysql> alter table karyawan
-> change jenkelamin
jenkel char(1) ;
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates:
0 Warnings: 0
Mengubah kolom nopeg menjadi noid, tanpa
mengubah jenis datanya (tetap INT(10), dan tetap
auto_increment):
mysql> alter table karyawan
-> change nopeg noid
int(10) auto_increment
-> ;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates:
0 Warnings: 0
Sekarang kita lihat struktur tabel setelah pengubahan:
mysql> describe karyawan ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| noid | int(10) | NO
| PRI | NULL | auto_increment |
| nama | varchar(50) |
NO |
| | |
| jenkel | char(1) | YES
| | NULL | |
| kota | varchar(25) |
NO |
| | |
| kodepos | char(5) | NO
| | | |
| tgllahir | date |
YES |
| NULL | |
+----------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
Bagaimana, sudah sesuai dengan perubahan struktur yang kita
inginkan, bukan? Nah, sekarang
bagaimana kalau kita ingin mengubah nama tabel karyawan
menjadi tabel pegawai? Silakan dicoba
dibawah ini:
mysql> alter table karyawan
-> rename pegawai ;
Query OK, 0 rows affected (0.09 sec)
Kita lihat lagi hasilnya:
mysql> show tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| pegawai |
+--------------------+
1 row in set (0.00 sec)
Sekarang kita kembalikan lagi nama tabel pegawai
menjadi karyawan. Tetapi dengan perintah yang
berbeda, yaitu "RENAME TABLE".
mysql> rename table pegawai
-> to karyawan
-> ;
Query OK, 0 rows affected (0.06 sec)
Jangan lupa untuk memeriksa hasilnya:
mysql> show tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 row in set (0.00 sec)
Nah, sampai sejauh ini tidak sulit kan untuk mempelajari
MySQL? Sekarang kita lanjutkan dengan
cara-cara pengisian data. Yuuukk..
Tidak ada komentar:
Posting Komentar