19 October 2008

Kata “DESC” dalam database MySQL

Database dalam sebuah aplikasi adalah salah satu alternatif media penyimpanan yang bisa kita gunakan. Pemilihan database yang tepat untuk aplikasi yang kita buat menjadi sedemikian penting mengingat adanya kelemahan dan kelebihan masing-masing database yang ada. Baik database open source maupun database yang komersil pasti ada kelebihan dan kekurangannya masing-masing.

Kali ini kita akan membahas sesuatu tentang database MySQL yang kebetulan adalah database yang biasa saya pilih sebagai partner dalam aplikasi yang saya buat. Saya sendiri tidak begitu tahu, apakah ini sebuah bugs atau memang preserve keyword yang tidak boleh dilakukan dalam database MySQL.

Kita langung saja. Buatlah suatu database dalam MySQL dengan nama test dengan query seperti berikut ini:

create database test_doang;
use test_doang;

Dalam barisan query diatas kita mencoba membuat sebuah database dengan nama test_doang, dan kemudian kira gunakan database test_doang tersebut. Kemudian kita akan membuat sebuah tabel dalam database tersebut, kita beri nama misalnya table_pengertian dengan 2 buah field dalam table tersebut. Yaitu :

  1. Field ISTILAH dengan tipe data varchar, dengan jumlah karakter maksimal 100 karakter.

  2. Field DESC dengan tipe data varchar juga, dan dengan jumlah karakter 255 karakter.

Atau bisa juga anda copy paste query berikut ini:

CREATE TABLE `table_pengertian` (
`ISTILAH` VARCHAR( 100 ) NOT NULL ,
`DESC` VARCHAR( 255 ) NOT NULL
);

Jika sudah, maka kita akan mempunyai sebuah tabel dalam database test_doang tersebut. Kemudian kita akan mencoba menambah suatu record dalam tabel tersebuat misalnya, untuk field ISTILAH kita kasih satu kata CPU dan untuk DESC kita isi field tersebut dengan data “Sebuah mesin yang memproses data”, atau bisa juga kita copy paste query berikut ini:

insert into table_pengertian values('CPU','Sebuah mesin yang memproses data');

Setelah itu kemudian kita lihat isi dalam tabel table_pengertian tersebut jika anda lihat seperti gambar dibawah ini, berarti semuanya normal-normal saja kan ?

Jika ya, kita akan melanjutkan langkan berikutnya, yaitu kita kembali memasukkan suatu data kedalam tabel table_pengertian tersebut, kali ini datanya adalah untuk kolom ISTILAH kita isi dengan data “Monitor” dan untuk kolom DESC kita isi dengan data “Media yang dipakai untuk menampilkan data”, namun kali ini kita akan mengisi data tersebut dengan cara menyebutkan nama kolom / Field dalam query, seperti contoh berikut :

iinsert into table_pengertian(ISTILAH,DESC) values('Monitor', 'Media yang dipakai untuk menampilkan data');

Jika anda eksekusi query tersebut, apa yang terjadi? Error..? Ok kita akan coba dengan query lain untuk memasukkan data tersebut. Jika anda menghilangkan penyebutan kolom pada query diatas tadi, maka data bisa masuk, sementara dalam MySQL sangat dianjurkan untuk menyebutkan nama field yang ingin dimasukkan data, meski dengan tanpa menyebutkan nama field query juga bisa dieksekusi.

Ok, sekarang kita akan coba query lain selain query INSERT. Yaitu query UPDATE. Sekarang kita coba update data diatas tadi dengan query seperti dibawah ini:

update table_pengertian set DESC='Sebuah mesin yang memproses data-data yang dimasukkan' where ISTILAH='CPU';

Apa yang terjadi? Error..lagi..? hmm, apakah query yang kita bikin salah? Silahkan anda coba-coba lagi? Tapi menurut saya query itu tidak ada yang salah, query sudah mengikuti petunjuk-petunjuk manual yang memang dianjurkan oleh MySQL sendiri, sepertinya ada yang salah dengan MySQL-nya...

Ok kita coba lagi, kali ini kita akan mencoba mengganti nama field dalam table_pengertian tersebut. Field yang akan kita ganti adalah nama field DESC, kita akan menggantinya dengan nama ISTILAH_DESC atau apa sajalah terserah anda yang penting tidak memakain kata DESC sebagai nama dari field tersebut. Query untuk merubah nama field tersebut seperti dibawah ini:

ALTER TABLE `table_pengertian` CHANGE `DESC` `ISTILAH_DESC` VARCHAR( 255 ) ;

Setelah nama field tersebut berganti sekarang kita coba eksekusi query yang diatas tadi mengalami error, tentunya dengan merubah nama field DESC yang disebutkan dalam query dengan nama field yang sudah kita ganti.

Apa yang terjadi? Apakah semua query diatas yang tadinya error bisa dengan sukses di eksekusi dengan baik tanpa error yang keluar? Apa yang bisa kita ambil dari percobaan kecil ini?

Hmm.. ternyata MySQL tidak mengijinkan kita memakai kata DESC untuk kita jadikan sebuah nama field dalam table. Kita bebas memakai nama field dalam table asal jangan memakai kata DESC, terbukti dari percobaan diatas, ada beberapa error yang terjadi jika kita menggunakan kata DESC sebagai sebuah nama field dalam sebuah tabel.

Sekali lagi, saya sendiri tidak tahu apakah ini sebuah bugs dalam MySQL atau memang sudah diumumkan dalam release MySQL versi yang saya pakai, oh ya versi MySQL yang saya pakai adalah versi 5.0.15 yang dibundel dengan software XAMPP. Yang jelas kita dapat sebuah pengetahuan baru tentang hal ini.

Silahkan anda mencari kembali pengetahuan-pengetahuan lainnya tentang database yang gratis dan open source ini.

Semoga Bermanfaat

Josescalia

2 comments:

de klompen said...

desc adalah salah satu function MYSQL.

desc digunakan utk mendeskripsikan table.
misal:
desc nama_table

jadi mending gak usah pake desc utk nama field.


sdh dicoba dgn syntax: nama_table.nama_field

JoseScalia said...

Dari awal saya juga sudah tahu, kalo desc salah satu function mysql, ini cuma sekedar share dari kejadian yang saya alami, sehingga kedepannya saya berharap paling tidak untuk diri saya sendiri, bisa mengambil pelajaran dari pengalaman ini..

Terima kasih telah mengunjungi Blog ini...

salam

josescalia