2009/02/27

SQL - جمل الاستعلامات الاساسية

استخراج البيانات من الجدول – الاستعلامات
فى هذا الدرس ملخص لجمل الاستعلامات الاكثر استخدما فى SQL و التى يجب على كل من يتعلم SQL  ان يلم بها و يفهمها جيدا قبل المضى قدما فى دراسة الموضوعات المتقدمة ، الامثلة بالتطبيق على قاعدة بيانات NORTHWIND و برنامج SQL Server


اولا قم بفتح برنامج SQL Server Management Studio و قم بانشاء استعلام جديد قائم على قاعدة البيانات Northwind
الشكل العام
Select column from table
select customerid from customers
ناتج الاستعلام سيكون عمود واحد يشمل كل الادخالات فى حقل customerid
كى نظهر كل الحقول فى الاستعلام نستبدل اسم الحقل بالعلامة *
select * from customers
الاستعلام بدون تكرار البيانات
الاستعلام التالى يرجع قيم حقل City لكل السجلات فى الجدول
select city from customers
ستلاحظ عند تنفيذ الاستعلام تكرار ظهور بعض القيم لو اردنا ان يرجع هذا الاستعلام اسماء المدن بدون تكرار نضيف فقط كلمة Distinct بعد Select فى جملة الاستعلام كما يلى :
select distinct city from customers
وصل عمودين
Concatenation
الاستعلام التالى يعرض بيانات عمودين هما الاسم الاول و الاسم الاخير
select firstname ,lastname from employees
يمكنك انشاء استعلام يدمج بيانات من عمودين مختلفين فى عمود واحد المثال التالى يوضح الفكرة
select firstname+' '+lastname from employees
الاستعلام السابق يعرض بيانات الاسم الاول مع بيانات الاسم الاخير يفصل بينهما بمسافه واحده


استخدام الاسماء البديلة
Aliases
الاستعلام السابق يعرض العمود الذى تم فيه الدمج بلا اسم فى الواقع !!! يمكن عرض اى بيانات تحت اسم بديل فى الاستعلام عن طريق استخدام As المثال التالى يوضح :
select firstname+' '+lastname as [Name] from employees
ملاحظة هامة : بعض اسماء الحقول (الاعمده) قد تتعارض مع الاسماء المحجوزه للاستخدام لغة SQL و التى تظهر باللون الازرق فى البرنامج لذا للتميز يفضل وضع اسم العمود بين الاقواس المربعه كما سبق .


ترتيب النتائج:
يمكن ترتيب ننتائج الاستعلام باستخدام تعليمة order by كما تتضح من المثال التالى :
select unitprice,quantity from [order details]order by quantity
الترتيب الافتراضى يكون تصاعديا اذا اردت ان ترتب ترتيب تنازلى اضف كلمة Desc الى نهاية جملة الاستعلام
ايضا يمكن الترتيب باستخدام اكثر من عمود مثلا
select unitprice,quantity from [order details]order by quantity,unitprice
الاستعلام السابق يعرض البيانات مرتبه حسب الكمية اولا وعند تساوى الكمية يرتب بحسب السعر
استخدام الشروط – Where
الاستعلامات السابقة ترجع بيانات عمود واحد على الاقل من الجدول بالكامل لكن هذه ليست حقيقة الحال فغالبا تحتاج لاستعلام يرجع بيانات تتوافر فيها حقائق معينه للوصول لهذه النتيجه من الاستعلام يجب ان نتحقق من توافر شروط معينة فى البيانات الناتجه عن طريق اضافة جمله الشرط (Where ) لجملة الاستعلام
select firstname from employees where firstname ='nancy'
الاستعلام السابق يرجع البيانات التى يكون الاسم الاول فيها مساويا للقيمة بين علامتى التنصيص المفرده .
معاملات الشرط :
معاملات مقارنة
  • تقليدية = و <> و< و > و <= و>=
أمثلة :
select firstname from employees where firstname <>'nancy'
select unitprice,quantity from [order details]where unitprice >=30
  • غير تقليدية In, Like ,Between ,IS Null
امثلة :
select unitprice,quantity from [order details]where unitprice in(30,50,200)
الاستعلام السابق يرجع بيانات السعر و الكمية للسجلات التى يكون السعر فيها مساوى لاى من القيم بين الاقواس
select unitprice,quantity from [order details]where unitprice between 200 and 300
الاستعلام السابق يرجع بيانات السعر و الكمية للسجلات التى يكون السعر فيها واقع بين قيمتين الحد الادنى اولا ثم الحد الاعلى
select firstname from employees where firstname like'a_n%'
الاستعلام السابق يرجع بيانات الاسم الاول للموظفين الذين يتكون اسمهم من ثلاثه حروف على الاقل الحرف الاول a و الثالث n
لاحظ ان % تعوض عن اى عدد من الحروف الغير معروفه
_ تعوض عن حرف واحد غير معروف
select firstname from employees where firstname like'a_[n,d]%'
الاستعلام السابق يرجع بيانات الاسم الاول للموظفين الذين يتكون اسمهم من ثلاثه حروف على الاقل الحرف الاول a و الثالث n او d لاحظ اننا اسنخدمنا الاقواس المربعة للحروف التى من الممكن ان تقع فى الحرف الثالث .
select firstname from employees where firstname is null
الاستعلام السابق يرجع السجلات التى تكون بيانات الاسم الاول فيها قيمة غير معرفه (لم يدخل بها بيانات)
معاملات منطقية
AND – OR – NOT
أمثلة :
select unitprice,quantity from [order details]where unitprice >200 and quantity >10
الاستعلام السابق يرجع بيانات السعر و الكمية للسجلات التى يكون السعر فيها اكبر من 200 و فى نفس الوقت تكون الكمية اكبر من 10 .
And تستخدم فى كتابة شرطين يجب ان يتحقق كلا منهما فى بيانات الاستعلام
select unitprice,quantity from [order details]where unitprice >200 or quantity >10
الاستعلام السابق يرجع بيانات السعر و الكمية للسجلات التى يكون السعر فيها اكبر من 200 او تكون الكمية اكبر من 10 .
Or تستخدم فى كتابة شرطين يجب ان يتحقق اى منهما فى بيانات الاستعلام
وطبيعى ان تكون Not خاصة بشرط يجب الا يتحقق فى البيانات مثلها مثل <> .


0 التعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.