سؤال

إخلاء المسئولية: أنا جديد جدا على SQL وقواعد البيانات بشكل عام.


أحتاج إلى إنشاء حقل سيخزن بحد أقصى 32 حرفا من البيانات النصية. يفعل "VARCHAR(32)"يعني أن لدي بالضبط 32. شخصيات لبياناتي؟ هل أحتاج إلى حجز حرف إضافي لإنهاء Null؟

أجريت اختبارا بسيطا ويبدو أن هذا هو المخزن المؤقت WYSIWYG. ومع ذلك، أردت الحصول على إجابة ملموسة من أشخاص يعرفون فعلا ما يفعلونه.


لدي خلفية C [++]، لذلك هذا السؤال هو رفع أجراس الإنذار في رأسي.

هل كانت مفيدة؟

المحلول

نعم، لديك 32 حرفا تحت تصرفك. SQL لا يهم نفسه مع اختلافات المنحى مثل بعض لغات البرمجة القيام به.

نصائح أخرى

حجم مواصفات varchar الخاص بك هو الحد الأقصى لحجم بياناتك، لذلك في هذه الحالة، 32 حرفا. ومع ذلك، فإن Varchars هي حقل ديناميكي، وبالتالي فإن التخزين الفعلي الفعلي المستخدم هو فقط حجم البيانات الخاصة بك، بالإضافة إلى واحد أو اثنين بايت.

إذا قمت بوضع سلسلة من 10 أحرف في varchar (32)، فسيكون التخزين الفعلي 11 أو 12 بايت (سيقول لك الدليل الصيغة الدقيقة).

ومع ذلك، عندما تتعامل MySQL مع مجموعات النتائج (أي. بعد تحديد)، سيتم تخصيص 32 بايت في الذاكرة لهذا الحقل لكل سجل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top