أسامة موسى بتاريخ: 15 أبريل 2006 تقديم بلاغ مشاركة بتاريخ: 15 أبريل 2006 بسم الله الرحمن الرحيمالدرس الثانيفي هذا الدرس سنتناول ان شاء الله طرق انشاء الجداول وطرق الربط بين هذه الجداول وتعرف المحدداتفعند القيام بعمل انشاء للجدول نستخدم الامرCREATE TABLE ويعني انشأ الجدول وبهذا نهئ قاعدة البيانات الى انشاء الجدول وبعد ذلك يجب وضع اسم الجدول فنقول CREATE TABLE STUDENTS مثلا ونضع بعدها قوس ليشمل عدد الحقول الى هذا الجدول وينصح دائما بعمل باتخاذ اول ثلاثة حروف من اسم الجدول عند تسمية اي حقل تابع لهذا الجدول والهدف هو معرفة ان هذا الحقل تابع للجدول الفلاني ويبقى ان نحدد نوع الحقل او مايسمى ب DATATYPE وسوف نتناول ثلاثة انواع هي1-VARCHAR2 وهي تأخذ ارقام وحروف في الحقل ويجب تحديد طول الحقل ونقصد بطول الحقل هو عدد الاحرف في هذا الحقل فنقولVARCHAR2(20) من هذا التعريف نرى ان طول الحقل 20 حرف2- NUMBER وهي تأخذ ارقام سواء كانت ارقام عادية او ارقام عشرية ويجب ايضا تحديد طول الحقل فيه وهي عدد الخانات فنقول NUMBER(4) ويعني رقم مكون من اربع خانات كالتالي 12343- DATE وهو التاريخ كما هو معروفاذا القاعدة لانشاء الجدول هي CREATE TABLE table_name (column1 datatype , column2 datatype , .. ) ناخذ الآن نبذه عن طريقة ربط الجداول بعد ان تعرفنا على طريقة انشاءها وانا اتطرق الى رؤوس اقلام وليس بشكل تفصيلي والهدف هو فهم ما يجري قبل الخوض في ادق التفاصيل ولربط الجداول نستخدم المحددات او ما يسمى ب CONSTRAINTS طبعا المحددات انواع واشكال سوف نطرق الى ما يلزمنا وهو ال PRIMARY KEY وهو المفتاح الاساسي وهو عبارة عن حقل وحيد يتم تحديده بالجدول وهذا الحقل نقوم بتعيينه بهدف عدم تكرار البيانات وهو لا يأخذ قيمة فارغة وانما يأخذ مجموعة وكذلك يمكن تحديد اكثر من حقل في الجدول لتعينهم على انهم لا يتكررون ولكن كوحدة واحدة وعموما الجدول دائما يحتوي على PRIMARY KEY واحدوطريقة انشاءه تتم بالشكل التاليCONSTRAINT وتعني محدد وهنا نهئ الجدول الي وجود محدد ونذكر اسمه ثم نذكر نوعه وماهي الحقول التي تريد تحديدها مع الاخذ بعين الاعتبار ان هذه الحقول لايمكن ان تتكرر ولنوضح شيئا مهما اننا لو حددنا مثلا رقم الموظف وتاريخ ميلاده مثلا على انها مفتاح اساسي فهنا نلاحظ شيئا لو ادخلنا رقم الموظف مثلا E00001 وتاريخ الميلاد 01-01-1970 وادخلنا رقم الموظف مثلا E00001 وتاريخ الميلاد 01-01-1971 هل يا ترى سوف تقبل قاعدة البيانات هذه العملية الجواب نعم والسبب انك حددت في المفتاح الاساسي ان رقم الموظف وتاريخ ميلاده هما وحده واحد ويمنع التكرار في حالة تشابهما لذلك يجب ان نكون حذرين في حالة تحديد المفتاح الاساسي CONSTRAINT constraint_name PRIMARY KEY (column1, column2, . column_n) اما النوع الثاني فهو FOREIGN KEY وهو مفتاح المرجع وهذا النوع فقط تحدد ان الحقل الذي بجدول الاول تابع للحقل الاساسي في الجدول الثانيولتوضيح اكثر مثلا رقم الجنسية في جدول الموظفين تابع رقم الجنسية في جدول الجنسيات لذلك والفروض ان يكون اساسي والهدف من هذا كله هو الزام المستخدم بادخال ارقام او بيانات محدده وتفادي ادخال بيانات غير موجود وتصبح بياناتك اقوى وبرنامجك اقوىمع ملاحظة انه عند انشاء هذا النوع من المحددات يجب ان يكون الجدول المنشأ موجود على قاعدة البيانات مثلا عند نريد ربط رقم الجنسية بجدول الموظفين برقم الجنسية بجدول الجنسيات يجب ان يكون جدول الجنسيات منشأ قبل جدول الموظفين وهكذا ويمكن الرجوع الى اكثر من حقل في كلا الجدولين وكذلك يجب ان يكون من نفس النوعوسوف نوضح طريقة افضل لتفادي هذه الاشياء ان شاء اللهوطريقة انشاءه تتم بوضع CONSTRAINT CONSTRAINT_NAME FOREIGN KEY (column1, column2, ... column_n)هنا نحدد اسماء الحقول في الجدول الحالي REFERENCES parent_table (column1, column2, ... column_n)وهنا نحدد اسماء الحقول مع ذكر اسم الجدول المراد الرجوع اليهوتكون القاعدة بالشكل التالي CONSTRAINT fk_column FOREIGN KEY (column1, column2, ... column_n) REFERENCES parent_table (column1, column2, ... column_n) ); نأتي الى انشاء الجداول جدول الجنسيات وهو يتكون من 1- رقم الجنسية 2- وصف الجنسية 3-تاريخ الانشاء 4- اسم المستخدمجدول الادارات وهو يتكون من1- رقم لاادارة 2- اسم الادارة 3-تاريخ الانشاء 4- اسم المستخدمجدول الموظفين وهو يتكون من 1- رقم الموظف 2- اسم الموظف 3- تاريخ الميلاد 4- الجنس 5- الجنسية 6- تاريخ التعيين 6-الراتب الاساسي 7-بدلات الاخرى 8-1لادارة التابع لها 9-تاريخ الانشاء 10-اسم المستخدمجدول الجنسيات CREATE TABLE NATIONALITY( NAT_NO VARCHAR2(5), NAT_NAME VARCHAR2(20), NAT_CRE_DATE DATE, NAT_CRE_NAME VARCHAR2(50), CONSTRAINT NAT_PK PRIMARY KEY(NAT_NO) ) / اما بالنسبة الى NAT_CRE_DATE , فهي تفيد في حالة تاريخ انشاء الحقلاما NAT_CRE_NAME فتفيد باضافة اسم المستخدم الذي قام بانشاء هذا الحقلجدول الادارات CREATE TABLE DEPARTMENTS( DPT_NO VARCHAR2(5), DPT_NAME VARCHAR2(20), DPT_CRE_DATE DATE, DPT_CRE_NAME VARCHAR2(50), CONSTRAINT DPT_NO_PK PRIMARY KEY(DPT_NO) ) / جدول الموظفين CREATE TABLE EMPLOYEES( EMP_ID VARCHAR2(10), EMP_NAME VARCHAR2(50), EMP_BIRTH_DATE DATE, EMP_SEX VARCHAR2(1), NAT_NO VARCHAR2(5), EMP_HIRE_DATE DATE, EMP_BASIC_SALARY NUMBER(4), EMP_ADD_EXCHANGE NUMBER(4), DPT_NO VARCHAR2(5), EMP_CRE_DATE DATE, EMP_CRE_NAME VARCHAR2(20), CONSTRAINT EMP_ID_PK PRIMARY KEY(EMP_ID), CONSTRAINT NAT_NO_FK FOREIGN KEY (NAT_NO) REFERENCES NATIONALITY (NAT_NO), CONSTRAINT DPT_NO_FK FOREIGN KEY (DPT_NO) REFERENCES DEPARTMENTS (DPT_NO) ) / لا حظوا معي NAT_NO وهو رقم الجنسية وضعته باسم مختلف لأنه تابع لجدول اساسيوهو جدول الجنسيات وكذلك الحا بالنسبة ل DPT_NO وهو يرمز الى رقم الادارة اما بالنسبة الى EMP_CRE_DATE , فهي تفيد في حالة تاريخ انشاء الحقلاما EMP_CRE_NAME فتفيد باضافة اسم المستخدم الذي قام بانشاء هذا الحقلطبعا يجب الاخذ بعين الاعتبار اننا عندما نريد ان ان نربط حقل في جدول معين بحقل اخر فيجب ان يكون من نفس النوعلعرض محتويات الجدول الذي قمت بانشائه استخدم الامر DESCRIBE YOUR_TABLENAME وهو امر يقوم بعرض الحقول التي بالجدول ونوع كل حقل وسوف تلاحظ هذه القيمة NOT NULL اي انه لايقبل قيمة فارغة وهو المفتاح الاساسي الذي قمنا بتحديده سابقا ويمكن كتابته بالاختصار DESC EMPLOYEES وسوف يعرض يالشكل التاليSQL> DESCRIBE EMPLOYEES NAME NULL? TYPE ------------------------------- -------- ---- EMP_ID NOT NULL VARCHAR2(10) EMP_NAME VARCHAR2(50) EMP_BIRTH_DATE DATE EMP_SEX VARCHAR2(1) NAT_NO VARCHAR2(5) EMP_HIRE_DATE DATE EMP_BASIC_SALARY NUMBER(4) EMP_ADD_EXCHANGE NUMBER(4) DPT_NO VARCHAR2(5) EMP_CRE_DATE DATE EMP_CRE_NAME VARCHAR2(20) وهنا تم انشاء وربط الجداول مع بعضهاالاسئلة1-بين كيف يتم انشاء جدول للطلاب مكون من ثلاثة حقول حيث يقبل رقم الطالب احرف وارقام وطوله 5 واسم الطالب يقبل احرف وارقام ومكون من 20 حرف وتاريخ ميلاد الطالب 2- ما المقصود بالمحددات التالية أ- المفتاح الاساسي PRIMARY KEY ب-المفتاح المرجعي FOREIGN KEY 3- بيّن بمثال كيف يتم ربط جدولين ببعضهما باستخدام ال FOREIGN KEY 4-اجب بنعم او لا مع ذكر السبب ،يوجد لدينا جدول مكون من حقلين اساسيين PRIMARY KEY ولنفرض انهما رقم الموظف ورقم ادارته فهل تقبل قاعدة البيانات الاضافة لو قمنا باضاف البيان رقم الموظف = e0001 و رقم الادارة = 10 واضافة رقم الموظف= e0002 ورقم الادارة= 10 انتهى الدرس الثاني---------------------------------------------------------------------------------------------------------------------------------------------------------------------------الدرس الأول ..... القائمة الرئيسية .... الدرس الثالث اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mdsalah بتاريخ: 2 يونيو 2006 تقديم بلاغ مشاركة بتاريخ: 2 يونيو 2006 مشكور اخى الفاضل واتمنى منك مزيد العطاء وجازاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mdaradkah بتاريخ: 15 يونيو 2006 تقديم بلاغ مشاركة بتاريخ: 15 يونيو 2006 الشكراً الجزيل أخي الكريم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mdaradkah بتاريخ: 15 يونيو 2006 تقديم بلاغ مشاركة بتاريخ: 15 يونيو 2006 يعطيك ألف عافيه أخي الكريم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
eshak بتاريخ: 17 يونيو 2006 تقديم بلاغ مشاركة بتاريخ: 17 يونيو 2006 رائع اتمنى ان تكتب كتاب كامل للمبتدئين واتمنى لك التوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nasrgroup بتاريخ: 2 يوليو 2006 تقديم بلاغ مشاركة بتاريخ: 2 يوليو 2006 الف الف الف الف الف الف الف الف شكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Matador2006 بتاريخ: 12 سبتمبر 2006 تقديم بلاغ مشاركة بتاريخ: 12 سبتمبر 2006 10000000000 شكروجازاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
بنت الجبل بتاريخ: 2 أكتوبر 2006 تقديم بلاغ مشاركة بتاريخ: 2 أكتوبر 2006 السلام عليكم ورحمة الله وبركاتهمشكورين على الدروس ،،،، وان شاء الله ،، الله يعوضك خير على مجهودك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
turki- بتاريخ: 6 نوفمبر 2006 تقديم بلاغ مشاركة بتاريخ: 6 نوفمبر 2006 صراحه انا مبتديء بالاوراكل ولكني وجدت هذا الدرس ممتع وطريقه رائعه للشرح صراحة وبذمه شرحت افضل من بعض اعضاء هيئه التدريس للجامعة المنتسب لهاولك تحيـــــــــــاتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
سعيد ارزيقات بتاريخ: 29 نوفمبر 2006 تقديم بلاغ مشاركة بتاريخ: 29 نوفمبر 2006 بصراحة انك ممتاز في الشرح انا نعاك لحظة بلحظة thank you اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
osama80 بتاريخ: 29 نوفمبر 2006 تقديم بلاغ مشاركة بتاريخ: 29 نوفمبر 2006 (معدل) اخي اسامة بالحقيقة يعجز اللسان عن وصف ما تقدمه من شروح و ايضاحات و أسأل الله أن ينفعك بهذا العمل و يجزيك عنه و عنا خير الجزاء. تم تعديل 29 نوفمبر 2006 بواسطة osama80 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
wlahmad بتاريخ: 3 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 3 ديسمبر 2006 فتح الله عليك ونفع بكوزادك إيمانا وعلما وحرصااللهم آميــــــــــــــــــــن اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
egypt12055 بتاريخ: 5 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 5 فبراير 2007 شكرا علي هذا المجهود الرائع ونرجو من الله ثم منك تامزيد دائما الي الامام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
kopry بتاريخ: 23 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 23 مارس 2007 ألف شكر على المجهود الرائع وجزاك الله عنا خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
جلال شواقفه بتاريخ: 31 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 31 أكتوبر 2007 شكرا للاخوه الذين قاموا بترتيب المنتدى بالطريقه التاليهمما ادى الى ظهور دروس رائعه جدا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
سيف الاسلام بتاريخ: 26 نوفمبر 2007 تقديم بلاغ مشاركة بتاريخ: 26 نوفمبر 2007 thanks اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
سيف الاسلام بتاريخ: 26 نوفمبر 2007 تقديم بلاغ مشاركة بتاريخ: 26 نوفمبر 2007 جزاك الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ابي اتعلم بتاريخ: 12 ديسمبر 2007 تقديم بلاغ مشاركة بتاريخ: 12 ديسمبر 2007 جميـــــــــــل جدآ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
gendia_9i بتاريخ: 30 نوفمبر 2008 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2008 very very very good اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
aminfarouk بتاريخ: 12 مايو 2009 تقديم بلاغ مشاركة بتاريخ: 12 مايو 2009 جزاك الله الف خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed_Silenace بتاريخ: 31 مايو 2009 تقديم بلاغ مشاركة بتاريخ: 31 مايو 2009 اخ اسامة موسي، هذه الطريقة مبسطة وسلسة للغاية وافادتني كثيرا، لك الامتنان. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
bsoo0oom بتاريخ: 30 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 30 أغسطس 2009 مشكور شرح رائع واكثر من رائع انا سوف اجيب عن الأسئلة التي طرحتها في الموضوعلكن انا في المقهى الحين وسوف ارد عن قريب بإذن الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
.Sara. بتاريخ: 18 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 18 أكتوبر 2009 جزاك الله خير بس ودي تشرح حجز الخانات اكثر ......يعني مثلا وش الفرق بين number(10) و number(20)اتمنى تشرحلي وبالتفصيل عن هذا الموضوعشكرا............ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
AhmedMouradZarzora بتاريخ: 27 أكتوبر 2010 تقديم بلاغ مشاركة بتاريخ: 27 أكتوبر 2010 ممتاز الف شكر يا هندزه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
shukur بتاريخ: 3 فبراير 2011 تقديم بلاغ مشاركة بتاريخ: 3 فبراير 2011 رائع وشكرا على هذا الشرح الممتاز اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.