المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : 5-خصائص اضافية لأنواع الحقول Databases Column Characteristics (دورة MySql )


رائد ابو فيصل
20-03-2010, 04:23 PM
السلام عليكم ورحمة الله وبركاته

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


عندما تختار نوع الحقل الذى ستستخدمه

]فى قاعدة البيانات (كما شرحنا بالدرس السابق

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

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

اول هذه الخصائص هى الخاصية 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 = email@example.com

ما الذى سيحدث عندما نقوم بإدخال هذه البيانات؟ (بالطبع فى حالة ان الجدول له الخاصية 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'

(الرجال اولا :P )

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

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

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

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

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

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

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

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


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

•NOT NULL

•UNSIGNED

•AUTO_INCREMENT

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

واراكم بالدرس القادم بإذن الله.




اقرأ ايضا..

•الدرس السابق انواع الحقول فى قواعد البيانات Database data types (http://www.abc4web.net/vb/showthread.php?t=7596)

•الدرس التالى قيود اسماء الجداول والحقول. وانواع محركات الحفظ Storage Engine (http://www.abc4web.net/vb/showthread.php?p=58905#post58905)


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

أبو يوسف
20-03-2010, 09:28 PM
جزاك الله خيرا أخي ابو فيصل

عساك على القوة دائما


تحياتي لك

.

محمود عفيفى
21-03-2010, 04:24 PM
جزاك الله خيراً أخى رائد :abc_152:

abohmam
25-03-2010, 01:44 AM
بارك الله فيك أخى ابا فيصل

درس رائع وهام

لك أجمل تحية على هذا الجهد والعطاء

كينج نت
25-03-2010, 07:13 PM
السلام عليكم ورحمة الله وبركاته

حياك الله اخي العزيز ابوفيصل

ماشاء الله دورات متتاليه ومستمره بكل جداره

مأكد نتواصل وإياك وباقي الأخوه بالمتابعه والاستفاده

جزاك الله عنا كل خير

:abc_102:

.