Rumah >pangkalan data >tutorial mysql >CHAR vs VARCHAR dalam SQL: Perbezaan Utama Diterangkan

CHAR vs VARCHAR dalam SQL: Perbezaan Utama Diterangkan

Linda Hamilton
Linda Hamiltonasal
2024-12-22 03:57:15451semak imbas

CHAR vs VARCHAR in SQL: Key Differences Explained

Perbezaan Antara CHAR dan VARCHAR dalam SQL

Kedua-dua CHAR dan VARCHAR digunakan untuk menyimpan rentetan aksara dalam SQL, tetapi ia berbeza dengan ketara dari segi storan, prestasi dan penggunaan. Berikut ialah perbandingan terperinci:


1. Definisi

  • CHAR:

    Jenis data aksara panjang tetap. Ia sentiasa menggunakan jumlah ruang storan yang tetap, tanpa mengira panjang data yang disimpan.

  • VARCHAR:

    Jenis data aksara panjang berubah-ubah. Storan yang digunakan bergantung pada panjang sebenar data yang disimpan.


2. Gelagat Penyimpanan

  • CHAR:

    • Memperuntukkan saiz maksimum yang ditetapkan untuk setiap nilai.
    • Jika rentetan yang disimpan lebih pendek daripada saiz yang ditentukan, ia berlapik dengan ruang untuk mengisi ruang yang tinggal.
    • Contoh: CHAR(10) akan sentiasa menggunakan 10 bait, walaupun rentetannya ialah "Hello" (5 bait).
  • VARCHAR:

    • Hanya menggunakan storan sebanyak yang diperlukan untuk rentetan, ditambah 1 atau 2 bait tambahan untuk menyimpan panjang rentetan.
    • Contoh: VARCHAR(10) menyimpan "Hello" (5 bait) akan menggunakan 6 atau 7 bait (5 untuk rentetan 1/2 untuk panjang).

3. Prestasi

  • CHAR:

    • Lebih pantas untuk rentetan panjang tetap kerana panjangnya telah ditetapkan dan tidak perlu mengurus panjang berubah semasa pengambilan data.
    • Sesuai untuk menyimpan data dengan panjang yang konsisten, seperti poskod atau kod negara.
  • VARCHAR:

    • Lebih cekap dari segi storan untuk data panjang boleh ubah tetapi lebih perlahan untuk operasi disebabkan oleh overhed mengurus panjang.

4. Kes Penggunaan

  • CHAR:

    • Terbaik untuk data panjang tetap seperti:
    • Kod negara (cth., "AS", "UK")
    • Kod pos
    • Kod produk
    • Memastikan penyimpanan dan pengambilan yang konsisten.
  • VARCHAR:

    • Sesuai untuk data panjang berubah-ubah seperti:
    • Nama (cth., "John", "Alexander")
    • Alamat e-mel
    • Penerangan atau ulasan

5. Panjang Maksimum

  • CHAR:

    • Menyokong sehingga 255 aksara (bergantung pada sistem pangkalan data).
  • VARCHAR:

    • Boleh menyimpan sehingga 65,535 aksara dalam sesetengah sistem pangkalan data (cth., MySQL), tetapi maksimum sebenar bergantung pada saiz baris dan enjin pangkalan data.

6. Contoh

Menggunakan CHAR:

CREATE TABLE countries (
    country_code CHAR(3) NOT NULL
);

INSERT INTO countries (country_code) VALUES ('US'), ('UK'), ('IN');
  • Walaupun "AS" disimpan, ia akan menduduki 3 bait ('AS ' dengan padding).

Menggunakan VARCHAR:

CREATE TABLE users (
    username VARCHAR(50)
);

INSERT INTO users (username) VALUES ('Alice'), ('Alexander');
  • "Alice" menduduki 6 bait (5 bait untuk rentetan 1 untuk panjang) dan "Alexander" menduduki 10 bait.

7. Jadual Ringkasan

Aspect CHAR VARCHAR
Length Fixed-length Variable-length
Storage Always uses the defined size. Uses only the required size length metadata.
Performance Faster for fixed-length strings. Slightly slower due to length management.
Padding Pads with spaces for shorter data. No padding; stores exact string.
Use Case Fixed-length data. Variable-length data.
Max Length 255 characters. Up to 65,535 characters.
Aspek
CHAR

VARCHAR Panjang
    Panjang tetap Panjang boleh ubah
  • Storan
  • Sentiasa menggunakan saiz yang ditentukan. Hanya menggunakan metadata panjang saiz yang diperlukan. Prestasi Lebih pantas untuk rentetan panjang tetap. Lebih perlahan kerana pengurusan panjang.
  • Padding
  • Pad dengan ruang untuk data yang lebih pendek. Tiada padding; menyimpan rentetan tepat. Kes Penggunaan Data panjang tetap. Data panjang boleh ubah. Panjang Maks

    255 aksara. Sehingga 65,535 aksara.

    Kesimpulan
    Gunakan CHAR untuk data panjang tetap di mana ketekalan dalam saiz adalah penting dan kecekapan storan bukanlah kebimbangan utama. Gunakan VARCHAR untuk data panjang boleh ubah untuk menjimatkan ruang storan dan mengendalikan panjang rentetan yang fleksibel. Hai, saya Abhay Singh Kathayat! Saya seorang pembangun timbunan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna. Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.

    Atas ialah kandungan terperinci CHAR vs VARCHAR dalam SQL: Perbezaan Utama Diterangkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn