استخدام لغة ( تقنية ) الإستعلامات بطريقة TSQL (1) .
هذا هو الجزء الأكثر اهمية ، حيث ان
جمل الاستعلام تعمل مع جميع قواعد البيانات بصورة موحدة مع اختلافات طفيفة
جداً ، كما سنستخدمها في فيجوال بيسك ومن خلال Asp أيضاً ، كما انها تستخدم مع غيرهما بنفس الطريقة تقريباً ، وسوف نتطرق هنا لأشهر هذه الجمل مع وجود غيرها ايضاً .
ما هي SQL ؟
هذه الكلمة اختصار ل Structured Query Language .
وتصلح تقنية الاستعلام للعمل مع جميع أنواع قواعد البيانات : Oracle - Access - MS sql Server وغيرها .
تقوم هذه الجملة بالبحث - كما هو شائع
- إلا أنها تستخدم أيضاً في الاضافة والحذف والتعديل وانشاء الجداول وحتى
قواعد البيانات . والتحكم بها والادارة وغير ذلك .
أين ستكتب جمل الإستعلام في أكسيس ؟
اختر استعلامات Quires من القائمة التي كنا تختار منها Table أو Forms .
اختر Ceate Quriry In Deign Viwe .
ستظهر لك شاشة ... اختر اغلاق - Close .
والآن من قائمة Query اخترSQL Specfic ومن ثم اختر Union وذلك بالشكل التالي :
ستظهر لك شاشة فارغة ... هذه هي الشاشة التي سنكتب فيها أوامر الإستعلام .
في أعلى الشاشة نجد رمزاً للقرص المرن وهذا الرمز يرمز إلى حفظ الإستعلام ... أيضاً علامة التعجب تعني ( نفذ الإستعلام )
سوف نقوم بكتابة الإستعلام التالي :
- اقتباس :
- Select FName From Tb_Main;
!!! اضغط على حفظ واحفظه تحت الاسم الذي
يناسبك ... وجرب تنفيذ الإستعلام بالضغط على علامة التعجب ... أيضاً أغلق
الشاشة واضغط على اسم الإستعلام ... أتمنى أن تظهر لك في الحالتين شاشة
شبيه بذلك :
أيضاً للعودة لشاشة التصميم ... اضغط على الاسم بزر الماوس الأيمن واختر ( عرض التصميم - Design View ) وستظهر شاشة كتابة الكود .
والآن سنبدأ في تفصيل جمل الاستعلام ، وسوف نتعرف أولاً على جمل البحث والتي تبدأ بـ Select .وهذه هي الصيغة العامة :
- اقتباس :
- Select Colums_Name From Table_Name;
نلاحظ تكون جملة الإستعلام من أربعة أجزاء :
Select : وهي التي تميز جملة البحث عن غيرها من جمل TSQL .
Colum_Name : اسم الحقل أو العمود الذي تريد له أن يظهر .
From : وهي أيضاً صيغة خاصة بجملة البحث وتتغير في باقي جمل TSQL .
Table_Name : هنا نكتب اسم الجدول .
ولنلق نظرة قبل البدء على ما يمكن تسميته ( القواعد النحوية ) Syntex :
* لا يوجد أي فرق بين الأحرف الكبيرة والصغيرة .
* مسافة = مسافتان = عشرة أسطر : لا يعترف بأكثر من مسافة .
* تنتهي جميع جمل الإستعلام بفاصلة منقوطة ; إلا أننا في الفيجوال بيسك وفي بعض البرامج الأخرى لا نحتاج إليها .
لنلق نظرة على المثال السابق
- اقتباس :
- : SELECT FName FROM Tb_Main;
لاحظ أننا استخدمنا جملة Select لاستخراج الاسم الأول من الجدول Tb_Main .
وبهذه الصورة يمكننا استخراج مواقع الأصدقاء وذلك بالشكل التالي
- اقتباس :
- SELECT Site FROM Tb_Main;
وهكذا مع الباقي .
وإذا كنا نريد استخراج أكثر من عمود فيمكننا وضعهم بالتوالي وتفصل بينهم الفاصلة ، فمثلاً لاستخراج الإسم الأول والإسم الأخير :
- اقتباس :
- SELECT FName,LName FROM Tb_Main;
ولاستخراج جميع البيانات فإننا نضع * محل اسماء الحقول وذلك بالشكل التالي :
- اقتباس :
- SELECT* FROM Tb_Main;
ولاستخراج البيانات ولكن بدون تكرار نستخدم DISTINCT ... فمثلاً لاستخراج الإسم الأول مع حذف التكرار :
- اقتباس :
- SELECT DISTINCT FNAme FROM Tb_Main;
أيضاً لترتيب البيانات المخرجة تصاعدياً أو تنازلياً نستخدم الأمر :
ORDER BY colum
أو للتصاعدي
ORDER BY colum DESC
فمثلاً لاستخراج جمع البيانات مع الترتيب التصاعدي حسب الإسم الأول :
- اقتباس :
- SELECT * FROM Tb_Main ORDER BY FName DESC;
ويمكننا عمل مستويين للترتيب -
كما هو شائع - وذلك باستخدام الفاصلة ، فمثلاً للترتيب حسب الإسم الأول
ومن ثم الإسم الأخير ولكن تنازلياً هذه المرة :
- اقتباس :
- SELECT * FROM Tb_Main ORDER BY FName,Lname ;
أيضاً لاستخراج الإسم الأول تحت مسمى MyName فإننا نستخدم As وذلك بالشكل التالي :
- اقتباس :
- Select Fname as MyName From Tb_Main;
وسنستفيد من As لاحقاً في عمليات الاستعلام باستخدام الدوال .
يمكننا أيضاً اجراء العمليات البسيطة على جمل البحث ، فمثلاً لاستخراج أعمار الأصدقاء بزيادة عشرة سنوات :
- اقتباس :
- SELECT Fname,Age+10 as Age2 FROM Tb_Main;
لاحظ أنك تضطر إلى اعادة تسمية الحقل الناتج وإلا فإن Access سوف يضع له اسماً من عنده .
ومثلاً لدمج الإسم الأول مع الإسم الأخير :
- اقتباس :
- SELECT Fname+ " " + LName As CName FROM Tb_Main;