تفاوت نوع داده ای varchar و nvarchar در Sql Server چیست ؟
لطفا بفرمایید تفاوت نوع داده ای varchar و nvarchar در Sql Server چیست ؟ برای ذخیره سازی اطلاعات فارسی استفاده از کدام Data Type بهتر است ؟
تفاوت داده های char، nchar، varchar و nvarchar چیست ؟
سوال شما در مورد تفاوت بین Data Type های varchar و nvarchar هست البته ولی در اینجا بهتره از Data Type های char و nchar هم نام ببرم چون تا حد زیادی مشابه با varchar و nvarchar هست.
در یک نگاه کلی و به طور خلاصه تفاوت های زیر وجود داره :
- نوع داده ای nchar و nvarchar توانایی ذخیره کاراکترهای Unicode رو دارن. (برای حروف فارسی و عربی مناسب هستند.)
- نوع داده ای char و varchar توانایی ذخیره کاراکترهای Unicode رو ندارن.
- انواع داده ای char و nchar دارای طول ثابت هستن. وقتی شما یک فیلد را مثلا به صورت char(5) تعریف می کنید سلولهای این ستون به اندازه 5 کاراکتر فضا اشغال می کنن. حتی اگر سلول خالی هم باشه باز هم به اندازه 5 کاراکتر فضا اشغال میشه.
- انواع داده ای varchar و nvarchar دارای ول متغیر هستن. یعنی اگر یک ستون با نوع داده ای varchar(20) داشته باشید و مثلا عبارت Ali در آن ذخیره شود فقط 3 کاراکتر فضا اشغال می شود. در واقع حداکثر طولی که این ستون میتواند اشغال کند 20 می باشد.
به مثال های زیر توجه کنید :
Create Table Table1 (
col1 char(50),
col2 nchar(50),
col3 varchar(50),
col4 nvarchar(50),
col5 varchar(max),
col6 nvarchar(max)
)
در کوئری بالا یک جدول با 6 ستون داریم.
- ستون col1 می تواند رشته هایی با حداکثر طول 50 کاراکتر در خود جا دهد. اگر طول رشته کمتر از 50 کاراکتر باشد به اندازه همان 50 کاراکتر فضا اشغال می شود و اگر بیشتر از 50 کاراکتر باشد ذخیره نمی شود.
- ستون col2 هم مانند ستون قبل می باشد با این تفاوت که برای ذخیره سازی حروف عربی و فارسی هم مناسب می باشد. نکته اینکه برای ذخیره سازی حروف عربی و فارسی از varchar هم می توانید استفاده کنید. در ادامه مثالی به شما نشون میدم.
- ستون های col3 و col4 برای ذخیره رشته تا حداکثر 50 کاراکتر مناسب می باشد. در صورتی که طول رشته کمتر از 50 کاراکتر باشد به اندازه طول رشته فضا اشغال می شود و در صورتی که بیشتر باشد ذخیره نمی شود.
- در ستون های col5 و col6 هم مشخص کردیم که به اندازه طول رشته فضا اسغال بشه. حالا ممکنه رشته 10 کاراکتر باشه یا اینکه 1000 کاراکتر. در واقع اندازه ستون رو متغیر گذاشتیم.
نکته : اگر نوع داده ای رو varchar یا char تعریف کردید باز هم میتونید کاراکترهای فارسی یا عربی در اون ذخیره کنید. به مثال زیر توجه کنید :
Insert Into Table 1
(col1, col2, col3, col4)
Values
(N'حمید',
'حمید',
N'رضا'
'رضا')
در مثال بالا در ستونهای col1 و col3 که char و varchar هستند با گذاشتن کاراکتر N به صورت یونیکد ذخیره سازی رو انجام دادیم.
معمولا در پروژه های مدرن و بزرگ از نوع داده ای nvarchar بیشتر از سایر انواع داده ای استفاده میشه.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )