منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى العرب التعليمى

منتدى العرب التعليمى تعليمى شامل
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 خصائص اضافية لأنواع الحقول Databases Column Characteristics

اذهب الى الأسفل 
كاتب الموضوعرسالة
الويب المصرى
الباشا صاحب المنتدى
الباشا صاحب المنتدى
الويب المصرى


عدد المساهمات : 434
تاريخ التسجيل : 14/11/2010
العمر : 37

خصائص اضافية لأنواع الحقول Databases Column Characteristics  Empty
مُساهمةموضوع: خصائص اضافية لأنواع الحقول Databases Column Characteristics    خصائص اضافية لأنواع الحقول Databases Column Characteristics  Emptyالسبت نوفمبر 20, 2010 11:44 pm

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]



عندما تختار نوع الحقل الذى ستستخدمه
فى قاعدة البيانات (كما شرحنا بالدرس السابق)

تحدد الحقل اذا كان رقمى, او نصى, او وقت وتاريخ.

هناك ايضا خصائص اضافية لهذه الحقول يجب فهمها لأنها لا غنى عنها

اول هذه الخصائص هى الخاصية AUTO_INCREMENT

ماذا تعنى هذه الخاصية؟

هذه الخاصية توضع للحقول الرقمية فقط. يعنى لا يمكن لحقل من النوع TEXT ان تضع احد خصائصه AUTO_INCREMENT

حسنا. ماهو عمله هذه الخاصية؟

اتتذكر الدرس الثانى عندما تحدثنا عن الـ Primary Key ؟
(ولاحظ Primary Key وليس Foreign Key )

احرص دائما عندما تجعل احد الحقول هو الـ Primary Key ان يكون له الخاصية AUTO_INCREMENT

وهى تعنى الزيادة التلقائية.

تخيل معى ان لديك الجدول التالى

- ID (هذا هو الحقل الـ Primary Key)
- username
- password
- email



عندما تقوم بإضافة تسجيل (للمرة الأولى) جديد وتدخل بهذا التسجيل البيانات التالية كامثال

- ID (نتركه فارغا ولا نكتب شئ)
- username = Ahmed (كامثال)
- password = secret
- email = [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



ما الذى سيحدث عندما نقوم بإدخال هذه البيانات؟ (بالطبع فى حالة ان الجدول له الخاصية AUTO_INCREMENT)

سيتم وضع الرقم 1 داخل الحقل ID
وعندما نقم بإضافة بيانات مستخدم اخر, بنفس الطريقة سيتم وضع الرقم 2 فى حقل الـ ID

نستخلص من هذا, ان الخاصية AUTO_INCREMENT
تقوم بإضافة اول اكبر رقم صحيح بعد اخر رقم ID موجود بالجدول.

بمعنى اننا اذا اضفنا (اتحدث عن مثال جدول "المستخدمين" الموجود بهذا الموضوع)
بيانات اربع مستخدمين, سيكون اول مستخدم له الهوية 1 (الهوية تعنى الـ id)
وثانى مستخدم تم اضافته له الهوية 2 والثالث له الهوية 3 والرابع له الهوية 4, وهكذا.

ماذا اذا قمنا بحذف ثانى مستخدم تم اضافته؟ والذى كانت هويته هى 2 ؟

لا يوجد اى مشكلة فى هذا سيصبح تسلسل ارقام الهوية بالشكل التالى
1 و 3 و 4

وعندما تقوم بإضافة مستخدم خامس سيكون له الهوية 5.

لكن سيكون هناك مشكلة اذا حاولت اصلاح الترتيب التسلسلى. (كما ذكرنا عن الـ Primary Key لا يجب ان نغيره بعد ان تم اضافته).

هناك ايضا الخواص التالية الإضافية للحقول وسنشرحهم جميعا فى هذا الدرس بإذن الله.

- UNSIGNED
- ZEROFILL
- DEFAULT
- NOT NULL



اول خاصيتين يتم يستخدموا ايضا مع الحقول الرقمية فقط.

الخاصية UNSIGNED تعنى ان الحقل لا يقبل القيم السالبة. يعنى لا يقبل ارقام مثل -5 مثلا
واذا حاولت ان تضف به قيمة سالبة سينتج عن هذا خطأ فى الإدخال.
وهذا الخاصية ايضا انصح بشدة ان تستخدمها ايضا لحقول الـ Primary Key
(ملحوظة سريعة, سوف ارمز للـ Primary key من الأن بالرمز PK اتمنى ان تتذكر هذه الملحوظة اثناء متابعتك للدورة)

الخاصية الثانية ZEROFILL
هذه الخاصية نادرا ماتستخدم لكنها ضرورية فى بعض الأحيان.
وهى ايضا للحقول الرقمية فقط
عندما تعطى لأحد الحقول الخاصية ZEROFILL
هذا يعنى ان هذا الحقل يمكنه الإحتفاظ بالأرقام التى تحتوى على صفر بالجهة اليسرى
لنفترض ان لدينا حقل يتم حفظ عناوين مكتب البريد به او مايعرف بالـ ZIP code
هناك بعض هذه الأكواد تبدأ بـ 0 وبما ان صفر على اليسار لا يعنى اى شئ بالنسبة للأرقام فإنه يتم حذف تلقائيا. لكن اذا اضفنا خاصية الـ ZEROFILL
لهذا الحقل. سوف يتم حفظ هذا الصفر بدون مشاكل.

يعنى ببساطة هذا الرقم 01211 اذا ادخلته بحقل ليس له الخاصية ZEROFILL
سوف يحفظ هكذا 1211 لكن اذا كان الحقل له الخاصية ZEROFILL سوف يتم حفظ الرقم كما تم ادخاله 01211

الخاصية DEFAULT
وهى تعنى الإفتراضى.
لشرح هذا المعنى, اتتذكر نوع الحقل ENUM الذى شرحناه بالدرس السابق؟
والذى يوضع به عدة اختيارات وعند ادخال اى سجل جديد له نحدد واحد فقط من هذه الإختيارات؟
لنفرض ان لدينا الحقل Gender والذى يعنى النوع ذكر او انثى او Male, female

هنا نستخدم الخاصية DEFAULT
مع الحقل ENUM
ليكون بالشكل التالى

كود :

ENUM('male', 'female') DEFAULT 'male'



(الرجال اولا [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة] )

هذا يعنى ان هذا الحقل يتم وضع احد القيمتين له male او female
واذا لم يتم تحديد القيمة سوف يتم تلقائيا وضع القيمة male

بالنسبة لأخر خاصية, خاصية NOT NULL

اولا معنى كلمة NULL يعنى قيمة مجهولة, ليست رقم وليست 0 وليست نص فارغ تماما
وليس حتى مسافة فارغة. هذا افضل تعريف يمكن ان نعرف به معنى كلمة NULL

لذلك اذا اردنا احد الخقول (وهذا يكون مع اغلب الحقول) ان لا يتم اضافة سجل جديد دون ان يتم تعيين قيمة له, يجب ان نجعله NOT NULL

كاحقل اسم المستخدم مثلا, هل يمكن ان تضيف مستخدم جديد بقاعدة البيانات دون ان يكون له اسم مستخدم؟ بالطبع لا. وعليه حقل اسم المستخدم يجب ان يكون NUT NULL

لكن هناك حقول اخرى يمكن ان لا نضع لها هذه الخاصية وهذا يعنى انه يمكن ان تكون NULL

مثل حقل موقع العضو مثلا, ليس كل الأعضاء الذين يقوموا بالتسجيل يمتلكوا مواقع. بالتالى لا نضيف لهذا الحقل الخاصية NOT NULL بالتالى يمكن تركه فارغا بدون مشاكل.


وكاملحوظة اضافية بالنسبة لحقول الـ PK يجب ان يكون له كل من الخواص التالية

- NOT NULL
- UNSIGNED
- AUTO_INCREMENT



اتمنى يكون الدرس بسيط وواضح وزود رصيد معلوماتك حول MySql

واراكم بالدرس القادم بإذن الله.
المصدر: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://egypt1.forumegypt.net
 
خصائص اضافية لأنواع الحقول Databases Column Characteristics
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» {دروس اضافية} (1) [ شرح تغيير اسم الكونفيك ولوحة التحكم ]
» انواع الحقول فى قواعد البيانات Database data types
» تعديل خصائص الشاشة

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى العرب التعليمى :: منتدى البرمجة والتصميم والتطوير :: قسم قواعد البيانات :: قسم دورة Microsoft my SQL-
انتقل الى: