المشاركات : 13
المواضيع 2
الإنتساب : Sep 2012
السمعة :
0
الشكر: 0
تم شكره 3 مرات في 2 مشاركات
اسف يا جماعة على تقصيرى فى وضع هذا المثال على استعجال دون شرح ولكن انا هكمل شرح لبعض النقاط المهمه هنا مع العلم ان المثال فى الاعلى تمام ...
معظم الناس بتحب تستخدم constraint
ودى معناها القيود على القحول
انواع القيود مش هتكلم فيها كتير
1/ primary key
2/ Unique
3/ not null
4/ Foreign key
5/ Check
============================
القيد رقم 1 (primary key) وده معناه مفتاح اساسى على الجدول يعنى مينفعش يتقرر وقيمة ثابته وبيتم عن طريقه الربط بجداول اخرى
كيفية انشاؤه بالكود ؟
constraint tab_id_pk primary key
ايه الكلام اللى انا كاتبه ده ؟
Constraint عرفنا ان معناها قيد
tab_id_pk ده اسم القيد اللى انا هنشأه وهنا انا سميته
باسم الجدول واسم الحقل و الـ pk ترمز انه primary key اى انه مفتاح اساسى
2/ القيد رقم 2 (Unique) تعريف تلك الكلمة فريد
بمعنى ان الحقل ده مينفعش يتكرر فيه نفس القيم كل row فى هذا الحقل قيمته مختلفة عن الاخرى
شبيه للقيد رقم 1 بس كل منهم ليه استخدام معين
كيفية انشاؤه بالكود ؟
constraint tab_name_ uq Unique
طبعا احنا شرحنا معنا الكلام ده فى القيد رقم 1
القيد رقم 3 (not null) وده معناه ان الحقل اللى عليه هذا القيد مينفعش نضع فيه قيمة فاضية او null لازم يكون هذا الحقل بيه قيمة
كيفية انشاؤه بالكود ؟
constraint tab_date_ nn not null
القيد رقم 4/ (Check) وده معناه التحقق من القيمة المدخله
ويستحسن استخدامه على الحقول الرقيمة وليست النصية
كيفية انشاؤه بالكود ؟
constraint tab_salary_ck check(salary between 1000 and 2000 )
الشرح انا بقوله هنا تحقق من قيمة المرتب المدخله فى هذا الحقل يجب ان تكون موجوده ما بين 1000 و 2000
مينفعش تكون اصغر من 1000 او اكبر من 2000
القيد رقم 5 / (Foreign key) وده معناه مفتاح اجنبى
بمعنى انه مربوط بمفتاح اساسى primary key
بجدول اخر
وهذا يدل على ان قيمة الحقل اللى عليه هذا القيد يجب ان تكون متاشبه فى نفس القيم الحقل اللى فى الجدول الاخر اللى عليه قيد primery key
يعنى مينفعش يكون الحقل اللى فى الجدول اللى عليه قيد primary key القيم اللى فيه من 1 لحد 10 مثلا
واجى انا اضيف فى الجدول الثانى فى الحقل اللى عليه قيد Foreign key وااقوله ضيف رقم 11 هنا القيد بيشتغل بقى بيتحقق اذا كان رقم 11 ده متسجل فى الجدول اللى مربوط بيه ولا لا
كيفيه انشاؤه بالكود ؟
لنفترض مثلا اننا عندنا جدولين جدول a وجدول b
جدول a يوجد به حقل id وهوا مفتاح اساسى primary key والجدول b يوجد به حقل id وهوا مفتاح اجنبى Foreign key
من شروط الانشأ يجب ان يكون الحقل id فى الجدول a
مفتاح اساسى primary key
الان نأتى لكيفية انشاؤه بعد ما وضحت شروط الانشأ
constraint b _ id _fk foreign key (id) references a (id)
مش محتاج شرح باستثناء كلمة references a (id)
ودى معناها ان القيد ده مربوط بالحقل id اللى فى الجدول a
احنا اتكلمنا عن كيفية انشاؤه بالكود لكن مش شوفنا كيفية موضعه عند الانشاء
هذا هوا الكود لانشاء الجدول قبل وضع القيود
cn.Execute "create table tab (id number,name text(50),dat date) ;"
نيجى نشوفه بعد وضع القيد هيكون ازاى
cn.Execute "create table tab (id number constraint tab_id_pk primary key,name text(50) tab_name_uq Unique,dat date constraint tab_dat_nn not null) ;"
القيد بيتم وضعه بعد تعريف اسم الحقل ونوعه اذا كان رقمى او نصى ...
وبكده اكون خلصت كيفيه انشاء داتا بيز وانشاء جداول
وكيفية وضع القيود على الحقول بالكود من داخل الفيجوال بيسك
المشاركات : 189
المواضيع 19
الإنتساب : Sep 2012
السمعة :
13
الشكر: 114
تم شكره 144 مرات في 81 مشاركات
شكرا اخى الكريم على المعلومات القيمة
جعله الله فى ميزان حسناتك
تقبل تحياتى
المشاركات : 2
المواضيع 0
الإنتساب : Apr 2017
السمعة :
0
الشكر: 1
تم شكره 2 مرات في 2 مشاركات
السلام عليكم
جزاك الله خيرا اخي العزيز على المعلومات القيمة
اخي العزيز ماذا لو اردت انشاء جدول في قاعدة الببيانات اذا لم يكن منشئ من قبل
اي اذا كانت قاعدة البيانات لا تحوي الجدول الذي انا اريد انشائة تقوم بانشائة واذا كانت تحوية لا تقوم القاعده بانشائة
ولك جزيل الشكر