بتاريخ: 23 أكتوبر 200718 سنة comment_113861 بسم الله الرحمن الرحيم أخوانى فى الله .... و الله أنى أحبكم فى الله .... أولا أود أن أعتذر عن التأخير فى تقديم هذا الدرس و لكن يعلم الله ظروف عملى فهى شاقه لحد ما ... المهم هل قمتم بمذاكرة الدرس السابق؟؟ أتمنى ذلك ... اليوم سوف أقوم بشرح الفصل الأول فى كتاب أوراكل حتى نتعلم كيفيه بناء جملة الSQL ان شاء الله .. رجاء منكم ان تقوموا بكتابة كافى الأكواد الموجوده بالدرس و كذلك الأمثله المرفقه بشكل عملى حتى تتعود يدك على كتابة الكود ، ايضا لابد من حل التطبيقات من كتاب اوراكل و التى سوف اذكر ارقامها فى نهاية الدرس ..هذا إن اردت ان تتعلم و تصبح محترفا حقا ....أود أن أبدأ بما انتهيت به فى الدرس السابق ألا وهو أنواع جمل الـ SQL Select – DML- DDL- BCL- T.Cأن شاء الله أول 7 فصول عن الـ Select فقط. و الفصل الثامن سوف يكون DML أما التاسع DDL وهكذا حتى نصل أن شاء الله إلى الـT.C. و الأن هيا بنا الى الدرس .. Retrieving Data Using the SQL SELECT Statement أولاً ما معنى كلمة Select؟ معناها اختيار.. أى أنه بكتابة كود يبدأ بكلمة Select هذا يعنى اننى اريد استرجاع بيانات من جدول داخل قاعدة البيانات التى تعمل عليها .. أى استعلام و هناك بعض الصيغ لجملة الـSelect أو بمعنى اخر طرق فى استخدام الجملة .. وهذه الطرق 3 وهى كما يلى:-1- Projection:-وهى عبارة عن جملة Select بدون أى شرط مثل أن أقول أريد استرجاع اسم الموظف وراتبه. اذا النتيجة سوف تكون كل الجدول لانى لم أحدد شخص معين( لم أضع شرط ). ولذلك يتم استرجاع عمود الاسم كامل وعمود الراتب كامل وليس صفوف محدده .2- Selection:-وهنا يتم كتابة جملة الـ SQL وبها شرط مثل أن اقول أريد اسم الموظف والمرتب بشرط أن يكون اسم الموظف سامح بكار. هنا يتم استرجاع صفوف معينه وليس العمود بالكامل.3- Joinوهنا فى جملة الـ Select يتم استرجاع البيانات من جدولين او أكثر بينهما علاقه مثل ان اقول أريد استرجاع اسم الموظف من جدول الموظفين واسم القسم الخاص به ولكن من جدول الأقسام.وسوف يتم مناقشة النوع الأول بالفصل الأول أما النوع الثانى وهو الـSelection سوف يتم مناقشته فى الفصول 2-3-4 أما الـJoin فى الفصل الخامس.Projctionوالآن دعنا نبدأ مع النوع الأول لنتعرف على كيفية كتابة كود الـSQL **** قبل البدء هناك سؤال على الجزء السابق من أخر نسخه لأمتحان ( 007.) Evaluate this SQL statement. SELECT e.EMPLOYEE_ID,e.LAST_NAME,e.DEPARTMENT_ID, d.DEPARTMENT_NAME FROM EMP e, DEPARTMENT d WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID; In the statement, which capabilities of a SELECT statement are performed? A. Selection, projection, join B. Difference, projection, join C. Selection, intersection, join D. Intersection, projection, join E. Difference, projection, product طبعا الأجابه واضحه جدا ( A ) ...... هذا لتتأكد أن الأمتحان أسهل ما يكون طالما انك مذاكر كويس .** طبعا مهم جدا ان تتعرف على قاعدة البيانات التى أمامك حتى تتمكن من عمل جمل الSelect عليها لذلك فأبدأ اولا بهذا الأمر و الذى سوف يظهر لك الجدوال الموجوده بقاعده البيانات حتى نستطيع جلب البيانات منها: Select * From Tab; الكود الثانى يجب ان يكون وصف هيكل كل جدول من الجداول التى امامك كما يلى:Desc Table Nameبعد ذلك نتجه الى كيفيه كتابة جمله ال Select >>> SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; SELECT identifies the columns to be displayed**FROM identifies the table containing those columns**مثال : اريد جلب كافة البيانات الموجوده بجدول الأقسام .. اذا تكون جملة الSelect كما يلى : SELECT * FROM departments; أما اذا اردت جلب أعمده معينه فعليك بتحديد اسماء هذه الأعمده بعد كلمة Select كما يلى: SELECT department_id, location_id FROM departments; تعريفات هامة :------------------ Statement وهى عباره عن الجمله كامله ابتداءأ من أول كلمه بها الى نهايتها.- Keyword عباره عن كلمه محجوزه لأوراكل فقط مثل كلمة Select و كلمه Form .- Clause عباره عن السطر كامل بعد ال Keyword . ** >>> ملاحظات هامة جداً عند كتابة جملة SQL 1)لافرق إذا كتبت جملة الـSQL حروف كبيرة أو صغيرة أى أن الجمله (not case sensitive) ولكن يفضل كتابة الـKey.Word بحروف كبيرة.2)يمكن كتابة الجملة على سطر واحد أو اكثر ولكن بفضل كتابة الجملة على اكثر من سطر حتى يسهل لك اكتشاف الأخطاء.3)يفضل فى كتابة الجملة عمل مسافات متباعدة بين الـKey Word والجملة نفسها كما يلى: Select last_name , Salary From Employees; هذا يسهل قراءة الكود >4)لابد من كتابة Semicolon فى نهاية الجملة. هذا واجب اذا كنت تعمل على بيئة الـ SQL Plus. أما فى الـISQL فليس شرط ولكنه يفضل حتى تتعود.** استخدام العمليات الحسابية فى جملة الـSelect ------------------------------------------------------ SELECT last_name, salary, salary + 300 FROM employees; فى المثال السابق تم ظهور عمود جديد ولكنه ليس له وجود فى الجدول بقاعدة البيانات. فقط هو للعرض لا أكثر لذلك يسمى Expression ويجب علينا هنا معرفة أولويات العمليات الحسابية 1) الآسس 2) الأقواس 3) الضرب أو القسمة 4) الجمع أو الطرحوهذا مثال لتوضيح أن كتابة الكود واحد ولكن اختلفت النتيجة لوجود الأقواس التى لها الأولويه SELECT last_name, salary, 12*salary+100 FROM employees; SELECT last_name, salary, 12*(salary+100) FROM employees; [code] ** ما معنى null Value -------------------------- - عباره عن قيمة غير معروفة لاهى صفر ولا هى مسافة واذا أشتركت فى اى عملية حسابية كانت النتيجة null . عمود العموله فى جدول الموظفين فهو يقبل قيم فارغه .. كما فى المثال التالى: SELECT last_name, job_id, salary, commission_pctFROM employees; انظر الى نتيجه المثال التالى على جهازك فسوف تجد مثلا ان الموظف King ليس له عموله( null) وعندما تم ضرب المرتب X العمولة كانت النتيجة null وهذا خطأ. لذلك يجب تحويل الـnull الى قيمة حقيقية اى الى صفر وهذا فى الدرس الثالث ان شاء الله. SELECT last_name, 12*salary*commission_pctFROM employees; Alias الأسماء المستعارة ---------------------------- هو تسمية لرؤوس الأعمدة ولكن للعرض فقط وليس على الجداول الفعلية أما اذا اردت أن اقوم بعمل اعادة تسمية لعمود بالجدول فهذا من اوامر الـDDL وهو Rena me ولكنا الآن بصدد تغير اسم العمود أثناء العرض فقط هذا يسمى Alias. -الاسم المستعار مفيد جداً فى العمليات الحسابية اقصد عندما استخرج عمود Experessn - -الاسم المستعار يتبع اسم العمود مباشرة فى جملة الـSelect دون أى فواصل ويمكن الفصل بكلمة AS ولكنها اختيارى. -لايجوز كتابة اسم مستعار به مسافات أو حروف خاصة مثل # أو * أو $ ولكن اذا اردت ضع الاسم المستعار بين double quotation ليظهر الاسم المستعار كما كتبيته حتى لو كانت الحروف Capital أمثلة:- (رجاء كتابة كل الأمثله بيدك) SELECT last_name "Name" , salary*12 "Annual Salary"FROM employees;SELECT last_name AS name, commission_pct commFROM employees; ** الدمج ما بين عمودين ( || ) ---------------------------------- مثل أريد أن أظهر اسم الموظف بجانب راتبه هنا لابد أن اربط الاسم بالراتب عن طريق الـ Vertical Bar وهى موجوده على لوحة المفتايح عندى على الزر( / ) جنب Backspace ربما عندك على زر آخر مثال : SELECT last_name||job_id AS "Employees"FROM employees; ** الـ Literal -------------------------- أى حرف أو رقم أو تاريخ موجود بجملة Select وليس عمود أو K.W نسميه Literal أو لابد من وضعه بين ' ' Single quotation مثـــأل SELECT last_name ||' is a '||job_id AS "Employee Details"FROM employees; جزء نظرى.أخر جزء فى هذا الدرس نظرى و يمكنك مذاكرته وحدك من الصفحه و هذا الجزء النظرى يتكلم عن الفرق بين ال SQL و ISQL و كيفية استخدام ال ISQL .أخوانى الأعزاء رجاء كتابه اى سؤال بخصوص الدرس الأول على هذا الرابط . هذا الرابط متاح فقط للأسئله و ليس للتعليقات و سوف يكون لكل درس رابط خاص بالأسئله المرتبطه به حتى نشعر بروح الجماعه فى الكورس ....أسئلة و أستفسارات الدرس الثانى ... للأسئله فقط** المرفقات : الدرس الأول - مجموعه أمثله بسيطه على الدرس** الواجب : حل التطبيقات الموجوده على الدرس الأول رقم ( من 6 الى 12 )لا تنسى للمذاكره من الملف المرفق ان تفتع المف فى برنامج الـPowerpoint ثم قائمة View ثم أختار Note page و ذلك حتى تتمكن من رؤية الشرح للجزء النظرى و كذلك حل التطبيقات ...الى اللقاء فى الدرس الثالث و هو :Restricting and Sorting Dataلا تنسونى بدعوه خالصه من القلب ... اللهم أعصمنى من الفتن ما ظهر منها و ما بطن .آمين ......عفوا أخوانى لظهور الشرح مكان الكود ... نأسف لهذا العطل الفنى و لكن لا تنسوا حل الواجب... فى انتظار اى سؤال او استفسار على رابط الأسئله...Bakkar.zip تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة comment_113884 السلام عليكم؟كنت منتظر الدرس بفارغ الصبر. الله يوفقك ويسهل أمرك .ةتسلم على هذه الدروس يا معلم تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة comment_113886 أستاذي الفاضل أحب أن أنبه إن الملف لا يعمل أرجوا ان تعيد تحمليه مرررة أخرررى ولك جزيل الشكر والعرفانمحبكم,, تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة comment_113890 شكرا لك اخي مره اخرى وجزاك الله خير لما تفعلوفقك الله لما فيه الخير دائما تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة كاتب الموضوع comment_113904 المبرمج الصاعد المف يعمل جيدا ........ تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة comment_113909 الســـــــــلام عليكم بارك الله فيك أخي سامح, شرح ولا أروع, أتمنى لك مزيداً من التقدم والازدهار ... تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة comment_113922 السلام عليكماذا اردت تطبيق هذه الاوامر بشكل عملي فكيف السبيل الى ذلك الا نحتاج الى قاعدة بيانات لاظهار النتائج و شكرا تقديم بلاغ
بتاريخ: 23 أكتوبر 200718 سنة comment_113924 جزاك الله خيرا يا اخى وزادك من علموا يارب العالمين تقديم بلاغ
بتاريخ: 24 أكتوبر 200718 سنة comment_114055 thanks mr for ur effort sameh bakkarbut can i ask you to put for us an oracle book&material for that track i ask u before in another topic but i think u didn't notice it thanks تقديم بلاغ
بتاريخ: 28 أكتوبر 200718 سنة comment_114417 جزاك الله الجنة و والديك أخونا الكريم سامح ..حقيقة شرح وافي و رائع .. مجهود تشكر جدا عليه..جَعَلَ الله ما تكتب و تبذل من جهد و وقت و تفكير و تعب في ميزان حسناتك.."اللهم أعصمنى من الفتن ما ظهر منها و ما بطن .آمين ......"اللهم آمين ..و أسأل الله أن يصلح لك دينك الذي هو عصمة أمرك..و أن يصلح لك دنياك التي فيها معاشك..و أن يصلح لك آخرتك التي إليها معادك..و أن يجعل الحياة زيادة لك في كل خير..و الموت راحة لك من كل شر..و أن يتوفاك و هو راض عنك.. تقديم بلاغ
بتاريخ: 31 يناير 200818 سنة comment_121689 السلام عليكم ورحمه الله و بركاتة انا بجد فخور بهذا العمل الجيد و ان شاء الله فى تقدم يا بشمهندس سامحولاكن لى رجاء انا مش عارف انزل المرفقات من المنتدى فا ارجوا ان تقوم برفع جميع الدروس فى رابط واحد على اى موقع من مواقع الاستضافة و اكون شاكر ليك جدا او اذا لم تكون عندك وقت ارجوا من اصدقائى فى المنتدى ان يرفعهم احد لى لاننى كل ما احاول ان احمل اى من هذه الملفات لا يكمل التحميل وشكرا على كل من ساهم تقديم بلاغ
بتاريخ: 28 مارس 200817 سنة comment_125436 السلام عليكم... استاذ سامحلكن الملفات المرفقة لا تعمل.. اذا انزلتها فما المشكلة؟؟؟شاكرين جهودكم تقديم بلاغ
بتاريخ: 1 أبريل 200817 سنة comment_125739 سلام عليكم ورحمة الله وبركاته يا شباب احب اعرف جزئية مش واضحة في الشرح وهية الجزئية الخاصة SEMICOLON في ISQL& SQL PLUS هل هي ضروريية في ISQL ارجو التوضيحيا شباب تقديم بلاغ
بتاريخ: 28 مايو 200817 سنة comment_129891 جزاك الله خير الجزاء وزادك علما وجعلة في ميزان حسناتك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.