Perbedaan utama: Dalam sistem basis data seperti SQL Server, Char dan Varchar keduanya tipe data, di mana karakter char sebenarnya mengacu pada karakter dan Varchar merujuk pada karakter variabel. Keduanya digunakan untuk menyimpan tipe string nilai dengan panjang maksimum 8.000 karakter. Ukuran penyimpanan char adalah sama dengan yang dinyatakan sedangkan tahap keenam dari Varchar tergantung pada byte dari data aktual yang dimasukkan.
Mari kita ambil contoh - jika data Char dinyatakan dengan cara: menyatakan uji Char (20), dan uji = "pengujian", maka pengujian akan menempati 7 byte pertama dan sisanya akan diisi dengan data kosong. Di sisi lain, jika data Varchar dideklarasikan dengan cara: menyatakan test Varchar (20), dan test = "testing", maka itu akan menempati hanya 7 + 2 byte.
Char harus digunakan ketika panjang variabel diketahui, sedangkan Varchar harus digunakan hanya ketika panjangnya tidak diketahui. Char lebih cepat daripada Varchar, karena sistem Varchar meluangkan waktu untuk mendeteksi waktu untuk mengetahui akhir dari string. Di sisi lain, kali ini tidak disia-siakan di Char.
Perbandingan antara Char dan Varchar:
Arang | Varchar | |
Wujud sempurna | Karakter | Variabel Karakter (dalam konteks karakter dengan panjang variabel) |
Berarti | Digunakan untuk menyimpan data string non-Unicode dengan panjang tetap | Digunakan untuk menyimpan data string non-Unicode dengan panjang variabel |
Bytes digunakan untuk penyimpanan | 1 byte per karakter | 1 byte per karakter dan 1 atau 2 byte tambahan untuk menampung informasi panjang |
Aplikasi | Digunakan untuk menyimpan data seperti nomor Telepon, dll. (Entri data konsisten.) | Digunakan untuk menyimpan data seperti Alamat (entri data sangat bervariasi) |
Kondisi: string input kurang dari byte yang dinyatakan | Ruang tanpa karakter apa pun akan diisi dengan karakter ruang | Spasi tanpa karakter apa pun tidak akan diisi dengan karakter apa pun |
Kondisi: string input lebih dari byte yang dinyatakan | String akan dipotong ke byte yang dideklarasikan | String akan dipotong ke byte yang dideklarasikan. |