Varchar vs Nvarchar
تفاوت بین varchar و nvarchar نشان می دهد که چگونه داده ها در یک پایگاه داده ذخیره می شوند. یک سیستم پایگاه داده از داده ها تشکیل شده و داده ها با انواع داده ها تعریف می شوند. یک نوع داده می گوید که یک ستون چه نوع مقداری ممکن است داشته باشد. هر ستون در جدول پایگاه داده باید یک نام و یک نوع داده داشته باشد. امروزه انواع داده های زیادی در طراحی پایگاه داده موجود است. از بین این نوع داده ها، varchar و nvarchar برای ذخیره کاراکترهای رشته استفاده می شود. به نظر می رسد ورچار و نورچار قابل تعویض هستند. اما این دو نوع مزایای متفاوتی دارند و برای اهداف متفاوتی استفاده میشوند.
وارچار چیست؟
همانطور که از نام آن پیداست، varchar یک کاراکتر یا کاراکتر متغیر است. نحو varchar VARCHAR [(n|max)] است. Varchar دادههای ASCII را ذخیره میکند که دادههای غیر یونیکد هستند و این نوع دادهای است که در استفاده معمولی استفاده میشود. Varchar از یک بایت در هر کاراکتر استفاده می کند. همچنین طول هر رشته را در پایگاه داده ذخیره می کند. Varchar دارای طول داده متغیر است و می تواند حداکثر 8000 کاراکتر غیر یونیکد را ذخیره کند. این نوع داده بسیار انعطاف پذیر است و انواع مختلف داده ها را می پذیرد. Varchar به شما اجازه نمی دهد کاراکترهای خالی را برای قسمت های استفاده نشده رشته ذخیره کنید. حداکثر حجم ذخیرهسازی varchar 2 گیگابایت است و حجم ذخیرهسازی واقعی دادهها طول واقعی داده به اضافه دو بایت است. اگرچه varchar کندتر از char است، اما از تخصیص حافظه پویا استفاده می کند. نه تنها رشته ها، بلکه انواع غیر رشته ای مانند انواع تاریخ، "14 فوریه"، "2014-11-12" نیز می توانند در نوع داده varchar ذخیره شوند.
نوارچار چیست؟
Nvarchar یک شخصیت متغیر ملی یا یک کاراکتر متغیر ملی را پیشنهاد می کند. نحو nvarchar NVARCHAR [(n|max)] است. Nvarchar می تواند انواع مختلفی از داده ها را با طول های مختلف ذخیره کند. آنها داده های یونیکد و داده ها و زبان های چند زبانه با کاراکترهای دو بایتی در چینی هستند. Nvarchar از 2 بایت در هر کاراکتر استفاده می کند و می تواند حداکثر 4000 کاراکتر و حداکثر طول 2 گیگابایت را ذخیره کند. Nvarchar با " " به عنوان رشته خالی و طول کاراکتر صفر رفتار می کند. اندازه ذخیره سازی دو برابر تعداد کاراکترها به اضافه دو بایت است. در nvarchar، هنگام ذخیره و دریافت مقدار، فاصلههای انتهایی حذف نمیشوند.
تفاوت Varchar و Nvarchar چیست؟
تفاوت کلیدی بین varchar و nvarchar نشان می دهد که چگونه داده ها در یک پایگاه داده ذخیره می شوند.
• Varchar مقادیر ASCII و nvarchar کاراکترهای Unicode را ذخیره می کند.
• Varchar از یک بایت برای هر کاراکتر استفاده می کند در حالی که nvarchar از دو بایت در هر کاراکتر استفاده می کند.
• Varchar [(n)] کاراکترهای غیریونیکد را با طول متغیر و Nvarchar [(n)] کاراکترهای یونیکد را با طول متغیر ذخیره می کند.
• Varchar می تواند حداکثر 8000 نویسه غیر یونیکد و nvarchar حداکثر 4000 کاراکتر یونیکد یا غیریونیکد را ذخیره می کند.
• Varchar بهتر است در مکان هایی استفاده شود که متغیرهایی با کاراکترهای غیر یونیکد هستند. Nvarchar در مکان هایی که متغیرهای دارای کاراکترهای یونیکد هستند استفاده می شود.
• اندازه ذخیره varchar تعداد بایت ها برابر با تعداد کاراکترها به اضافه دو بایت است که برای افست رزرو شده است. Nvarchar از تعداد بایت های برابر با دو برابر تعداد کاراکترها به اضافه دو بایت استفاده می کند که برای offset رزرو شده است.
• همه سیستم عامل های مدرن و پلت فرم های توسعه از Unicode به صورت داخلی استفاده می کنند. بنابراین، nvarchar به جای varchar برای جلوگیری از تبدیل انواع داده ها بسیار مورد استفاده قرار می گیرد.
خلاصه:
Nvarchar vs Varchar
Varchar و nvarchar انواع داده با طول متغیر هستند که ما برای ذخیره انواع مختلف رشته ها استفاده می کنیم. این نوع داده ها در سیستم عامل های مدرن مفید هستند. این انواع داده ها از تبدیل داده ها از یک نوع به نوع دیگر مطابق با سیستم عامل جلوگیری می کنند. بنابراین، varchar و nvarchar به برنامه نویس کمک می کند تا رشته های یونیکد و غیر یونیکد را بدون مشکل زیاد شناسایی کند. این دو نوع داده در برنامه نویسی بسیار مفید هستند.