SQL Server: Perbedaan Char dan Varchar

Tipe data Char dan Varchar sama-sama digunakan untuk menyimpan data teks/string. Perbedaan mendasar antara Char dan Varchar terletak pada panjang data.

Tipe Data CHAR merupakan Tipe Data yang panjangnya tetap. Misalnya jika kita mendeklarasikan mendeklarasikan variabel/kolom dengan tipe data CHAR (10), maka akan selalu tersimpan dengan ukuran 10 byte meskipun data tersebut hanya berisi 1 karakter saja. 

Sementara tipe data VARCHAR panjangnya bervariasi tergantung data yang diinputkan. Misalnya jika kita mendeklarasikan variabel/kolom VARCHAR (10), jika kita input data dengan 1 karakter maka disimpad dengan 1 byte, 2 karakter dengan 2 byte dan seterusnya dengan maksimal 10 karakter disimpan dalam 10 byte.

Contoh query berikut untuk meperjelas perbedaan tersebut:

DECLARE @CharSample CHAR(20) = 'pianika',
        @VarCharSample VARCHAR(20) = 'pianika'

SELECT  DATALENGTH(@CharSample) SpaceUsedbyChar,
        DATALENGTH(@VarCharSample) SpaceUsedbyVarchar


Selain pada ukuran data penyimpanan perbedaan akan terlihat ketikan kita membuat gabungan 2 data CHAR seperti terlihat pada query berikut:

DECLARE @FirstName Char(20) = 'Rani',
        @LastName  Char(20) = 'Irsan'
 
SELECT  @FirstName + ' ' + @LastName AS Name,
        len(@FirstName + ' ' + @LastName) AS Length
 
SELECT  @FirstName + ' ' + @LastName + '#' AS Name,
        len(@FirstName + ' ' + @LastName) AS Length


Terlihat jika pada data gabungan CHAR akan ikut membawa spasi sejumlah ukuran tipe data. Kecuali jika letaknya paling kanan (akhir).

Mari kita bedakan jika tipe datanya diganti menjadi VARCHAR.

DECLARE @FirstName VARCHAR(20) = 'Rani',
        @LastName  VARCHAR(20) = 'Irsan'
 
SELECT  @FirstName + ' ' + @LastName AS Name,
        len(@FirstName + ' ' + @LastName) AS Length
 
SELECT  @FirstName + ' ' + @LastName + '#' AS Name,
        len(@FirstName + ' ' + @LastName) AS Length





Post a Comment

0 Comments