ความแตกต่างหลัก: ในระบบฐานข้อมูลเช่น SQL Server, Char และ Varchar เป็นทั้งประเภทข้อมูลโดยที่ char หมายถึงอักขระจริงและ Varchar หมายถึงอักขระตัวแปร ทั้งคู่ใช้เพื่อเก็บประเภทสตริงของค่าที่มีความยาวสูงสุด 8, 000 อักขระ ขนาดการจัดเก็บของถ่านเหมือนกับที่ประกาศไว้ในขณะที่ด่านที่หกของ Varchar ขึ้นอยู่กับจำนวนไบต์ของข้อมูลจริงที่ป้อน
ให้เรานำตัวอย่าง - ถ้าข้อมูล Char ถูกประกาศในทาง: ประกาศทดสอบ Char (20) และ test = "การทดสอบ" การทดสอบจะใช้เวลา 7 ไบต์แรกและส่วนที่เหลือจะถูกเติมด้วยข้อมูลว่างเปล่า ในทางกลับกันถ้าข้อมูล Varchar ถูกประกาศด้วยวิธี: ประกาศทดสอบ Varchar (20) และ test =“ การทดสอบ” จากนั้นข้อมูลจะมีขนาดเพียง 7 + 2 ไบต์
Char ควรใช้เมื่อทราบความยาวของตัวแปรในขณะที่ Varchar ควรใช้เฉพาะเมื่อไม่ทราบความยาว Char เร็วกว่า Varchar เนื่องจากระบบ Varchar ใช้เวลาในการตรวจหาเวลาในการค้นหาจุดสิ้นสุดของสตริง ในทางกลับกันคราวนี้ไม่เสียในชาร์
เปรียบเทียบระหว่าง Char และ Varchar:
ถ่าน | varchar | |
แบบเต็ม | ตัวละคร | อักขระที่เปลี่ยนแปลงได้ (ในบริบทของอักขระที่มีความยาวผันแปรได้) |
ความหมาย | ใช้เพื่อเก็บข้อมูลสตริงที่ไม่ใช่ Unicode ที่มีความยาวคงที่ | ใช้เพื่อเก็บข้อมูลสตริงที่ไม่ใช่ Unicode ที่มีความยาวผันแปรได้ |
ไบต์ที่ใช้สำหรับการจัดเก็บ | 1 ไบต์ต่อตัวละคร | 1 ไบต์ต่อตัวอักษรและเพิ่มเติม 1 หรือ 2 ไบต์สำหรับการเก็บข้อมูลความยาว |
ใบสมัคร | ใช้สำหรับจัดเก็บข้อมูลเช่นหมายเลขโทรศัพท์ ฯลฯ (การป้อนข้อมูลสอดคล้องกัน) | ใช้สำหรับจัดเก็บข้อมูลเช่นที่อยู่ (รายการข้อมูลแตกต่างกันไปอย่างมาก) |
เงื่อนไข: อินพุตสตริงน้อยกว่าไบต์ที่ประกาศ | ช่องว่างที่ไม่มีตัวอักษรใด ๆ จะถูกเสริมด้วยอักขระช่องว่าง | ช่องว่างที่ไม่มีอักขระใด ๆ จะไม่ถูกทับด้วยอักขระใด ๆ |
เงื่อนไข: อินพุตสตริงมากกว่าไบต์ที่ประกาศ | สตริงจะถูกปัดเศษเป็นไบต์ที่ประกาศ | สตริงจะถูกปัดเศษเป็นไบต์ที่ประกาศ |