+++ ARJUNA +++: tutorial Mysql 7
SELAMAT DATANG DI BLOGKU " ARJUNA"

tulisan arjun

Rabu, 15 Juni 2011

tutorial Mysql 7


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