Varchar vs Nvarchar
Varchar болон nvarchar хоёрын ялгаа нь мэдээллийн санд өгөгдөл хэрхэн хадгалагдаж байгааг харуулдаг. Өгөгдлийн сангийн систем нь өгөгдлөөс бүрдэх ба өгөгдөл нь өгөгдлийн төрлөөр тодорхойлогддог. Өгөгдлийн төрөл нь баганад ямар төрлийн утгыг агуулж болохыг хэлдэг. Өгөгдлийн сангийн хүснэгтийн багана бүр нэр, өгөгдлийн төрөлтэй байх ёстой. Өнөөдөр мэдээллийн санг боловсруулахад олон төрлийн өгөгдлийн төрлүүд байдаг. Эдгээр өгөгдлийн төрлөөс varchar болон nvarchar нь тэмдэгтүүдийг хадгалахад ашиглагддаг. Варчар, Нварчар хоёрыг сольж болох юм шиг байна. Гэхдээ эдгээр хоёр төрөл нь өөр өөр давуу талтай бөгөөд тэдгээрийг өөр өөр зорилгоор ашигладаг.
Varchar гэж юу вэ?
Нэрнээс нь харахад varchar нь янз бүрийн тэмдэгт эсвэл өөр тэмдэгт юм. Varchar-ын синтакс нь VARCHAR [(n|max)] юм. Varchar нь Юникод бус өгөгдөл болох ASCII өгөгдлийг хадгалдаг бөгөөд энэ нь ердийн хэрэглээнд ашиглагддаг өгөгдлийн төрөл юм. Varchar тэмдэгт бүрт нэг байт ашигладаг. Мөн өгөгдлийн санд мөр бүрийн уртыг хадгалдаг. Varchar нь хувьсах өгөгдлийн урттай бөгөөд дээд тал нь 8000 Юникод бус тэмдэгт хадгалах боломжтой. Энэ төрлийн өгөгдлийн төрөл нь маш уян хатан бөгөөд олон төрлийн өгөгдлийг хүлээн авах болно. Varchar нь мөрийн ашиглагдаагүй хэсгүүдэд хоосон тэмдэгт хадгалахыг зөвшөөрдөггүй. Varchar-ын хамгийн их хадгалах хэмжээ нь 2 ГБ бөгөөд өгөгдлийн бодит хадгалах хэмжээ нь өгөгдлийн бодит уртыг нэмсэн хоёр байт юм. Хэдийгээр varchar нь char-аас удаан боловч динамик санах ойн хуваарилалтыг ашигладаг. Зөвхөн мөр биш, огнооны төрлүүд, "February 14th", "2014-11-12" зэрэг тэмдэгт мөргүй төрлүүдийг мөн varchar өгөгдлийн төрөлд хадгалах боломжтой.
Nvarchar гэж юу вэ?
Нварчар нь үндэсний өөр өөр тэмдэгт эсвэл үндэсний өөр өөр тэмдэгтийг санал болгож байна. Nvarchar-ын синтакс нь NVARCHAR [(n|max)] юм. Nvarchar нь янз бүрийн урттай янз бүрийн төрлийн өгөгдлийг хадгалах боломжтой. Эдгээр нь Хятад хэл дээрх хоёр байт шиг тэмдэгт бүхий Юникод өгөгдөл, олон хэлний өгөгдөл, хэл юм. Nvarchar нь тэмдэгт бүрт 2 байт ашигладаг бөгөөд хамгийн ихдээ 4000 тэмдэгт, хамгийн ихдээ 2 ГБ уртыг хадгалах боломжтой. Nvarchar " "-г хоосон мөр ба тэг тэмдэгтийн урт гэж үздэг. Хадгалах хэмжээ нь тэмдэгтүүдийн тоог хоёр байт нэмсэнээс хоёр дахин их байна. Nvarchar-д утгыг хадгалж, хүлээн авах үед арын зай арилдаггүй.
Варчар болон Нварчар хоёр юугаараа ялгаатай вэ?
Varchar болон nvarchar хоёрын гол ялгаа нь өгөгдлийн санд өгөгдөл хэрхэн хадгалагдаж байгааг харуулдаг.
• Varchar нь ASCII утгыг, nvarchar нь Юникод тэмдэгтүүдийг хадгалдаг.
• Varchar тэмдэгт бүрт нэг байт, nvarchar тэмдэгт бүрт хоёр байт ашигладаг.
• Varchar [(n)] нь хувьсах урттай Юникод бус тэмдэгтүүдийг, Nvarchar [(n)] нь хувьсах урттай Юникод тэмдэгтүүдийг хадгалдаг.
• Varchar дээд тал нь 8000 Юникод бус тэмдэгт, nvarchar дээд тал нь 4000 Юникод эсвэл Юникод бус тэмдэгт хадгалах боломжтой.
• Varchar-ыг Юникод бус тэмдэгттэй хувьсагчтай газар ашиглах нь дээр. Nvarchar нь Юникод тэмдэгттэй хувьсагчтай газруудад ашиглагддаг.
• Varchar-ын хадгалах хэмжээ нь тэмдэгтүүдийн тоо дээр нэмэх нь офсетэд зориулагдсан хоёр байттай тэнцүү байт юм. Nvarchar нь тэмдэгтийн тоог хоёр дахин нэмсэн хоёр байттай тэнцэх байтыг ашигладаг.
• Орчин үеийн бүх үйлдлийн системүүд болон хөгжүүлэлтийн платформууд дотооддоо Юникод ашигладаг. Тиймээс өгөгдлийн төрлийг хөрвүүлэхгүйн тулд nvarchar-ыг varchar-аас илүү их ашигладаг.
Тойм:
Nvarchar vs Varchar
Varchar болон nvarchar нь бидний өөр өөр төрлийн мөрүүдийг хадгалахад ашигладаг хувьсах урттай өгөгдлийн төрөл юм. Эдгээр өгөгдлийн төрлүүд орчин үеийн үйлдлийн системд тустай. Эдгээр төрлийн өгөгдлийн төрлүүд нь үйлдлийн системийн дагуу өгөгдлийг нэг төрлөөс нөгөөд хөрвүүлэхээс зайлсхийдэг. Иймээс varchar болон nvarchar нь програмистад Юникод болон Юникод бус мөрүүдийг нэг их хүндрэлгүйгээр танихад тусалдаг. Эдгээр хоёр өгөгдлийн төрөл програмчлалд маш хэрэгтэй.