J.DEV

الدرس السابع ( سلسلة دروس مبسطة في Sql ) بواسطة م.فرحة

2 ردود في هذا الموضوع

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

هنكمل النهاردة ان شاء الله الjoin ، كان بدأها المرة اللى فاتت الأخ J.DEV وكان شرح ال equijoin ،،،

المرة دى ،،، هنتكلم عن النوع الثانى اللى هو ال non equijoin،،،لكن قبل ما نبدأ ... نأخذ فكرة بسيطة

عن حاجتين هنستخدمهم ،،،

الأول : (ALIAS )، لكن الاسم ده معناه ايه ؟؟؟

ده معناه الاسم المستعار ، يعنى عايزين نعرض أى عمود باسم جديد ،

ولاحظ : اننا قلنا نعرض يعنى دة شئ مش أساسى ،،، بمعنى لايتغير اسم العمود فى الجداول الأصلية

المخزنة فى ال data base .

نوضح أكتر :

لو قلنا مثلا :

SELECT ENAME  , SAL , SAL*12
FROM EMP;

هيكون الناتج جدول عبارة عن ثلاثة حقول هى كالتالى : ( SAL , SAL*12 , ENAME , ) ،،،

لكن لو حبينا نعرض العمود SAL*12 باسم أحسن شوية ،،، يعنى نسميه مثلا ANNSAL يعنى الراتب السنوى ،،،

هننفذ دة بطريقة من اثنين :

1) نترك مسافة بين اسم العمود القديم والاسم الجديد ، يعنى كدة :

SELECT ENAME , SAL , SAL*12 ANNSAL 
FROM EMP ;

2) أونستخدم AS :

SELECT ENAME , SAL , SAL*12 AS ANNSAL 
FROM EMP ;

وفى الحالتين هتكون النتيجة كدة :

جدول به الحقول ( ENAME , SAL , ANNSAl )

لاحظ : لو الاسم المستعار مكون من كلمتين يجب وضعه بين double quotation يعنى كدة

SELECT ENAME , SAL , SAL*12 "ANNSAL SALARY"
FROM EMP;

لاحظ : لأن ALIAS مش تغيير حقيقى لاسم العمود ... لا يمكن استخدامه فى فقرة where ،،،

*************************************************

2) أما الحاجة التانية : فهى استخدام BETWEEN ودى بنسميها علامة الحصر ، علشان بنستخدمها لحصر

النتائج ما بين قيمتين ،،،

وبتتكتب كدة ، القيمة الكبرى and القيمة الصغرى between

يعنى مثلا نقول :

SELECT ENAME , SAL 
FROM EMP WHERE SAL BETWEEN 2000 AND 4000 ;

************************************************** *********************

تابع .....

دى الوقت ممكن نتكلم عن موضوعنا النهاردة ،،، NON EQUIJOIN ،،،

كنا قبل كدة فى الربط المتساوى equijoin بنقول ان فى عمود مشترك بين الجدولين ، يعنى فى علاقة

مباشرة ،

علشان كدة كنا بنستخدم علامة التساوى فى فقرة where من الجملة select ،،،

لكن فى الربط غير المتساوى NON EQUIJOIN لا توجد علاقة مباشرة بين الجدولين ، لذلك لا نستخدم

علامة التساوى فى فقرة where من الجملة select ،،،

لو أخدنا المثال دة : لو عندنا جدولين :

الأول (EMP) الحقول ( ENAME , SAL )

الجدول الثاني ( SALGRADE)ول ( LOSAL , HISAL )

دى الوقت ممكن نفهم العلاقة غير المباشرة بين الجدولين ،

لأن أى قيمة لل SAL فى جدولEMP ازم هتكون قيمتها بين القيم الموجودة فى ال

LOSAL , HISAL) ( الموجودين فى جدول SALGARDE

يبقى لو عايزين نختار ال ENAME , SAL) ) من جدول EMP ، و (LOSAL , HISAL ) من جدول SALGRADE

نكتب الأمر كدة ::

SELECT E.ENAME , E.SAL , S.GRADE 
FROM EMP E , SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL ;

ملاحظة أخيرة :

استخدمنا alias

Eكاسم للجدول EMP، و S كاسم للجدول SALGARDE وتسهيل الأمر ،

وضعنا القيمة الصغرى

LOSAL

بعد between مباشرة ، ثم يليها and ، ثم القيمة الكبرى HISAL

بالتوفيق ... شكرا

م.فرحة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزااااك الله كل خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .