في sqlite هناك أنواع data type لا أعرف منها سو : Text : وهو حقل للنصوص و Integer : وهو حقل للأرقام الصحيحة .
أما الباقي لا أعرف وظيفتها :
BLOB
BOOLEAN
CHAR
DATE
DATETIME
INT
NUMERIC
REAL
VARCHAR
BOOLEAN (يكون قيمتين اما true او false) صفر أو واحد. مثلا عندما يكون لديك حقل is_admin ويكون من نوع Boolean فتكون قيمته true للإداري و false للمستخم العادي.
CHAR وهي من حرف الى عبارة محددة الحروف يعني قد تكون غالباً للاشياء التي تتماثل بعدد الخانات مثلاً ارقام (بطاقات شحن الموبايل) فكلها نفس عدد الخانات او رقم الموظف التسلسلي او الرقم الطلابي التي تجدها دائماً بنفس عدد الخانات. لنأخذ مثال الرقم الطلابي، قد يكون كا التالي
S11101405 < هنا في اول خانة حرف S وهو يعني Student أي مايفرق بين رقم الطالب التسلسلي ورقم الموظف، وفي الخانتين التالية تمثل سنة التسجيل ففي المثال هذا 2011 الخانة اللتي تتلوهما تمثل شهر التسجيل وهو اكتوبر 10 كمى تلاحظ والارقام الباقية تمثل الرقم التسلسلي لو تلاحظ انه 9 خانات وكل طالب سوف يحصل على رقم تسلسلي من تسع خانات، فعندما يكون لديك حقل في قاعدة البيانات لأرقام الطلاب التسلسلية يفضل ان يكون من نوع CHAR وفي مثالنا السابق يكون
CHAR(9)
VARCHAR مع انه محدود الطول لكنه يختلف عن CHAR فـ VARCHAR تصلح لمثلاً اسم المستخدم تحدد من خلالة طول (أطول اسم مستخدم مسموح به في النظام) فمثلا لو قمت بتحديد 10 خانات سيكون المنطق (عشر خانات كحد اقصى) فعندما يكون اسم المستخدم Rashid فسوف يكون 6 خانات وسوف يسجله بحجمة الطبيعي 6 خانات. وعندما يكون الاسم Rashid AL Marri هنا تكون عدد خانات المدخل 15 مع احتساب المسافات، فسوف تقبل اول عشرة ويسجل المدخل على أنه ذو عشرة خانات ويكون كا التالي Rashid AL مع مسافة خالية. الفرق بين VARCHAR. قد تقول ما الفرق عندما احدد CHAR بعشر خانات أو VARCHAR بعشر خانات ؟ الفرق (أن CHAR سواء كانت عدد خانات المدخل 10 أو اقل) فأي مدخل سوف يتم حجز 10 خانات له في الذاكرة. على عكس VARCHAR سوف يحجز عدد الخانات الفعلية لأي مدخل وهو يوفر على الذاكرة (إذا كانت جميع مدخلات الحقل غير متماثلة بعدد الخانات)
إذا ما سبقني شخص اخر في شرح البقية فلي عودة. اتمنى ان الشرح واضح.
أشكرك أخي الفاضل على هذا الشرح الرائع .. لم يشرح أحد باقي الانواع .. هل تستطيع شرح هذه الثلاثة فقط ؟
BLOB
NUMERIC
INT
مرحبا
قد تكون تعرف ماهو INT من خلال رد صديقنا Anas R ولكن السؤال هنا ما الفرق بينه وبين NUMERIC. (كلاهما ارقام) ولكن ما الفرق ؟ حسناً
INT: عدد صحيح غير عشري .. والأمثلة كثيرة -1، 0، 1، 2 .. الخ
NUMERIC: هو اكثر تفصيلاً من INT فهو يصلح للعملات مشابه تماماً لـ decimal أي عدد عشري مثال 1.5 (واحداً ونصف) عدد بفاصلة.
وغالباً تعريف الـ DECIMAL أو NUMERIC في قاعدة البيانات يحمل خانتين الخاننة الاولى تعبر عند (العدد الاقصى لخانات العدد الصحيح) والخانة الاخرى تعبر عن (عدد الخانات التي بعد الفاصلة)
مثلاً:
amount DECIMAL(10,2)
فكل المدخلات التالية: تكون صحيحة،
1.50
1.5
12.5
1234123411.54
اتمنى اتضحت لك الصورة، سوف اعود واذا لم تكون الصورة واضحة اخبرني. واتمنى ان اكون قد اصبت.
لي عودة اذا ماسبقني احد الاخوة في شرح DATE و DATETIME
التعليقات