بتاريخ: 28 أكتوبر 200718 سنة comment_114542 بسم الله الرحمن الرحيم أخوانى فى الله ........... و الله انى أحبكم فى الله ،، و اليوم سوف نتكلم عن الفصل الثانى فى كتاب اوراكل و هو: Restricting and Sorting Data وفى هذا الفصل سوف نتحدث عن كيفيه كتابه جملة الselect مع شرط ..... هيا بنا الى الدرس,,,,*** كتابة الشرط بالجمله ***-------------------------------لكتابه شرط بالجمله لابد من وجود كلمة where و تكون صيغة الجمله كما يلى: SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)]; كما نلاحظ أخوانى ان where تأتى بعد From مباشرة .... و الأن نحن فى حاجه الى أمثله لنفهم هذه الصيغه..-- أسماء الموظفين الموجودين فى القسم رقم 90 فقط : SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90; -*- ملاحظات هامه عند كتابة الشروط :1-فى حالة استخدام تاريخ أو نص يجب وضعه بين Single Quotation .2-إذا كانت النصوص مخزنه فى قاعدة البيانات بحروف كبيرة فيجب الاستعلام عنها بنفس الصيغة أى أنها Case Sensitive 3-فى حالة الاستعلام عن التاريخ يجب الاستعلام عنه بالصيغة الرئيسية وهى يوم- شهر- سنة (DD-MON-RR) .4-لاحظ أن أسماء الموظفين فى جدول الموظفين مخزنه بحروف Capital لأول حرف فقط فإذا اردنا الاستعلام عن اسم موظف فلابد ان نكتب اول حرف Capital كما تم تخزنه فى قاعدة البيانات. كما يلى: SELECT last_name, job_id, department_id FROM employees WHERE last_name = 'Whalen'; أما اذا كتبنا حرف الW بشكل Small فسوف تكون النتيجه No Row Selected ..-*- عوامل المقارنه Comparison Conditions = Equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to <> Not equal to BETWEEN...AND... Between two values (inclusive) IN(set) Match any of a list of values LIKE Match a character pattern IS NULL Is a null value نستخدم هذه العوامل مع جمله الselect حتى نتمكن من كتابة الشروط كما يلى مثلا: SELECT last_name, salary FROM employees WHERE salary <= 3000; SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500; SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201); وهكذا من الشروط و لكن ماذا اذا اردنا ان نستعلم عن الموظفين الذين يبدأ اسمهم بحرف S ? او الموظفين الذين ثانى حرف من اسمائهم N و هكذا ... من هنا واجب علينا أستخدام المعامل Like أى ما يشبه ذلك....*** المعامل Like يمكن من خلاله البحث عن كلمة كاملة أو جزء منها ونستخدم مع Like الآتى:1-( % ) وهى تعبر عن حرف أو أكثر مفقود.2-( _ ) تعبر عن حرف واحد مفقود.أمثله: SELECT first_name FROM employees WHERE first_name LIKE 'S%'; SELECT last_name FROM employees WHERE last_name LIKE '_o%'; فى المثال الول اريد اسماء الموظفين الذين تبدأ اسمائهم بحرف S اما المثال الثانى اريد اسماء الموظفين الذين ثانى حرف من اسمائهم O .*** كيفية البحث عن القيم الفارغه بالجدول**=============================اذا اردت ان استعلم مثلا عن الموظفين الذين لا يأخذوا عموله فكيف يكون ذلك؟؟ هنا واجب ان استعلم عن NULL كما يلى SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL; SELECT last_name, manager_id FROM employees WHERE manager_id IS Not NULL; المثال الأول يستعرض الموظفين الذين ليس لهم عموله أما المثال الثانى عكسه فيستعرض الموظفين الذين لهم عموله.الشروط المنطقيه Logical Conditions AND Returns TRUE if both component conditions are true OR Returns TRUE if either component condition is true NOT Returns TRUE if the following condition is false أولاً * And :* تعتبر And الشروط المذكورة قبلها و بعدها بمثابة شرط واحد أى أنه لابد أن تكون نتيجة كافة الشروط Trueأما اذا كانت كل الشروط نتيجتها True وشرط واحد فقط False هنا لا يتم جلب اى بيانات. و هذا مثال: SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >=10000 AND job_id LIKE '%MAN%'; فى هذا المثال لا تأتى اى نتيجه إلا اذا كان المرتب أكبر من 10000 و الوظيفه تحتوى على كلمه MAN .. وخذ بالك كلمة MAN عباره عن حروف Capital ...ثانياً: ** OR** يجب أن تكون أحد الشروط على الأقل True ليتم استرجاع البيانات . كما يلى فى المثال: SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%'; بالطبع سوف تجد هنا ان عدد الصفوف فى النتيجه أكثر من المثال السابق و السبب ان الشرط سوف يقوم بجلب الموظفين الذين يحصول على راتب اعلى من 10000 أو اسمائهم تحتوى على كلمة MAN ثالثاً ** Not ** يمكن استخدامها كما يلى: ... WHERE job_id NOT IN ('AC_ACCOUNT', 'AD_VP') ... WHERE salary NOT BETWEEN 10000 AND 15000 ... WHERE last_name NOT LIKE '%A%' ... WHERE commission_pct IS NOT NULL ولكن السؤال الآن: ماذا يحدث فى حالة تواجد And، OR فى نفس الجملة؟بالطبع سوف تكون الأولوية لـAnd وليس OR أى سوف يتم اعتبار ما قبل And هو الشرط الأول وما بعدها هو الشرط الثانى.مثال: SELECT last_name, job_id, salary FROM employees WHERE job_id = 'SA_REP' OR job_id = 'AD_PRES' AND salary > 15000; هنا كيف يتم قراءة الجمله ؟؟ طبعا الاولويه لـAnd اذا يتم قراءه الجمله كما يلىاسترجاع الموظفين بشرط ان تكون وظائفهم AD_PRESS و راتبهم اكبر من 15000 أو الوظيفه SA_REP فقد تم اعتبار ماقبل and هو الشرط الأول وما بعدها هو الشرط الثانى ثم بدأ فى النظر الى OR ...مثال أخر.......... SELECT last_name, job_id, salary FROM employees WHERE (job_id = 'SA_REP' OR job_id = 'AD_PRES') AND salary > 15000; فى هذا المثال سوف يتم تنفيذ OR اولا لأنه تم وضعها بين أقواس و الأولويه للأقواس....**** ترتيب البيانات بعد استرجاعها ORDER BY Clause-- دائما تأتى هذه ال Clause فى أخر الجمله...-- اذا لم تذكر بعدها شىء سوف تقوم بترتيب تصاعدى ascending و أختصارها Asc أما اذا اردت الترتيب التنازلى فقم بعدها بكتابه كلمة DESC اى تنازلى descending .. و هذه هى الأمثله: SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date; SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC; SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal; SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY 1; من هذه المثله نستنتج أن --- ORDER BY Caluse دائما تأتى فى أخر الجمله و اذ لم نذكر بعدها شىء فسوف يكون الترتيب تصاعدى BY Default ..--- يمكن الترتيب بأسم العمود أو ال Alias أو رقم العمود فى ال Select Clause >--- يمكن الترتيب بأكثر من عمود فإذا كان هناك تشابه فى البيانات فى العمود الأول يتم الترتيب على اساس العمود الثانى.أخر جزء فى هذا الدرس هو :- Using the && Substitution Variable*** ما رأيك اذا كتبت شرط و لكن تريد أن يكون الشرط متغير بمعنى كل مره يتم أدخال شرط جديد حيث يقوك الربنامج قبل تنفيذ الكود بسؤالك عن الشرط الجديد؟؟ هذا هو موضوع Substitution Variable فقط كل ما عليك وضع علامه & فى جمله where ليسألك البرنامج عن الشرط أما لو وضعتها فى Select فسوف يسألك عن اسم العمود و هكذا حسب وضع العلامه & .... مثال SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &employee_num; فى هذا المثال اذا قمت بتشغيل الكود سوف يسأل البرنامج عن رقم الموظف ... وهكذا كلما قمت بتشغيل الكود أما اذا اردت أن يسألك البرنامج عن رقم الموظف و لكن أول مره فقط ثم يحتفظ به فقم بكتابة علاميتين & و ليس علامه واحده كما يلى: SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &&employee_num; .................. و الله المستعان....................................... *** الواجب : حل التطبيقات رقم (4 – 5– 6 – 8 – 10 – 12 – 13 – 14 )*** المرفقات :----------------------1- مرفق ملف الشرح ومعه التطبيقات فقط لا تنسى فى برنامج الpowerpoint ان تفتح قائمة View ثم note Pages لترى التطبيقات فى أخر الملف ....2- ملف به اسئلة الأمتحان و لكن فقط على الفصل الأول و الثانى حتى نتدرب على الأمتحان أول بأول.. ( 007)****** أخوانى الدرس القادم صعب شويه وهو #### الدواااااااااااااااااااال ### فى حالة وجود اى سؤال رجاء كتابته على هذا الرابط :أسئلة الدرس الثالث Where_clause.pdf L2.zip تقديم بلاغ
بتاريخ: 29 أكتوبر 200718 سنة comment_114552 السلام عليكم و رحمة الله و بركاته ..جزاك الله عنا خير الجزاء أخونا الفاضل سامح .. زادك الله من فضله و علمه و جعلك مباركا أينما كنت ..لن أطيل كون هذه الصفحة ليست للتعليق أو الأسئلة .. لكن مشاركتي فقط تعقيب للإيضاح..كان الله في عونك استاذنا الكريم سامح .. نقدر لك -كطلاب- تعبك و ضيق الوقت..استاذي الفاضل.. أظن هذه الجملة تحتاج تصحيح : ولكن السؤال الآن: ماذا يحدث فى حالة تواجد And، All فى نفس الجملة؟ لتكون :ولكن السؤال الآن: ماذا يحدث فى حالة تواجد And، OR فى نفس الجملة؟--------------------------------------------*** الواجب : حل التطبيقات رقم (4 – 5– 6 – 8 – 10 – 12 – 13 – 14 ) كنت في البداية لا أعلم أين أجد هذه التمارين .. لكني أعتقد أنها موجودة في ملف الpowerpoint ان تفتح قائمة View ثم note Pages تحديدا هنا الصفحة رقم 34 .. (قلتُ صفحة و لم أقل شريحة.. لأنه في حال عرضها كشرائح لن تظهر التمارين)أذكر هذا توضيحا لي و للأخوة ممن لم يعلم أين يجد هذه التمارين..و أرجو أن يكون كلامي صحيحا استاذنا الكريم سامح..( وفقك الله على الشرح.. أعتقد بأنك لم تدع لنا مجالا للتوضيح أكثر ) تقديم بلاغ
بتاريخ: 29 أكتوبر 200718 سنة comment_114555 الدرس جيد جدا ورائعوممتاز وسهلفينك من زمان يا استاذلابد ان طلابك محظوظون بارك الله لك بعلمك تقديم بلاغ
بتاريخ: 29 أكتوبر 200718 سنة كاتب الموضوع comment_114612 جزاك الله خير يا أخى محمد570 على أجتهادك .....وبارك الله فيك وتم التصحيح ...... بس ما تنسى حل الواجب تقديم بلاغ
بتاريخ: 29 أكتوبر 200718 سنة comment_114662 بارك الله فيك يا استاذ سامح و الله يكرمك اوعى تسيبنا .. كمل ان شاء الله للأخر و أحنا معاك أول بأول تقديم بلاغ
بتاريخ: 2 نوفمبر 200718 سنة comment_115132 بارك الله فيك أخي سامح .. جهد جبااار .. وشرح سلس ومفهووم .. واصل عطائك أخي .. تقديم بلاغ
بتاريخ: 6 نوفمبر 200718 سنة comment_115574 يعطيك العافية أخ م.سامحمجهود تشكر عليه....وأسلوب متميز....وطريقة عرض رائعةمتابعين لك منذ البداية....وحتى النهاية باذن الله..كان الله في عونك...وجزاك الله عنا خير الجزاءأخوك/حسن تقديم بلاغ
بتاريخ: 24 نوفمبر 200718 سنة comment_117023 السلام عليكم ورحمة الله وبركاته جزاكم اللك كل خير ياريت يا بشمهندس ملفات المرفقات لاتفتح عندى ممكن ترسلهالى على الايميل وشكرا [email protected] تقديم بلاغ
بتاريخ: 11 مايو 200817 سنة comment_128561 ياتري ياباش مهندس فين حل الاسئلة عشان نعرف اجبتنا صح ولا لاء وشكرا اى الامام وفقك الله الى ما تحب وترضي تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.