تفاوت بین CHAR و NCHAR در MySQL

P.H.P

Member
تفاوت بین CHAR و NCHAR در MySQL

CHAR و NCHAR هر دو دارای طول رشته ای ثابت در داده ها دارند. اما تفاوت آنها در چیست؟

CHAR نام کامل CHARACTER یا کاراکتر است.


NCHAR نام کامل NATIONAL CHARACTER یا کاراکتر ملی است.


به طور پیشفرض CHAR از مجموعه کاراکتر های اسکی استفاده میکند و هر یک کاراکتر به میزان 1 بایت ذخیره میشود.


NCHAR از مجموعه کاراکتر های یونیکد استفاده میکند. این نوع ذخیره سازی با فرمت UTF8 انجام میشود و هر یک کاراکتر میتواند 1 بایت تا 4 بایت را اشغال کند.


هر ستون در CHAR و NCHAR با طول ثابت در واحد کاراکتر تعریف شده اند.


برای ایجاد جدول از مثال های مشابه با NCHAR زیر میتوانید استفاده کنید:


کد:
CREATE TABLE tableName(columnName NCHAR(80));

CREATE TABLE tableName(columnName NATIONAL CHAR(80));

CREATE TABLE tableName(columnName NATIONAL CHARACTER(80));

CREATE TABLE tableName(columnName CHAR(80) CHARACTER SET utf8);

CREATE TABLE tableName(columnName CHARACTER(80) CHARACTER SET utf8);
ما این کار را میتوانیم برای طراحی بانک های اطلاعاتی فارسی انجام دهیم


با استفاده از این روش هنگام مشاهده رکورد ها در بانک اطلاعاتی به صورت واضح و کاملا فارسی دیده میشوند


منبع: www.Vvolf.net



موفق
 

greencat

Member
پس چرا NChar یا NVarChar جزء جنس فیلد‌های معیین و از پیش تعریف شده خود MySQL نیستش و موقع ساخت فیلد‌ها فقط نوع char و varchar و غیره ... رو داره نه Nvarchar و ... ؟؟؟
 

P.H.P

Member
پس چرا NChar یا NVarChar جزء جنس فیلد‌های معیین و از پیش تعریف شده خود MySQL نیستش و موقع ساخت فیلد‌ها فقط نوع char و varchar و غیره ... رو داره نه Nvarchar و ... ؟؟؟


منظورت phpmyadmin هست دیگه؟

بعد از import کردن میاد تمامی موارد NATIONAL دار رو با CHARACTER SET utf8 ذخیره میکنه

چونکه اگه کامل خودنده بودی گفته شده همه ی مثال ها یه کار رو انجام میدن

موفق
 

greencat

Member
حرفه من پرسشی و سوالی بود نه چیزه دیگه:wink:
منظور من اینه که خوب چرا توی phpMyadmin از این نوع جنس برای فیلد‌ها گذاشته نشده؟؟ مثل nchar و nvarchar؟ و این طوری با این کار مشکلی به وجود نمیادش؟
 

P.H.P

Member
حرفه من پرسشی و سوالی بود نه چیزه دیگه:wink:
منظور من اینه که خوب چرا توی phpMyadmin از این نوع جنس برای فیلد‌ها گذاشته نشده؟؟ مثل nchar و nvarchar؟ و این طوری با این کار مشکلی به وجود نمیادش؟

عرض کردم

بعد از import کردن میاد تمامی موارد NATIONAL دار رو با CHARACTER SET utf8 ذخیره میکنه

یعنی شما اگر از NCHAR, NATIONAL CHAR, NATIONAL CHARACTER, CHAR CHARACTER SET utf8 استفاده کنید تماما CHARACTER SET utf8 ذخیره خواهند شد.

برای این کار در phpMyAdmin هنگام ایجاد فیلد Collation رو باید utf8_persian_ci انتخاب کنید.

و استفاده از این مورد مشکلی بوجود نماید

موفق
 

جدیدترین ارسال ها

بالا