Perbezaan Antara Char dan Varchar

Kedua-duanya adalah jenis data dalam banyak bahasa pengaturcaraan dan sistem pangkalan data di mana 'char' merujuk kepada watak dan 'varchar' merujuk kepada watak berubah-ubah. Char in C mewakili jenis watak yang digunakan untuk menyimpan nilai-nilai rentetan, kebanyakannya kod-kod yang dikodkan UTF-8 dan bilangan bulat. Varchar, sebaliknya, adalah jenis data yang boleh mengandungi data dari sebarang jenis panjang tak tentu. Varchar merujuk kepada jenis data medan dalam sistem pengurusan pangkalan data. Walaupun mereka berdua boleh menyimpan nilai rentetan sehingga maksimum 8,000 aksara, char memerlukan lebih banyak penyimpanan daripada varchar. Secara teknikalnya, kedua-duanya digunakan untuk menyimpan jenis data yang sama tetapi mereka berbeza dengan cara mereka disimpan dan diambil. Mari kita perhatikan perbezaan mereka secara terperinci.

Apa itu Char?

Char ialah jenis data tetap panjang yang digunakan untuk menyimpan aksara non-Unicode, oleh itu nama (pendek untuk aksara). Ia menduduki satu byte ruang untuk setiap watak yang dikodkan sebagai nombor - yang dari pengekodan ASCII. Jenis char juga boleh digunakan untuk mengisytiharkan bilangan bulat kecil. Untuk mengisytiharkan pemboleh ubah watak, kata kunci 'char' digunakan, yang bermaksud satu huruf tunggal disimpan dalam satu bait.

Seperti jenis integer, char boleh ditandatangani atau tidak ditandatangani. Ia boleh memegang nilai-nilai char yang ditandatangani dari -128 hingga 127 dan bergantung kepada saiz seni bina, ia juga boleh tidak ditandatangani, memegang nilai-nilai antara 0 hingga 255. Apabila nilai char disimpan, mereka benar-empuk dengan ruang pada panjang yang ditetapkan . Ruang belakang dibuang apabila ia diambil.

Contohnya - jika anda mengisytiharkan pembolehubah jenis data char (7), maka ia akan selalu mengambil 7 bait data tanpa mengira sama ada anda menyimpan 1 aksara atau 7 aksara, yang bermaksud anda boleh menyimpan maksimum 7 aksara dalam ruangan.

Apa itu Varchar?

Varchar, sebagai nama yang dicadangkan, adalah jenis data panjang yang berubah-ubah yang boleh mengandungi sebarang jenis data dengan panjang berbeza dari 0 hingga 65,535. Bidang Varchar dapat menyimpan nilai dari semua ukuran hingga batas tertentu, bergantung pada pangkalan data. Ia boleh ditakrifkan sama ada dalam bahasa pengaturcaraan atau di pangkalan pangkalan data. Saiz medan varchar boleh menjadi apa-apa dari sifar hingga panjang medan panjang yang diisytiharkan.

Untuk mengisytiharkan watak berubah-ubah, kata kunci 'varchar' digunakan. Varchar mengambil ruang berubah-ubah, yang bermaksud ia hanya akan menggunakan bilangan bait yang sama dengan bilangan aksara. Ia membantu mengelakkan pembaziran ruang kerana ia hanya menggunakan ruang yang diperlukan untuk saiz rentetan. Dalam beberapa bahasa pengaturcaraan dan sistem pangkalan data, sebarang ruang tambahan dikeluarkan secara automatik dari pangkalan data.

Sebagai contoh - jika anda mengisytiharkan pembolehubah varchar (10), ia akan menggunakan bilangan bait yang sama dengan bilangan aksara. Oleh itu, jika anda menyimpan hanya satu aksara, maka ia akan mengambil hanya satu byte dan jika anda menyimpan 10 aksara, ia akan mengambil 10 bait, dengan itu mengelakkan pembaziran ruang pangkalan data.

Perbezaan antara Char dan Varchar

  1. Jenis data

'Char' adalah jenis data tetap panjang yang digunakan untuk menyimpan nilai rentetan nilai panjang tetap, sedangkan 'Varchar' adalah jenis data panjang variabel yang digunakan untuk menyimpan data alfanumerik panjang variabel.

  1. Saiz Penyimpanan

Saiz storan nilai aksara bersamaan dengan saiz maksima lajur ini yang anda nyatakan semasa membuat jadual. Sebaliknya, saiz storan nilai varchar ialah panjang sebenar data yang dimasukkan, bukan saiz maksimum untuk lajur ini.

  1. Penyertaan Data

Anda boleh menggunakan char apabila penyertaan data dalam lajur dijangka menjadi saiz yang sama, sedangkan sebaliknya, varchar boleh digunakan apabila entri data dalam lajur dijangka bervariasi dalam saiz.

  1. Alokasi Memori

Char menggunakan peruntukan memori statik manakala varchar menggunakan peruntukan memori dinamik

  1. Panjang

Panjang pembolehubah char boleh mempunyai sebarang nilai dari 0 hingga 255, sementara panjang pembolehubah varchar berkisar antara 0 hingga 65,535.

  1. Permohonan

Penyertaan data konsisten dalam char yang digunakan untuk menyimpan data seperti nombor telefon, sedangkan varchar digunakan untuk menyimpan data yang berbeza-beza seperti alamat.

Char vs Varchar

Char Varchar
Digunakan untuk menyimpan nilai rentetan aksara panjang tetap. Digunakan untuk menyimpan data alfanumerik panjang berubah.
Panjangnya berbeza dari 0 hingga 255. Panjangnya berbeza dari 0 hingga 65,535.
Mengambil 1 bait setiap aksara untuk penyimpanan. Mengambil 1 bait setiap aksara ditambah 1 atau 2 bait tambahan untuk menyimpan maklumat panjang.
Saiz storan char sama seperti diisytiharkan. Saiz storan varchar bergantung pada rentetan khusus yang disimpan.
Menggunakan peruntukan memori statik. Menggunakan peruntukan memori dinamik.
Char harus digunakan apabila panjang pemboleh ubah diketahui. Varchar hanya perlu digunakan apabila panjang pemboleh ubah tidak diketahui.
Ia hanya menerima aksara. Ia menerima kedua-dua watak dan nombor.
Ia 50 peratus lebih cepat daripada Varchar. Ia lebih perlahan daripada Char.
Saiz storan nilai char bersamaan dengan saiz maksimum untuk lajur. Saiz storan nilai varchar adalah sama dengan panjang sebenar data yang dimasukkan, bukan saiz maksimum untuk lajur.

Ringkasan

  • Kedua-dua 'Char' dan 'Varchar' adalah jenis data dalam bahasa pengaturcaraan dan sistem pangkalan data yang berkongsi beberapa ciri umum dari segi fungsi dan teknikal. Walau bagaimanapun, mereka berbeza jauh seperti cara mereka disimpan dan diambil.
  • Semasa char sebenarnya merujuk kepada watak, varchar merujuk kepada watak berubah-ubah. Seperti namanya, char ialah jenis data tetap panjang sementara varchar adalah jenis data panjang variabel.
  • Char mengambil sehingga 1 bait setiap aksara, manakala varchar juga mengambil masa sehingga 1 bait setiap aksara ditambah 1 atau 2 bait tambahan untuk menyimpan maklumat panjang. Untuk char, panjangnya berbeza dari 0 hingga 255 dan untuk varchar, ia boleh menjadi antara 0 dan 65,535.
  • Oleh kerana char tetap panjang, apa-apa ruang yang tinggal di padang adalah empuk dengan kosong. Varchar, sebaliknya, adalah panjang berubah sehingga ia hanya memegang aksara yang anda berikan kepadanya.
  • Watak-watak yang tinggal bersatu dengan ruang putih apabila nilai disimpan dalam medan 'char', sedangkan 'varchar' tidak menambah ruang tambahan apabila anda memberikan data kurang daripada panjang yang ditetapkan.