منتدى رياض الجنة - Riad Al-Ganah

منتدى رياض الجنة - Riad Al-Ganah (https://montada.khaledbelal.com/index.php)
-   دورة Microsoft Access 2003 من منتدى قريتي (https://montada.khaledbelal.com/forumdisplay.php?f=83)
-   -   الدرس التاسع : الجزء الأول - لغة تقنية الاستعلامات - نظرة عامة وتركيب الكود - دورة Microsoft Access 2003 (https://montada.khaledbelal.com/showthread.php?t=891)

khaledbelal 03-30-2010 10:10 PM

الدرس التاسع : الجزء الأول - لغة تقنية الاستعلامات - نظرة عامة وتركيب الكود - دورة Microsoft Access 2003
 
بسم الله الرحمن الرحيم

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


ملاحظة / سيبدو الأمر مختلفاً عليك عما كنت تشاهده بالدروس الماضية.. وإذا سبق لك أن قمت ببرمجة برنامج خاص بقواعد البيانات فأعتقد أن الأمر عادي بالنسبة لك.. لنبدأ الآن بشرح القائمة الأخيرة والمهمة جداً من قوائم الآكسيس وهي الاستعلامات..


لنبدأ :

استخدام لغة ( تقنية ) الإستعلامات بطريقة TSQL .

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

س : ما هي SQL ؟

هذه الكلمة اختصار لـ Structured Query Language .
وتصلح تقنية الاستعلام للعمل مع جميع أنواع قواعد البيانات : Oracle - Access - MS sql Server وغيرها .

تقوم هذه الجملة بالبحث - كما هو شائع - إلا أنها تستخدم أيضاً في الاضافة والحذف والتعديل وانشاء الجداول وحتى قواعد البيانات . والتحكم بها والادارة وغير ذلك .

س : أين تكتب جمل الإستعلام في أكسيس ؟ وكيف ؟

- اختر استعلاماتمن القائمة التي كنا تختار منها جداول أو نماذج...
- اختر إنشاء استعلام في طريقة عرض التصميم.. << ظللها بالفأرة ثم اضغط من الأعلى تصميم..
- ستظهر لك نافذتان واحدة (إظهار جدول).. والأخرى عن الاستعلام.. اضغط على إكس لإغلاق نافذة إظهار جدول..
- بعد أن تغلق نافذة إظهار جدول.. اتجه إلى الأعلى واختر (استعلام) ثم (خاص بـ SQL) ثم (توحيد)..

شوف الصورة للتوضيح :

http://upload.traidnt.net/upfiles/iN655594.jpg

ستظهر لك شاشة فارغة ... هذه هي الشاشة التي سنكتب فيها أوامر الإستعلام.
في أعلى الشاشة نجد رمزاً للقرص المرن وهذا الرمز يرمز إلى حفظ الإستعلام ... أيضاً علامة التعجب تعني ( نفذ الإستعلام )

الآن نأتي لكتابة أوامر الاستعلامات.. ولكن قبل ذلك يجب أن نغير عناوين الحقول من اللغة العربية إلى اللغة الانجليزية..
حتى لا نجد مشاكل عند تنفيذ الاستعلام.. عناوين الحقول فقط.. اضغط على العنوان بالفأرة مرتين سريعة.. وراح تلاقي العنوان تظلل..
ثم غير العناوين حسب التالي :
الجدول الأول (Rabia)..

الرقم = Number
الاسم الأول = FName
الاسم الأخير = LName
رقم الهاتف = Phone
العنوان = Address
البريد الالكتروني = Email
الموقع الشخصي = Site
متزوج = Marry
ملاحظات = Memo
العمر = Age

ثم اذهب إلى الجدول الثاني (Tb_R1) وغير عناوين حقوله أيضاً.. غيرها إلى التالي :

الرقم = Number
رقم البطاقة = PassPort
فصيلة الدم = BClas
مصدر البطاقة = From

ثم اذهب إلى الجدول الثالث (Tb_R2) وغير عناوين حقوله أيضاً.. غيرها إلى التالي :

المرحلة الدراسية = Year
عدد الكتب = Books
عدد الطلاب = Students


- الآن نبدأ بكتابة أول استعلام..

اكتب هذا السطر في الشاشة الفارغة السابقة.. واضغط على القرص المرن لحفظه.. ثم اختر له اسم.. ثم اضغط عليه لتشغيله..

كود PHP:

     SELECT FName FROM Rabia

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

الآن اضغط على الاستعلام الذي صنعته.. أتمنى أن يكون الناتج شبيه بهذه الصورة..

http://upload.traidnt.net/upfiles/1Wu55626.jpg

الآن ظلل الاستعلام السابق واضغط من الأعلى تصميم لتعديل الاستعلام.. أو اصنع استعلام جديد بنفس الطريقة الماضية..

أو اضغط على اسم الاستعلام بزر الماوس الأيمن واختر ( عرض التصميم ) وستظهر شاشة كتابة الكود .

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

والآن سنبدأ في تفصيل جمل الاستعلام ، وسوف نتعرف أولاً على جمل البحث والتي تبدأ بـ Select.. وهذه هي الصيغة العامة لها :


كود PHP:

     Select Colums_Name From  Table_Name

شرح الكود :

نلاحظ تكون جملة الإستعلام من أربعة أجزاء :

Select : وهي التي تميز جملة البحث عن غيرها من جمل TSQL
Colum_Name : اسم الحقل أو العمود الذي تريد له أن يظهر
From : وهي أيضاً صيغة خاصة بجملة البحث وتتغير في باقي جملTSQL
Table_Name : هنا نكتب اسم الجدول


دعنا نلق نظرة سريعة على ما يمكن تسميته (القواعد النحوية) Syntex :

* لا يوجد أي فرق بين الأحرف الكبيرة والصغيرة .
* مسافة = مسافتان = عشرة أسطر : لا يعترف بأكثر من مسافة .
* تنتهي جميع جمل الإستعلام بفاصلة منقوطة ( ؛ ) إلا أننا في الفيجوال بيسك وفي بعض البرامج الأخرى لا نحتاج إليها .

ملاحظة على النقطة الأخيرة /الفاصلة المنقوطة مهمة في بعض لغات البرمجة مثل PHP وإن لم تضعها فسعطيك البرنامج خطأ ولن يتم التنفيذ.. ولكن من سهولة برنامج آكسيس أننا إذا لم نضعها فإن البرنامج يساعدنا ويضعها عند التنفيذ..
إذا وجدنا فرصة للكلام عن البرمجة فسنتكلم عن أهمية الفاصلة المنقوطة بصورة أوسع..

الآن دعنا نرجع قليلاً ونلقي نظرة على السطر الأول (الاستعلام) الذي وضعناه :

كود PHP:

     SELECT FName FROM  Rabia

لاحظ أننا استخدمنا جملة Select لاستخراج الاسم الأول من الجدول Rabia

وبهذه الصورة يمكننا استخراج بقية الحقول التي نريدها من الجدول..
مثال : لإستخراج مواقع الأصدقاء.. سيكون الكود بالشكل التالي :

كود PHP:

     SELECT Site FROM Rabia

وهكذا مع البقية..

س : ماذا لو كنا نريد استخراج أكثر من عمود..؟؟
الجواب : بكل بساطة نضع أسماء الحقول التي نريدها على التوالي ونفصل بينهم بفاصلة عادية (،)..

مثال : لاستخراج الإسم الأول والإسم الأخير..

كود PHP:

     SELECT FName,LName FROM Rabia

وهكذا إذا كنا نريد إستخراج أكثر من حقل..



س : ماذا لو كنا نريد استخراج جميع البيانات الموجودة في جدول Rabia..؟؟
لاستخراج جميع بيانات أي جدول فإننا نضع العلامة ( * ) محل اسماء الحقول.. وعلامة الضرب هذي في أغلب لغات البرمجة تعني الكل..

مثال : لإستخراج جميع بيانات الجدول Rabia :

كود PHP:

     SELECT FROM Rabia

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

س : ماذا لو كنا نريد استخراج بيانات أحد الحقول ولكن بدون تكرار البيانات المتشابهة ؟؟
لاستخراج البيانات بدون تكرار نستخدم الأمر (DISTINCT) .. فمثلاً لاستخراج الإسم الأول مع حذف التكرار.. قم بتكرار أحد الأسماء ونفذ التالي :

كود PHP:

     SELECT DISTINCT FNAme FROM Rabia

ستجد أنه لو تشابهة بعض الأسامي فإنه يظهر الأول ويهمل البقية..

س : ماذا لو كانا نريد ترتيب البيانات المخرجة تصاعدياً أو تنازلياً ؟؟

بكل بساطة نستخدم الأمرين التاليين :

ORDER BY colum : للترتيب التصاعدي
ORDER BY colum DESC : للترتيب التنازلي

بحيث (colum) : هو اسم الحقل..

مثال :لاستخراج جميع البيانات مع الترتيب التنازلي حسب الإسم الأول..


كود PHP:

     SELECT FROM Rabia ORDER BY FName  DESC

ويمكننا عمل مستويين للترتيب - كما هو شائع - وذلك باستخدام الفاصلة العادية (،) فمثلاً للترتيب حسب الإسم الأول ومن ثم حسب الإسم الأخير ولكن تصاعدياً هذه المرة :

كود PHP:

     SELECT FROM Rabia ORDER BY FName,Lname

- أيضاً يمكننا صناعة الحقول.. وذلك باستخدام الأمر (As)..
مثال :إنتاج حقل باسم MyName ووضع بيانات حقل الاسم الأول Fname فيه :

كود PHP:

     Select Fname as MyName From  Rabia

وسنستفيد من As لاحقاً في عمليات الاستعلام باستخدام الدوال .

يمكننا أيضاً اجراء العمليات البسيطة على جمل البحث ، فمثلاً لاستخراج أعمار الأصدقاء بزيادة عشر سنوات نستخدم التالي :

كود PHP:

     SELECT Fname,Age+10 as Age2 FROM  Rabia

لاحظ أن أعمار الأشخاص زادت 10 سنوات لكل عمر وتلك هي القيمة التي وضعتها أنت..
لاحظ أيضاً أن عنوان الحقل ليس Age وإنما Age2 وهو اسم حقل جديد قام الاستعلام بتكوينه بواسطة الأمر As بعد أن وضعته أنت له.. وإن لم تضعه فإن Access سوف يضع له اسماً من عنده..

ويمكننا أيضاً دمج الحقول وذلك بالصورة التالية :

مثال : لدمج حقل الاسم الأول مع الاسم الأخير..

كود PHP:

     SELECT Fname" " LName As CName FROM Rabia

نفذ الاستعلام السابق وستجد حقل باسم CName موجود فيه الاسم الأول والاسم الأخير..
بعد أن دمجناهم بعلامات الزائد والفراغ الموجود بينهم..

ويجب أن تلاحظ أن جميع الأمثلة التي استخدمنا فيها الأمر (As).. يتضح منها أن وظيفة هذا الأمر هو خاص بأسماء الحقول فقط..






نكتفي بهذا القدر.. وسنواصل بالدرس القادم بإذن الله..

تم بحمد الله.. ونلتقي بالدرس القادم إن شاء الله..


تحياتي : أبو ربيع

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

المصدر


الساعة الآن 09:35 PM.

Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية

Ads Management Version 3.0.1 by Saeed Al-Atwi

a.d - i.s.s.w