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

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

صورة
- - - - -

اتعلم أوراكل صح للمبتدأين نبدأ بسم الله مع Sql

Oracle SQL Basic SELECT Oracle SQL Data Retrieval Oracle SQL DML and DDL

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

#1 emad_ocp

emad_ocp

    مشترك

  • الأعضــاء
  • 172 مشاركة
  • الاسم الأول:Emad
  • اسم العائلة:Abdullah
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Specialist

تاريخ المشاركة 27 November 2011 - 10:06 PM

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

اعترافا وردا للجميل لهذا المنتدي العظيم ولكل أعضاءه المتميذين سوف أبدأ بشرح أوراكل بطريقة علمية للمبتدأين وانا اخص المبتدأين لاني سوف أبدأ بالتسلسل الي ان نصل الي كورسات APPS بإذن الله

في منتدي SQL سوف ابدأ بكورسات الخاصة ب SQL وفي منتدي PL/SQL هضع كورسات الخاصة به وكذلك في FORMS,و REPORTS ان شاء الله هيكون كل يوم او يومين درس جديد

كورس SQL هيكون مقسم الي 3 أجزاء كالتالي

1- SQL Basic SELECT STATEMENT وهذا الجزء انا بالفعل خلصته وهو موجود هنا http://oracle-sql-tu...s.blogspot.com وبشرح فيه جمل sql الأساسية وشرح بسيط عن مفاهيم قواعد البيانات انا في الحقيقة شرحته باللغة الإنجليزية وال عايز يراجعه يدخل ويشوف وال مش فاهم جزء معين يكتب في التعليق ايميله وعنوان الموضوع ال مش فاهمه وانا هعيد ارساله علي ايميلك مشروح باللغة العربية

2-SQL Data Retrievalهذا الجزء هو ال هبدأ بيه هنا ان شاء الله باللغة العربية

3- SQL DML and DDL

تبدأ مع الجزء التاني وهو SQL Data Retrieval (استرجاع البيانات)

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

الجزء ده هنقسمه علي النقاط التالية بالترتيب

1- Display data from multiple tables

2- Group Functions

3- Subqueries

4- Reporting With SQL Plus

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

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

1- Display data from multiple tables وهي تعني عرض او استرجاع البيانات من أكتر من جدول

كلنا عارفين انه اي قاعدة بيانات علائقية ببتكون من مجموعة من الجداول او TABLES طيب ما دمت فيه عندنا اكتر من جدول يبقي انا محتاج اني اوصل لهذه الجداول وعلشان اوصل لهذه الجداول واسترجع منها البيانات وطالما عايز استرجع البيانات يبقي انا محتاج لطريق او طرق تساعدني ان استرجع هذه البيانات من الجداول الكتيره الموجوده بقاعدة البيانات بتاعتي يبقي انا هنا في الأول محتاج اعرف ماهي الطريق او بما يعرف بالربط او JOIN التي تساعدني علي ان استرجع البيانات .

فيه 4 طرق او انواع للربط عن طريقهم اقدر استرجع البيانات من اكتر من جدول

بس قبل ما نتكلم علي انواع الربط خليك معايا في المثال التالي علشان نبقي فاهمين احنا بنعمل ايه والدنيا ماشية ازاي في الموضوع ده

نفترض انك عايز تعمل قائمة او LIST ببيانات الرقم الوظيفي للموظف ومكانه والقسم ال بيشتغل فيه احنا كده لو ركزنا في المطلوب منك في القائمة هنلاقي ان كل جزء موجود في جدول خاص بيه يعني مثلا EMP NO او الرقم الوظيفي للموظف هنلاقيه في جدول EMP و الموقع او LOC هنلاقيه في جدول DEPT او جدول الأقسام وهنلاقي DEPTNO او رقم القسم مشترك ما بين الجدولين جدول DEPT و EMP

طيب احنا علشان نعمل LIST او القائمة او التقرير المطلوب مننا محتاجين اننا نشوف حاجه نربط بيها الجدولين مع بعض علشان نطلع البيانات ونخلص التقرير المطلوب مننا طيب احنا الجزء او العمود المرتبط بين الجدولين هو في الحاله دي عمود DEPTNO

يبقي احنا لو ربطنا بين الجدولين هنقدر نطلع البيانات او التقرير المطلوب .

يبقي الربط او Join Condition ممكن نقول انه

تحديد العلاقه بين البيانات الموجوده في عمودين وبمعرفة هذه العلاقة يتم انشاء الربط في جملة where

انواع الربط المعروفه


1- equijoins

2- non - equijoins

3- outer joins

4- Self joins

نكمل بكره ان شاء الله


  • wasan87 و ALHARBI515 معجبون بهذا

Jr.Oracle HCM Specialist

 

Oracle E-Business Suite R12 Human Capital Management Certified Implementation Specialist

SQL For Beginners

 


#2 ALHARBI515

ALHARBI515

    عضو

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

تاريخ المشاركة 28 November 2011 - 12:50 AM

شكرااا لك

#3 wasan87

wasan87

    عضو

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

تاريخ المشاركة 28 November 2011 - 01:04 AM

جميل جدا ....جزاك الله خيرا :D

#4 emad_ocp

emad_ocp

    مشترك

  • الأعضــاء
  • 172 مشاركة
  • الاسم الأول:Emad
  • اسم العائلة:Abdullah
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Specialist

تاريخ المشاركة 28 November 2011 - 10:43 PM

بسم الله الرحمن الرحيم
نكمل الدرس السابق وهنتكلم علي انواع الربط Join Type بشكل مبسط كتعريف لكل نوع وبعد كده هنتكلم عن كل نوع بشئ من التفصيل و بالأمثلة

1- EQUIJOIN
ويقصد به الربط المتساوي او الربط الداخلي وهو نوع من انواع الربط التي تساعد علي استخراج البيانات من اكتر من جدول لما تكون قيمة في عمود في الجدول الاول تتطابق مع قيمة اخري في عمود من الجدول الثاني وعادة يكون العمودين بينهم علاقة مفتاح الرئيسي و المفتاح الاحنبي PRIMARY KEY & FOREIGN KEY وبنستخدم علامة = في جملة WHERE لتنفيذ هذا النوع من الربط
2- NON-EQUIJOIN
وهي تعرف بالربط غير المتساوي وهذا النوع أيضا يستخدم لاسترجاع البيانات من اكتر من جدول لما تكون القيمة في عمود من الجدول الأول تتطابق بشكل غير مباشر مع قيمة اخري في جدول اخر باستخدام between ,<,>,=<,>=
3- Outer Join
بنستخدم هذا النوع من الربط علشان نتأكد ان كل البيانات تم استرجاعها بما فيهم البيانات التي لا تساوي شرط الربط ودائما بنستخدم هذا النوع من الربط مع أنواع الربط السابقة التي تستخدم لإسترجاع البيانات المتطابقة بالإضافة للبيانات الغير المتطابقة باستخدم الربط الخارجي
4- Self join
او مايعرف بالربط الداخلي والمقصود به ربط الجدول بنفسه باستخدام الربط المتساوي و الربط غير المتساوي بمعني اخر يجب ان نتخيل ان الجدول الواحد جدولين وهنشرح الموضوع ده بالتفصيل
-----------------------------------------------
هنكمل كلامنا عن انواع الربط بشكل من التفصيل

1- EQUIJOIN
في هذا النوع من الربط علشان نستخدمه لازم يكون في كل جدول من الجداول ال عايزين نسترجع منها بيانات في عمودين تكون القيم فيهم متساوين ( Primary key and foreign key
علي سبيل المثال احناا ممكن نعمل ربط بين جدول الموظفينEMP وجدول الأقسام DEPT لأن الجدولين فيهم قيم متساويه وهو رقم القسم DEPTNO فرقم القسم هو مفتاح أساسي في جدول الأقسام ومفتاح اجنبي في جدول الموظفين شوف المثال التالي .
SELECT EMP.ENAME,EMP.DEPTNO,DEPT.LOC
FROM EMP,DEPT
;WHERE EMP.DEPTNO=DEPT.DEPTNO
لاحظ اني كتبت اسم الجدول التابع ليه الحقل ال عايز استرجعه علشان اعرف سيرفر اوراكل من اي مكان يسترجع البيانات او من اي جدول وكمان بتزيد عملية performance لجملة select يتاعتك
وكمان علشان تستبعد الغموض في query بتاعك علي سبيل المثال
لو انا كتبت الكود بالشكل ده
SELECT EMP.ENAME,EMP.DEPTNO,DEPT.LOC
FROM EMP,DEPT
;WHERE EMP.DEPTNO=DEPTNO

هتلاقي ان الكود بتاعك مش هيتنفذ وهتلاقي الرسالة دي ظهرت ليك
ORA-0098:column ambiguously defined
لاني احنا في جملة الشرط كتبنا where emp.deptno=deptno طيب السيرفر مش هيعرف يقارن بين الاتنين لاني انا محدد له عمود الأقسام في جدول الموظفين يساوي عمود القسم في رسالته دي بيسال عمود قسم في غموض بمعني في اي جدول العمود ده
يارب تكون فهمت
كمان لو انا حبيت استخدم جملة ORDER BY لازم احدد اسم الجدول التابع ليه العمود ال انا هرتب بيه النتيجه المسترجعه
لاني لو مكتبتش اسم الجدول مع العمود هتظهر نفس الرساله السابقة

اتمني اني اكون وفقت في الشرح السابق وان شاء الله نكمل بكره لسه فيه بقية للربط المتساوي ونكمل باقي انواع الربط ان شاء الله

Jr.Oracle HCM Specialist

 

Oracle E-Business Suite R12 Human Capital Management Certified Implementation Specialist

SQL For Beginners

 


#5 emad_ocp

emad_ocp

    مشترك

  • الأعضــاء
  • 172 مشاركة
  • الاسم الأول:Emad
  • اسم العائلة:Abdullah
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Specialist

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

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

انهارده نكمل الدرس السابق وهو الربط المتساوي

الأول هنتكلم عن شروط اضافية للبحث مع الربط المتساوي لان انت لما تسترجع بيانات باستخدام الربط المتساوي تقدر تضيف شروط اضافية مع فقرة WHERE
زي AND مثلا متبوعة بالشرط ودائما بتستخدمها بعد عملية الربط
علي سبيل المثال نفترض انك عايز تسترجع بيانات الرقم الوظيفي و الإسم و رقم القسم والمكان للموظف وليكن KING هتكتب الكود التالي .

SELECT EMP.EMPNO,EMP.ENAME,DEPT.DEPTNO,DEPT.LOC
FROM EMP,DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO
'AND ENAME='KING

مثال تاني لوحبينا نضيف شرطين للبحث باستخدام OR مع AND

SELECT EMP.EMPNO,EMP.ENAME,EMP.SAL,DEPT.DEPTNO
FROM EMP,DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO
AND (EMP.DEPTNO=10
OR EMP.SAL>1500);

هتلاحظ اني بعد AND كاتب باقي الشرط بين قوسين ودا علشان نتأكد اننا استرجعنا النتيجة المطلوبة و الصحيحه
طيب احنا لو مكتبناش الشروط دي بين قوسين سيرفر اوراكل هينفذ AND قبل OR
استخدمنا اسم الجدول بجوار كل عمود بنسترجعه علشان نميز كل عمود من اي جدول بنسترجعه بس لو تلاحظ ان اسم الجدول طويل بالإضافة انه هيبقي في استهلاك لل PROCESS طيب ايه رأيك لو اتكلمنا عن الأسماء المستعاره للجدول أو Aliases

ماهي الأسماء المستعاره للجدول او Aliases
هو اننا بندي اسم مختصر للجدول وده هيفيد في تبسيط query بتاعك وكمان هيبقي كود sql بتاعك خفيف ومتفاعل مع سيرفر اوراكل

تابع معي التركيب لكود SQL مع ALIASES

SELECT ALIAS1.COLUMN,ALIAS2.COLUMN
FROM TABLE1 ALIAS1,TABLE2 ALIAS2
WHERE ALIAS1.COLUMN=ALIAS2.COLUMN;

مثال
SELECT E.ENAME,E.HIREDATE,,d.loc
from emp e,dept d
where e.deptno=d.deptno
order by e.name;

هتلاحظ انني عملت اختصار لاسم table واستخدمت الإختصار مع كل سجل عايز استرجعه بدل من استخدام اسم الجدول كامل

Jr.Oracle HCM Specialist

 

Oracle E-Business Suite R12 Human Capital Management Certified Implementation Specialist

SQL For Beginners

 


#6 ahmed.arafa

ahmed.arafa

    عضو نشط

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

تاريخ المشاركة 30 November 2011 - 10:16 AM

جزاك الله خيرا على الشرح الرائع
ولكن اسمح لى بسؤال
لماذا لا نبدا من حيث ما انتهى الاخرين
المحتوى العربى بحاجه لشرح forms على سبيل المثال وليس الحصر
اعلم انه يوجد شروحات للفورمز ولكنها ضعيفه جدا
ارجو ان تتقبل كلامى وصدقنى لا اقصد اى اساءه ابحث فقط عن الافضل واريد تعلم ما هو جديد

#7 emad_ocp

emad_ocp

    مشترك

  • الأعضــاء
  • 172 مشاركة
  • الاسم الأول:Emad
  • اسم العائلة:Abdullah
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Specialist

تاريخ المشاركة 30 November 2011 - 12:44 PM

جزاك الله خيرا على الشرح الرائع
ولكن اسمح لى بسؤال
لماذا لا نبدا من حيث ما انتهى الاخرين
المحتوى العربى بحاجه لشرح forms على سبيل المثال وليس الحصر
اعلم انه يوجد شروحات للفورمز ولكنها ضعيفه جدا
ارجو ان تتقبل كلامى وصدقنى لا اقصد اى اساءه ابحث فقط عن الافضل واريد تعلم ما هو جديد


أشكرك أخي أحمد علي تعقيبك وأكيد انا عارف انك لا تقصد اي اساءه وطبعا انا متقبل كلامك بس أنا حبيت أبتدي من الأول علشان في ناس أكيد لسه مبتدأين وانا ناوي ان شاء الله أخلص تراك الديفلوبر كامل بس انا شايف ان الأفضل نبدأ من الأول علشان ابقي ملتزم اني اخلص كل جزء كامل مش عايز اكتب جزء هنا ويوم اشرح جزء في القسم التاني ويوم أكسل ما أكتبش حاجة وكمان لاحظ اني كاتب في بداية موضوعي للمبتدأين لان موضوعي بالكامل هيكون للمبتدأين دا علي أساس منهج انا ماشي بيه وناوي اكمله ان شاء الرحمن .

اشكرك مره تانية وانتظرني في قسم الفورمز :)

Jr.Oracle HCM Specialist

 

Oracle E-Business Suite R12 Human Capital Management Certified Implementation Specialist

SQL For Beginners

 


#8 ahmed.arafa

ahmed.arafa

    عضو نشط

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

تاريخ المشاركة 01 December 2011 - 02:16 AM


جزاك الله خيرا على الشرح الرائع
ولكن اسمح لى بسؤال
لماذا لا نبدا من حيث ما انتهى الاخرين
المحتوى العربى بحاجه لشرح forms على سبيل المثال وليس الحصر
اعلم انه يوجد شروحات للفورمز ولكنها ضعيفه جدا
ارجو ان تتقبل كلامى وصدقنى لا اقصد اى اساءه ابحث فقط عن الافضل واريد تعلم ما هو جديد


أشكرك أخي أحمد علي تعقيبك وأكيد انا عارف انك لا تقصد اي اساءه وطبعا انا متقبل كلامك بس أنا حبيت أبتدي من الأول علشان في ناس أكيد لسه مبتدأين وانا ناوي ان شاء الله أخلص تراك الديفلوبر كامل بس انا شايف ان الأفضل نبدأ من الأول علشان ابقي ملتزم اني اخلص كل جزء كامل مش عايز اكتب جزء هنا ويوم اشرح جزء في القسم التاني ويوم أكسل ما أكتبش حاجة وكمان لاحظ اني كاتب في بداية موضوعي للمبتدأين لان موضوعي بالكامل هيكون للمبتدأين دا علي أساس منهج انا ماشي بيه وناوي اكمله ان شاء الرحمن .

اشكرك مره تانية وانتظرني في قسم الفورمز :)

رد محترم من شخص محترم
متوقعتش الرد ده بصراحه وربنا يوفقك ويكرمك ان شاء الله

#9 ‫محمد زكربا عبد المنعم‬‎

‫محمد زكربا عبد المنعم‬‎

    عضو

  • الأعضــاء
  • 2 مشاركة
  • الاسم الأول:mohamed
  • اسم العائلة:zakaria
  • البـلـد: Country Flag
  • المنصب الحالي:مهندس

تاريخ المشاركة 03 June 2014 - 03:31 AM

الله يبارك فيك



#10 mohamedali013

mohamedali013

    مشترك

  • الأعضــاء
  • 123 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Ali
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle Developer At KnowlegdeNet-Egypt

تاريخ المشاركة 03 June 2014 - 09:48 AM

مجهود طيب اخى الكريم عماد
جزاك الله خيرا


تم التعديل بواسطة mohamedali013, 03 June 2014 - 09:48 AM.


#11 anas.soft

anas.soft

    عضو مميز

  • الأعضــاء
  • 583 مشاركة
  • الاسم الأول:Anas
  • اسم العائلة:Radman
  • البـلـد: Country Flag
  • الاهتمامات:ORACLE & PHP
  • المنصب الحالي:IT Manager & Oracle Developer

تاريخ المشاركة 05 June 2014 - 01:34 PM

اخي الكريم عماد

انها لا لطف من وانا اقدر لك هذا الروح الطيبة 

 

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