ความแตกต่างระหว่าง Varchar และ Nvarchar (พร้อมตาราง)

สารบัญ:

Anonim

DBMS เป็นซอฟต์แวร์สำหรับจัดการฐานข้อมูลอย่างมีประสิทธิภาพ MSSQL อิงตามแบบจำลองเชิงสัมพันธ์และอยู่ภายใต้ DBMS ข้อมูลคือ MSSQL ที่เก็บไว้ในตารางที่เชื่อมต่อ ชุดค่าเฉพาะจะถูกเก็บไว้ในแต่ละตาราง แอตทริบิวต์จะแสดงเป็นคอลัมน์ ในขณะที่ระเบียนแสดงถึงแต่ละแถว

เมื่อตารางเก็บค่า แต่ละคอลัมน์จะมีข้อมูลเฉพาะประเภท หรือพูดง่ายๆ ก็คือ ประเภทข้อมูลจะถูกตีในแต่ละคอลัมน์ เมื่อพูดถึงประเภทข้อมูล varchar และ Nvarchar เป็นสองประเภทที่ค่อนข้างสับสน บทความนี้เน้นความแตกต่างระหว่าง varchar และ Nvarchar

วาร์ชาร์ vs นวาร์ชาร์

ความแตกต่างหลัก ระหว่างประเภทข้อมูล varchar และ Nvarchar คือใน SQL varchar เป็นประเภทข้อมูลที่จัดเก็บชุดข้อมูลอักขระที่ไม่ใช่ Unicode ที่มีความยาวไม่แน่นอน ในทางกลับกัน ใน SQL เป็นชนิดข้อมูลสำหรับเก็บข้อมูลอักขระ Unicode ที่มีความยาวไม่แน่นอน

ในเซิร์ฟเวอร์ AQL varchar เป็นประเภทข้อมูลที่เกี่ยวข้องกับอักขระตัวแปร การจัดสรรหน่วยความจำเป็นไปตามอักขระที่แทรก ขณะใช้ varchar อักขระที่ไม่ใช่ Unicode จะถูกเก็บไว้ พารามิเตอร์ขนาดสูงสุดของคอลัมน์ varchar (ม.) สามารถอยู่ในช่วงตั้งแต่ 1 ถึง 255 ไบต์

Nvarchar ยังเป็นชนิดข้อมูลที่เกี่ยวข้องกับอักขระตัวแปรใน SQL Server ในฐานข้อมูลสามารถจัดเก็บได้หลายภาษา ในกรณีที่มีการใช้ภาษาอื่น จะต้องใช้ช่องว่างสองเท่าในการจัดเก็บชุดอักขระเพิ่มเติม ในขณะที่ใช้ Nvarchar จะใช้อักขระ Unicode

ตารางเปรียบเทียบระหว่าง Varchar และ Nvarchar

พารามิเตอร์ของการเปรียบเทียบ Varchar นวาร์ชาร์
การตีความ ใน SQL varchar เป็นชนิดข้อมูลที่จัดเก็บชุดข้อมูลอักขระที่ไม่ใช่ Unicode ที่มีความยาวไม่แน่นอน ใน SQL Nvarchar เป็นชนิดข้อมูลสำหรับจัดเก็บข้อมูลอักขระ Unicode ที่มีความยาวไม่แน่นอน
ประเภทข้อมูลตัวละคร ข้อมูลที่ไม่ใช่ Unicode ข้อมูล Unicode
ขนาดตัวอักษร 1 ไบต์ 2 ไบต์
ความยาวสูงสุด 8, 000 4, 000
ขนาดการจัดเก็บ ความยาวจริง (เป็นไบต์) ความยาวจริง 2 เท่า (เป็นไบต์)

Varchar คืออะไร?

varchar เป็นชนิดข้อมูลที่จัดเก็บสตริงอักขระที่มีความยาวต่างกันซึ่งมีอักขระแบบหลายไบต์และแบบไบต์เดี่ยว ในที่นี้ (R) หมายถึงจำนวนไบต์ขั้นต่ำที่สงวนไว้สำหรับคอลัมน์ และ m หมายถึงขนาดสูงสุดของคอลัมน์

คอลัมน์ที่ถือว่าเป็น varchar โดยไม่มีพารามิเตอร์และวงเล็บมีขนาดที่สงวนไว้เป็นศูนย์และมีขนาดสูงสุดหนึ่งไบต์ ในกรณีที่วางดัชนีบนคอลัมน์ของ varchar ขนาดสูงสุดคือ 254 ไบต์ สตริงอักขระสามารถจัดเก็บที่สั้นกว่าค่า m แต่ไม่ยาวเกินไป

เป็นทางเลือกในการระบุพารามิเตอร์พื้นที่สงวนขั้นต่ำ (R) ค่านี้สามารถมีค่าได้ตั้งแต่ 0 ถึง 255 ไบต์ แต่ควรน้อยกว่า (m) ของคอลัมน์ varchar สามารถตั้งค่าเริ่มต้นเป็น 0 ได้หากไม่ได้ระบุค่าต่ำสุด ดังนั้นจึงจำเป็นต้องระบุพารามิเตอร์นี้เมื่อผู้ใช้เริ่มแทรกแถวที่มีสตริงอักขระว่างในคอลัมน์

เมื่อสตริงถูกเก็บไว้ในคอลัมน์ varchar อักขระจริงจะถูกเก็บไว้เท่านั้น หากไม่ได้ระบุพื้นที่ที่สงวนไว้หรือ (R) แต่สตริงข้อมูลบางส่วนสั้นกว่าไบต์ของ (R) บางแถวที่สงวนไว้สำหรับพื้นที่จะไม่ถูกใช้งาน

Nvarchar คืออะไร?

Nvarchar เป็นประเภทข้อมูลสำหรับจัดเก็บข้อมูลอักขระในช่องที่มีความยาวผันแปรได้ อักขระที่ไม่ใช่ Unicode เช่น ASCII จะถูกเก็บไว้ซึ่งแสดงถึงตัวพิมพ์ใหญ่ สัญลักษณ์ ตัวพิมพ์เล็ก และตัวเลข จำเป็นต้องระบุค่าสูงสุดของคอลัมน์

เมื่อวางดัชนีบนคอลัมน์ Nvarchar ขนาดสูงสุดคือ 254 ไบต์ สตริงอักขระที่สั้นกว่าสามารถจัดเก็บได้ แต่ไม่เกินค่าที่ระบุ หากไม่ได้ระบุค่าช่องว่างขั้นต่ำ ค่าเริ่มต้นจะเป็น 0 ของค่าสำรอง

จำเป็นต้องระบุพารามิเตอร์ที่สงวนไว้ในขณะที่เริ่มแทรกแถวที่มีค่าข้อมูลโดยไม่มีหรือไม่กี่อักขระในคอลัมน์นี้ ต่อมาคาดว่าจะมีการอัปเดตข้อมูลด้วยค่าที่ยาวขึ้น ค่านี้โดยทั่วไปมีตั้งแต่ 0 ถึง 255 ไบต์ แต่ควรน้อยกว่าขนาดสูงสุดของคอลัมน์

ข้อมูลอาจเป็นสตริงของตัวอักษร ตัวเลข และอักขระอื่นๆ แบบหลายไบต์หรือไบต์เดียว ที่สนับสนุนโดยชุดโค้ดของฐานข้อมูลที่ตั้งอยู่ การใช้ Nvarchar ที่ประหยัดพื้นที่ที่ใช้ในตารางไม่มีผลต่อขนาดดัชนี ดัชนีซึ่งอิงตามคอลัมน์ของ Nvarchar ความยาวของคีย์ดัชนีแต่ละรายการจะเท่ากับไบต์สูงสุด ซึ่งเป็นขนาดสูงสุดของคอลัมน์

ความแตกต่างหลักระหว่าง Varchar และ Nvarchar

บทสรุป

สรุปได้ว่าทั้ง varchar และ Nvarchar เป็นประเภทข้อมูลที่อยู่ในแต่ละคอลัมน์ ใน SQL varchar เป็นชนิดข้อมูลที่จัดเก็บชุดข้อมูลอักขระที่ไม่ใช่ Unicode ที่มีความยาวไม่แน่นอน ในทางกลับกัน ใน SQL Nvarchar เป็นชนิดข้อมูลสำหรับเก็บข้อมูลอักขระ Unicode ที่มีความยาวไม่แน่นอน

Varchar เป็นประเภทข้อมูลอักขระที่ไม่ใช่ Unicode ที่มีขนาดอักขระ 1 ไบต์ ในทางกลับกัน Nvarchar เป็นชนิดข้อมูลอักขระ Unicode ที่มีขนาดอักขระ 2 ไบต์ ใน MSSQL varchar สามารถเก็บอักขระได้สูงสุด 8000 ในขณะที่สามารถเก็บอักขระได้สูงสุด 4,000 ตัว

อ้างอิง

ความแตกต่างระหว่าง Varchar และ Nvarchar (พร้อมตาราง)