إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

الدرس السابع : كيفية التعامل مع جملة Select stame


7 رد (ردود) على هذا الموضوع

#1 أسامة موسى

أسامة موسى

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 April 2006 - 11:26 AM

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


نستأنف اليوم ما بدأنا به سابقا ونكمل كيفية التعامل مع جملة Select stament
فكما قلت هي الاساس في استعراض البيانات واستغلال الفانكشن التي تم شرحها بالسابق تعطي قصر للوقت وعرض صحيح للبيان الصحيح

سوف نستعرض اليوم ال Subqueries او ما يسمى بجمل ال selectالمتداخلة وهي تأتي بأشكال متعددة نذكر اشهرها وما يمكن التعامل معها

اشكال ال Subqueries

1- WHERE CONDITION
select * from all_tables tabs 
where tabs.table_name in (select cols.table_name 
  from all_tab_columns cols 
  where cols.column_name = 'SUPPLIER_ID');
لاحظوا ان محور الحدث كله حول WHERE واستخدمنا ال IN لتوضح مفهوم هل هذا البيان موجود ضمن مجموعة من البيانات في جدول آخر
وكأننا نقول اعرض لنا جميع البيانات من الجدول all_tables على ان يكون مثلا اسم الجدول موجود ضمن جملة select اخرى بحيث ترجع جميع اسماء الجداول واخص هنا واركز ان اسم الحقل قبل IN يجب ان يكون نوع البيانات قي جملة ال select بعد IN متوافقة بحيث لايجوان ان تقول
where cols.column_name in (select * from table_name)

ويوجد نوعين آخرين سوف يتم توضحهما فيما بعد ان شاء الله
وهذا مثال توضحيح على ما سبق
اعرض اسم الموظف ورقمه على ان يكون الموظفين في الادراة العامة
SELECT EMP_NAME,EMP_NO FROM EMPLOYEES
WHERE DPT_NO IN (SELECT DPT_NO FROM DEPARTMENTS
WHERE DPT_NAME='الادرارة العامة'
هنا سوف يعرض اسماء الموظفين الذين ينتمون الى الادارة رقم 10 مثلا على ان تكون هذه الادارة ضمن جملة ال SELECT الثانية وتكون اسمها الادارة العامة

* UNION Query
ويقصد بها دمج استعلامين لحقلين متشابهين او اكثر في جدولين مختلفين
ويستفاد منها بعدم اظهار البيانات المتكررة على ان يكون عدد الحقول في الجدول الاول مساوي لعدد الحقول للجدول الثاني
select field1, field2, . field_n
from tables
UNION
select field1, field2, . field_n
from tables;

مثال
select supplier_id
from suppliers
UNION
select supplier_id
from orders;


استخدام With ORDER BY Clause مع union
توضع في اخر ال unio وممن ان ترمز لاسم الحقل الاول برقم 1وهكذا

select supplier_id, supplier_name
from suppliers
where supplier_id > 2000
UNION
select company_id, company_name
from companies
where company_id > 1000
ORDER BY 2;
رقم 2 هو رمز supplier_name وكذلك company_name ولايعني الرقم عدد الحقول ولكن تعني الترتيب فلو وحدنا الاسماء لكتبنا الاسماء بعد Order By
CODE]select supplier_id, supplier_name as "name"
from suppliers
where supplier_id > 2000
UNION
select company_id, company_name as "name"
from companies
where company_id > 1000
ORDER BY name;[/CODE]

استخدام UNION ALL Query
هي نفس مبدأ عمل ال union ولكن تعرض جميع البيانات في الجدولين مع التكرار

select field1, field2, . field_n
from tables
UNION ALL
select field1, field2, . field_n
from tables;

مثال
select supplier_id
from suppliers
UNION ALL
select supplier_id
from orders;



INTERSECT Query

ومبدأ عمله يشبة ال union وهو دمج البيانات مع فارق انه يعرض البيانات الموجودة في الجدول الاول والتي غير موجودة في الجدول الثاني يعني يعرض الغير مكرر فقط
select field1, field2, . field_n
from tables
INTERSECT
select field1, field2, . field_n
from tables;

مثال
select supplier_id
from suppliers
INTERSECT
select supplier_id
from orders;

MINUS Query
هي عملية ارجاع البيانات في الاستعلام الاول والغير موجود في الاستعلام الثاني

select field1, field2, . field_n
from tables
MINUS
select field1, field2, . field_n
from tables;

مثال
select supplier_id
from suppliers
MINUS
select supplier_id
from orders;
ويجب ان تكون عدد الحقول متشابهه والنوع كذلك
ومعنى المثال السابق اعرض البيانات في جملة الاستعلام الاولى والغير موجودة بالاستعلام التالي
كأن تقول نريد ان نعرض اسماء الموردين الذين لم يتم الطلب على منتجاتهم

الأسئلة

1-بين استخدام Union في جملة Select
2-بين استخدام ال count في union
3-ما الفرق بين INTERSECT Query و Minus Query

انتهت الاسئلة


انتهى الدرس السابع

الدرس السادس .....القائمة الرئيسية ..... الدرس الثامن
۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com

#2 محمد علي عطية

محمد علي عطية

    عضو

  • الأعضــاء
  • 1 مشاركة

تاريخ المشاركة 25 May 2006 - 04:41 PM

انا سعيد اني عرفت الموقع عاوز يكون ليا اصحاب أوراكل
mohamedali_eg@hotmail.com
mohamedali_eg2@yahoo.com

#3 mdsalah

mdsalah

    عضو نشط

  • الأعضــاء
  • 398 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 June 2006 - 02:38 AM

مشكور اخى الفاضل واتمنى منك مزيد العطاء وجازاك الله خيرا وشكرا لهذا الموقع الاكثر من رائع ومزيد من التقدم
MDSALAH
اهم مواضيعى

فيديو شرح كامل لتنصيب Oracle Database 10g & Developer 10g , 6i, التعليم من منظور
جديد مرئى وصوت



MY 4 shared -1
MY 4 shared -2
ستجد بهما الكثير ( سى دى اوراكل _ برامج - dba- developer)

*عظَمة عقلك تخلق لك الحساد .. وعظَمة قلبك تخلق لك الأصدقاء

#4 osama80

osama80

    مشترك

  • الأعضــاء
  • 84 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 November 2006 - 02:08 PM

بارك الله فيك اخي الفاضل أسامة و اتمنى من الله ان يتم عليكم بثمرة هذا العمل و تحمل أمانة العلم

#5 wlahmad

wlahmad

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 252 مشاركة

تاريخ المشاركة 13 January 2007 - 12:15 AM

نور الله دربك
وسهل امرك
وبلغك مرادك

#6 جلال شواقفه

جلال شواقفه

    عضو مميز

  • الأعضــاء
  • 2,559 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 31 October 2007 - 07:31 PM

ممتاز ....
للامام ووفقك الله
ارجو من يستفيد من مشاركاتي الدعاء لوالدي ولاموات المسلمين بالمغفره والرحمه......

جلال محمود شواقفه
مدير دائرة الحاسوب
بلدية المفرق الكبرى
المملكه الاردنيه الهاشميه.

#7 shima

shima

    عضو

  • الأعضــاء
  • 21 مشاركة
  • الاسم الأول:shima
  • اسم العائلة:naser
  • البـلـد: Country Flag
  • المنصب الحالي:مبرمج

تاريخ المشاركة 29 August 2013 - 12:08 PM

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

الله يرضى عنك ويجعلها في ميزان حسناتك

الموضوع افادني جدا



#8 محمدعبدالعزيزمحمود

محمدعبدالعزيزمحمود

    عضو

  • الأعضــاء
  • 5 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 August 2013 - 01:00 PM

بارك الله فيك ونرجو ان يكون هناك وسيلة تواصل دائمة باذن الله