Antara CHAR, VARCHAR dan VARCHAR2 di Oracle

Antara CHAR, VARCHAR dan VARCHAR2 di Oracle

Dalam Oracle terdapat 3 tipe data yang menampung data-data alfanumerik atau string, yaitu CHAR, VARCHAR, VARCHAR2. Apa perbedaan diantara ketiga tipe data tersebut dan saat kapan kita menggunakannya? Mari kita bahas satu persatu.

CHAR 
CHAR digunakan untuk menyimpan data dengan panjang karakter tetap. Jika tipe data ini dugunakan untuk menyimpan data yang bermacam-macam panjangnya seperti nama ataupun alamat, maka akan banyak memory yang terbuang dalam disk. CHAR cocok digunakan untuk penyimpanan data dengan nilai tetap seperti Jenis Kelamin.

Contoh :

SQL> CREATE TABLE char_test (col1 CHAR(10));
Table created.
SQL> INSERT INTO char_test VALUES (‘qwerty’);
1 row created.

SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM char_test;
COL1       LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty               10 Typ=96 Len=10: 113,119,101,114,116,121,32,32,32,32

Dapat dilihat dari hasil query diatas, bahwa col1 menyimpan karakter qwerty sepanjang 10 karakter, yang seharusnya hanya berisi 6 karakter.

VARCHAR
VARCHAR memiliki kegunaan sama dengan VARCHAR2, yaitu menyimpan data-data bertipe alfanumerik sesuai panjang data yang digunakan. Namun Oracle sudah tidak menggunakan VARCHAR lagi dan digantikan oleh VARCHAR2. Dapat kita lihat contoh berikut :

SQL> CREATE TABLE varchar_test (col1 VARCHAR(10));

Table created.
SQL>DESC varchar_test

Name                            Null?    Type

——————————- ——- ————-

COL1                                    VARCHAR2(10)

Walaupun saat pembuatan tabel, kita menggunakan tipe data VARCHAR, namun Oracle akan mengubahnya langsung menjadi VARCHAR2.

Kemudian kita lakukan query berikut :
SQL> INSERT INTO varchar_test VALUES (‘qwerty’);
1 row created.
SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM varchar_test;

COL1       LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty                6 Typ=1 Len=6: 113,119,101,114,116,121

Panjang karakter dari col1 adalah 6 sesuai panjang karakter yang ada di tabel yaitu qwerty.

VARCHAR2
VARCHAR2 digunakan untuk menyimpan karakter alfanumerik atau string dengan menyesuaikan panjang karakter dari data itu sendiri. Panjang karakter pada data di tabel akan sesuai dengan panjang karakter yang disimpan pada disk

Contoh :

SQL> CREATE TABLE varchar2_test (col1 VARCHAR2(10));
Table created.
SQL> INSERT INTO varchar2_test VALUES (‘qwerty’);
1 row created.

SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM varchar2_test;

COL1       LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty                6 Typ=1 Len=6: 113,119,101,114,116,121

Perbedaan VARCHAR dan VARCHAR2
VARCHAR sudah diganti dengan VARCHAR2 pada pendefinisian tipe data di Oracle, dan Oracle menganjurkan untuk mendeklarasikan VARCHAR2 ketimbang VARCHAR.Mengapa? Disini saya akan menjelaskan kelebihan dari VARCHAR2 dibandingkan VARCHAR. Antara lain adalah :

  • VARCHAR hanya dapat menampung karakter hingga 2000 byte, sedangkan VARCHAR2 dapat menampung karakter sepanjang 4000 byte.
  • Tipe data VARCHAR akan menampung spasi pada nilai NULL, sedangkan VARCHAR2 tidak akan menampung karakter atau spase sama sekali.

12.00

Antara CHAR, VARCHAR dan VARCHAR2 di Oracle

Dalam Oracle terdapat 3 tipe data yang menampung data-data alfanumerik atau string, yaitu CHAR, VARCHAR, VARCHAR2. Apa perbedaan diantara ketiga tipe data tersebut dan saat kapan kita menggunakannya? Mari kita bahas satu persatu.

CHAR 
CHAR digunakan untuk menyimpan data dengan panjang karakter tetap. Jika tipe data ini dugunakan untuk menyimpan data yang bermacam-macam panjangnya seperti nama ataupun alamat, maka akan banyak memory yang terbuang dalam disk. CHAR cocok digunakan untuk penyimpanan data dengan nilai tetap seperti Jenis Kelamin.

Contoh :

SQL> CREATE TABLE char_test (col1 CHAR(10));
Table created.
SQL> INSERT INTO char_test VALUES (‘qwerty’);
1 row created.

SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM char_test;
COL1       LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty               10 Typ=96 Len=10: 113,119,101,114,116,121,32,32,32,32


Dapat dilihat dari hasil query diatas, bahwa col1 menyimpan karakter qwerty sepanjang 10 karakter, yang seharusnya hanya berisi 6 karakter.

VARCHAR
VARCHAR memiliki kegunaan sama dengan VARCHAR2, yaitu menyimpan data-data bertipe alfanumerik sesuai panjang data yang digunakan. Namun Oracle sudah tidak menggunakan VARCHAR lagi dan digantikan oleh VARCHAR2. Dapat kita lihat contoh berikut :

 

SQL> CREATE TABLE varchar_test (col1 VARCHAR(10));

Table created.
SQL>DESC varchar_test

Name                            Null?    Type

——————————- ——- ————-

COL1                                    VARCHAR2(10)


Walaupun saat pembuatan tabel, kita menggunakan tipe data VARCHAR, namun Oracle akan mengubahnya langsung menjadi VARCHAR2.

Kemudian kita lakukan query berikut :
SQL> INSERT INTO varchar_test VALUES (‘qwerty’);
1 row created.
SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM varchar_test;

COL1       LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty                6 Typ=1 Len=6: 113,119,101,114,116,121

Panjang karakter dari col1 adalah 6 sesuai panjang karakter yang ada di tabel yaitu qwerty.

VARCHAR2
VARCHAR2 digunakan untuk menyimpan karakter alfanumerik atau string dengan menyesuaikan panjang karakter dari data itu sendiri. Panjang karakter pada data di tabel akan sesuai dengan panjang karakter yang disimpan pada disk

Contoh :

SQL> CREATE TABLE varchar2_test (col1 VARCHAR2(10));
Table created.
SQL> INSERT INTO varchar2_test VALUES (‘qwerty’);
1 row created.

SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM varchar2_test;

COL1       LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty                6 Typ=1 Len=6: 113,119,101,114,116,121


Perbedaan VARCHAR dan VARCHAR2
VARCHAR sudah diganti dengan VARCHAR2 pada pendefinisian tipe data di Oracle, dan Oracle menganjurkan untuk mendeklarasikan VARCHAR2 ketimbang VARCHAR.Mengapa? Disini saya akan menjelaskan kelebihan dari VARCHAR2 dibandingkan VARCHAR. Antara lain adalah :

  • VARCHAR hanya dapat menampung karakter hingga 2000 byte, sedangkan VARCHAR2 dapat menampung karakter sepanjang 4000 byte.
  • Tipe data VARCHAR akan menampung spasi pada nilai NULL, sedangkan VARCHAR2 tidak akan menampung karakter atau spase sama sekali.

 

Source

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s