Selasa, 02 Februari 2010

Perbedaan Char, Varchar dan nVarchar

Tipe data Char adalah tipe data karakter yang panjangnya tetap (fixed-length). Jadi ketika kita misalnya membuat tabel dan mendeklarasikan suatu tipe data Char dengan panjang 5 karakter. Maka SQL Server akan mengalokasikan memori pada media penyimpanan sebanyak panjang karakter yang kita deklarasikan. Walaupun nantinya ketika terjadi penambahan atau perubahan data pada tabel tersebut panjang karakternya kurang dari 5, SQL server akan tetap menyimpannya dengan panjang 5 karakter. Jika kita melihat kasus tadi, dimana data yang kita masukkan panjang karakternya kurang dari panjang karakter yang telah kita deklarasikan sebelumnya maka SQL server akan menambahkan karakter kosong atau spasi dibelakang. Sebagai contoh, misalkan deklarasi tipe data suatu field/kolom pada sebuah tabel adalah char(5), lalu ketika terjadi penambahan atau perubahan, data yang akan kita masukkan panjang karakternya hanya 3, SQL Server akan tetap menyimpan data dengan panjang 5 karakter untuk data itu dengan menambahkan 2 buah karakter kosong dibelakangnya. Akan tetapi jika panjang karakter dari data yang akan kita simpan melebihi panjang dari karakter yang kita deklarasikan maka SQL server akan memberikan pesan error dan data tidak bisa disimpan.



Lalu bagaimana dengan tipe data Varchar. Tipe data Varchar adalah tipe data karakter yang panjangnya tidak tetap (variable-length). Mungkin bisa dibilang kebalikan dari tipe data Char. SQL server akan mengalokasikan memori pada media penyimpanan sepanjang karakter yang akan kita simpan. Misalnya kita membuat tabel dengan mendeklarasikan suatu field/kolom dengan tipe data Varchar dengan panjang 15 karakter, maka SQL server tidak akan serta merta mengalokasikan 15 karakter pada setiap kali terjadi penambahan atau perubahan data, akan tetapi dia akan melihat terlebih dahulu panjang karakter dari data akan kita simpan. Misalkan data yang kita simpan panjang karakter nya hanya 5, maka SQL server hanya akan mengalokasikan 5 karakter pada media penyimpanan, tidak 15 karakter. Lalu bagaimana jika kita menyimpan data yang karakter nya lebih panjang dari karakter yang kita deklarasikan pada field/kolom yang kita buat pada tabel. Seperti contoh diatas kita mendefinisikan suatu field/kolom dengan tipe data Varchar sepanjang 15 karakter dan ketika terjadi perubahan data panjang karakternya lebih dari itu, biasanya sih SQL Server akan menghasilkan pesan error dan data tidak dapat disimpan.

Kalo dengan Nvarchar perbedaan nya hanya dari kemampuannya menyimpan kumpulan karakter. Varchar untuk menyimpan karakter bersifat non-unicode dan Nvarchar untuk karakter yang bersifat unicode. Unicode dapat diartikan memiliki kemampuan untuk menyimpan karakter dari bermacam-macam bahasa di dunia sedangkan unicode hanya berdasarkan setting bahasa komputer lokal. Jadi apabila kita akan membuat aplikasi yang akan digunakan untuk orang diseluruh dunia maka disarankan untuk menggunakan tipe data Nvarchar. Karena terdapat perbedaan diantara alphabet yang ada didunia, seperti misalnya eropa yang relatif lebih kecil atau mungkin kanji atau pun alphabet korea yang mempunyai bentuk yang khusus.

ref: http://www.combromania.net/tipe-data-char-varchar-dan-nvarchar-sql-server-2000

6 komentar:

  1. thank's a lot.. nice info..

    BalasHapus
  2. makasih info nya ...
    tapi mungkin ada kesalahan penulisan yg di unicode..
    thnks

    BalasHapus
  3. bahasanya mudah dipahami..
    saya jadi lebih mengerti dan paham..
    thanks very much..

    BalasHapus
  4. Makasih Infonya, tapi maksud kalimat ini gimana?


    Unicode dapat diartikan memiliki kemampuan untuk menyimpan karakter dari bermacam-macam bahasa di dunia sedangkan unicode hanya berdasarkan setting bahasa komputer lokal.


    non-Unicode nya yang mana nih?

    BalasHapus
  5. mungkin harusnya " sedangkan non-unicode bla bla bla "

    BalasHapus