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

شروع موضوع توسط P.H.P ‏11 ژانویه 2011 در انجمن برنامه‌نویسی با PHP

کلمات کلیدی:
  1. P.H.P

    P.H.P Member

    ارسال‌ها:
    647
    تشکر شده:
    416
    امتیاز دستاورد:
    16
    تفاوت بین CHAR و NCHAR در MySQL

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

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


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


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


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


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


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


    کد (Text):

    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



    موفق
     
    نوشته شده توسط P.H.P در ‏11 ژانویه 2011
    Masoud1365، ziXet و mona.joon از این ارسال تشکر کرده اند.
  2. greencat

    greencat Member

    ارسال‌ها:
    114
    تشکر شده:
    44
    امتیاز دستاورد:
    16
    پس چرا NChar یا NVarChar جزء جنس فیلد‌های معیین و از پیش تعریف شده خود MySQL نیستش و موقع ساخت فیلد‌ها فقط نوع char و varchar و غیره ... رو داره نه Nvarchar و ... ؟؟؟
     
    نوشته شده توسط greencat در ‏11 ژانویه 2011
  3. P.H.P

    P.H.P Member

    ارسال‌ها:
    647
    تشکر شده:
    416
    امتیاز دستاورد:
    16

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

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

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

    موفق
     
    نوشته شده توسط P.H.P در ‏11 ژانویه 2011
  4. greencat

    greencat Member

    ارسال‌ها:
    114
    تشکر شده:
    44
    امتیاز دستاورد:
    16
    حرفه من پرسشی و سوالی بود نه چیزه دیگه:wink:
    منظور من اینه که خوب چرا توی phpMyadmin از این نوع جنس برای فیلد‌ها گذاشته نشده؟؟ مثل nchar و nvarchar؟ و این طوری با این کار مشکلی به وجود نمیادش؟
     
    نوشته شده توسط greencat در ‏11 ژانویه 2011
  5. P.H.P

    P.H.P Member

    ارسال‌ها:
    647
    تشکر شده:
    416
    امتیاز دستاورد:
    16
    عرض کردم

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

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

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

    موفق
     
    نوشته شده توسط P.H.P در ‏11 ژانویه 2011
    greencat از این پست تشکر کرده است.

به اشتراک بگذارید