الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

الدرس الثالث

Featured Replies

بتاريخ:

بسم الله الرحمن الرحيم



أخوانى فى الله ........... و الله انى أحبكم فى الله ،، و اليوم سوف نتكلم عن الفصل الثانى فى كتاب اوراكل و هو:

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

بتاريخ:

السلام عليكم و رحمة الله و بركاته ..

جزاك الله عنا خير الجزاء أخونا الفاضل سامح .. زادك الله من فضله و علمه و جعلك مباركا أينما كنت ..

لن أطيل كون هذه الصفحة ليست للتعليق أو الأسئلة .. لكن مشاركتي فقط تعقيب للإيضاح..

كان الله في عونك استاذنا الكريم سامح .. نقدر لك -كطلاب- تعبك و ضيق الوقت..

استاذي الفاضل.. أظن هذه الجملة تحتاج تصحيح :

ولكن السؤال الآن: ماذا يحدث فى حالة تواجد And، All فى نفس الجملة؟


لتكون :
ولكن السؤال الآن: ماذا يحدث فى حالة تواجد And، OR فى نفس الجملة؟

--------------------------------------------

*** الواجب : حل التطبيقات رقم (4 – 5– 6 – 8 – 10 – 12 – 13 – 14 )


كنت في البداية لا أعلم أين أجد هذه التمارين .. لكني أعتقد أنها موجودة في ملف

الpowerpoint ان تفتح قائمة View ثم note Pages


تحديدا هنا الصفحة رقم 34 .. (قلتُ صفحة و لم أقل شريحة.. لأنه في حال عرضها كشرائح لن تظهر التمارين)

أذكر هذا توضيحا لي و للأخوة ممن لم يعلم أين يجد هذه التمارين..

و أرجو أن يكون كلامي صحيحا استاذنا الكريم سامح..

( وفقك الله على الشرح.. أعتقد بأنك لم تدع لنا مجالا للتوضيح أكثر )
بتاريخ:

الدرس جيد جدا ورائع
وممتاز وسهل
فينك من زمان يا استاذ
لابد ان طلابك محظوظون
بارك الله لك بعلمك

بتاريخ:
  • كاتب الموضوع

جزاك الله خير يا أخى محمد570 على أجتهادك .....وبارك الله فيك وتم التصحيح ...... بس ما تنسى حل الواجب

بتاريخ:

بارك الله فيك يا استاذ سامح و الله يكرمك اوعى تسيبنا .. كمل ان شاء الله للأخر و أحنا معاك أول بأول

بتاريخ:

بارك الله فيك أخي سامح ..

جهد جبااار .. وشرح سلس ومفهووم ..

واصل عطائك أخي ..

بتاريخ:

الله يعطيك العافية استاذ سامح والى الامام

بتاريخ:

يعطيك العافية :D
الله يجزاك خير :lol:

بتاريخ:

يعطيك العافية أخ م.سامح

مجهود تشكر عليه....وأسلوب متميز....وطريقة عرض رائعة

متابعين لك منذ البداية....وحتى النهاية باذن الله..

كان الله في عونك...وجزاك الله عنا خير الجزاء

أخوك/
حسن

  • بعد 3 أسابيع...
بتاريخ:

السلام عليكم ورحمة الله وبركاته
جزاكم اللك كل خير
ياريت يا بشمهندس ملفات المرفقات لاتفتح عندى ممكن ترسلهالى على الايميل
وشكرا
[email protected]

  • بعد 5 شهور...
بتاريخ:

 

ياتري ياباش مهندس فين حل الاسئلة عشان نعرف اجبتنا صح ولا لاء وشكرا اى الامام وفقك الله الى ما تحب وترضي
  • بعد 3 شهور...
بتاريخ:

استفدت كثيرا جزاك الله كل خير يا باشمهندس

  • بعد 3 شهور...
بتاريخ:

ممتاز

  • بعد 7 شهور...
بتاريخ:

الله يجزيك خير .... وربنا يوفقك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.