ما الفرق بين أنواع البيانات VARCHAR و CHAR؟ أين يجب أن استخدم VARCHAR و CHAR؟


الاجابه 1:

يجب أن يكون اختيارك "الافتراضي" هو استخدام VARCHAR ، إلا إذا كنت تحتاج فعليًا إلى دلالات الحشو في الفضاء لـ CHAR التي ذكرها الآخرون. (إذا لم تقم بذلك ، فسيؤدي ذلك إلى حدوث أخطاء غريبة لأن حشوة المساحة لديها سلوك غريب ومختلف تحتاج إلى فهمه جيدًا إذا كنت تعمل بنوع CHAR). المرة الوحيدة التي أستخدم فيها فعلاً CHAR في المخطط هي إذا كانت السلسلة محددة بحجم معين تمامًا ، مثل رمز المنتج مع الأصفار البادئة ، إلخ.

لاحظ أن العديد من محركات ديسيبل تستخدم فعليًا تخزين السلاسل على غرار VARCHAR لكل من سلاسل CHAR و VARCHAR ولا تستخدم سوى مواد الحشو في مساحة محرك التنفيذ ، لذلك لا تضمن CHAR دائمًا تنسيق تخزين ثابت العرض. يحدد معيار SQL فقط مواد الحشو باللغة ولا يفرض أي شيء فيما يتعلق بالتخزين لـ CHAR.

بصراحة ، نادراً ما تحتاج إلى حشو مساحة في التطبيقات الحديثة ، على الرغم من أنها يمكن أن تكون مفيدة إذا كنت بحاجة إلى جلب البيانات بتنسيق محدد الموضع (تتطلب الكثير من معايير تنسيق الملفات القديمة أن القيمة الأولى تنطلق من ضع X على الموضع Y على سطر) ولا ترغب في كتابة الكثير من التعليمات البرمجية لإدراج المسافات المناسبة بنفسك.

تعد تنسيقات الملفات والإبلاغ الخاصة بالموضع شائعة في نقل البيانات المالية. أعتقد أن الدلالات الغريبة نوعًا ما من نوع البيانات CHAR في SQL تهدف إلى أن تكون صديقة لهذا النوع من إنشاء التقارير وأن تكون سلوكًا "قديمًا".


الاجابه 2:

أربعة

  1. تستخدم لتخزين قيمة سلسلة الأحرف من طول ثابت. الحد الأقصى لا. من الأحرف التي يمكن أن يحتفظ بها نوع البيانات 255 حرفًا. إنه أسرع بنسبة 50٪ من VARCHAR.Uses تخصيص ذاكرة ثابت.
VARCHAR
  1. يستخدم لتخزين البيانات الأبجدية الرقمية ذات الطول المتغير. الحد الأقصى لهذا النوع من البيانات يمكن أن يصل إلى 4000 حرفًا. إنه أبطأ من CHAR.Uses تخصيص ذاكرة ديناميكية.

الاجابه 3:

أربعة

  1. تستخدم لتخزين قيمة سلسلة الأحرف من طول ثابت. الحد الأقصى لا. من الأحرف التي يمكن أن يحتفظ بها نوع البيانات 255 حرفًا. إنه أسرع بنسبة 50٪ من VARCHAR.Uses تخصيص ذاكرة ثابت.
VARCHAR
  1. يستخدم لتخزين البيانات الأبجدية الرقمية ذات الطول المتغير. الحد الأقصى لهذا النوع من البيانات يمكن أن يصل إلى 4000 حرفًا. إنه أبطأ من CHAR.Uses تخصيص ذاكرة ديناميكية.