عرض مشاركة واحدة
  #1 (permalink)  
قديم 11-26-2006, 12:24 PM
الصورة الرمزية المحــ البرمجى ــتوى
المحــ البرمجى ــتوى المحــ البرمجى ــتوى غير متواجد حالياً
مالك ومؤسس المحتوي البرمجي
 
من مواضيع :: المحــ البرمجى ــتوى
0 قاموس المترادفات فى اللغة الإنجليزية
0 [ Adobe Photoshop 7 ME ] كامل
0 أكواد التعامل مع قاعدة بيانات أكسس بكل من Dao و Ado
0 اوامر Sql مهمه لتعديل خيارات الاعضاء دفعه واحدة
0 فيروس جديد يستهدف تقنية مايكروسوفت Windows Powershell
0 .net لتشغيل اي برنامج او ملف عن طريق Vb.net
0 فيلم كوميدى انتاج 2008 الفيلم للكبار فقط
0 Windows Vista 32-bit Ultimate - 11/02/2007

 
تاريخ التسجيل: Sep 2006
الدولة: مصر
العمر: 25
المشاركات: 6,033
المحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud ofالمحــ البرمجى ــتوى has much to be proud of
إرسال رسالة عبر مراسل MSN إلى المحــ البرمجى ــتوى إرسال رسالة عبر مراسل Yahoo إلى المحــ البرمجى ــتوى
Cool الاستعلامات في MySQL - الجزء الثاني

 

 

 

 

الاستعلامات في MySQL - الجزء الثاني

سندرس في هذا الدرس إن شاء الله خيارات عديدة ومفيدة أثناء كتابة الاستعلام, لنبدأ على بركة الله.

# توسيع مفهوم التعليمة where :

شرحنا في الدرس (استخدام العبارة where في MySQL) بأجزائه الثلاث عن التعليمة where وكيفية عملها, والآن سنشرح أن شاء الله تفاعل where مع select .

الفرق بين and و or:

1. اكتب استعلاماً يعيد لنا جميع المعلومات عن الفيلم الذي اسمه assassins والفيلم الذي رقمه في أرشيفنا 3 .

عندما تقوم بترجمة هذا التمرين ترجمة حرفية فإنك ستكتب الاستعلام التالي:

select * from movies where mov_name='assassins' and mov_no=3

طبعاً هذا الاستعلام صحيح قواعدياً و لكنه سيعطيك نتيجة غير المتوقعة, وبدلاً من أن يعيد لك معلومات عن الفيلمين الذين طلبتهما بالاستعلام, فإنه سيعيد لك العبارة التالية Empty set , والسبب في ذلك هو الكلمة and حيث أن عمل هذه الكلمة هو تجميع الشروط المطروحة بعد العبارة where لنفس السجل أو السطر, وبالتالي فإن الملقم سيبحث عن فيلماً اسمه assassins وبنفس الوقت رقمه (أي الفيلم assassins) هو 3 , وهذا السجل غير موجود في جدولنا لذلك سيعطينا العبارة السابقة.

إذن ما هو الحل؟ الحل هو أن تستبدل الكلمة المفتاحية and بالكلمة المفتاحية or, وبالتالي سيصبح شكل الاستعلام السابق كما يلي:

select * from movies where mov_name='assassins' or mov_no=3

وعندها سيعيد لك هذا الاستعلام المعلومات التي طلبتها عن الفيلمين, حيث أن هذا الاستعلام يقول لملق البيانات أظهر لنا كل البيانات من الجدول movies بحيث اسم الفيلم assassins أو رقم الفيلم 3.

2. اكتب استعلاماً يعيد لنا الفيلم الذي اسمه assasins أو others حيث نوع الأول هو violence والثاني horror :

ستكتب الاستعلام بالصيغة التالية:

… where mov_name='assassins' and kind='violence' or mov_name='others' and kind='horror

طبعاً هذه الصيغة صحيحة وستعيد لك مرادك, ولكن من الأفضل أن تجمع عناصر الاستعلام ضمن أقواس أي كما يلي:

… where (mov_name='assassins' and kind='violence') or (mov_name='others' and kind='horror

فعندما تكتب استعلاماً معقداً, فإنك ستحتاج إلى الأقواس حتماً, حيث أن أفضلية التنفيذ هي and ثم or .

قاعدة:

- الكلمة and تستخدم لتجميع الشروط لسجل واحد, بينما تستخدم الكلمة or لوضع الشروط على أكثر من سجل.

- عند كتابة الاستعلام بشروط عديدة وتحوي كل من or , and فمن الأفضل وضع الشروط ضمن أقواسها المناسبة, مع الأخذ بعين الاعتبار أن أفضلية التنفيذ في MySQL هي للكلمة and ثم الكلمة or .

3. اكتب استعلاماً يعيد لنا أسماء وأسعار جميع أفلام العنف.

إن صيغة هذا الاستعلام هي كالتالي:

select mov_name , price from movies where kind='violence

يفيد هذا الاستعلام في إعادة جميع السجلات ذات الصفة الواحدة.

 

توقيع :المحــ البرمجى ــتوى
للحصول على دعم فني أفضل وأسرع احرص على ما يلي :
ــ ليكن عنوان موضوعك واضح ومناسب بعيدا عن الفزعه وغيرها من العناوين .
ــ ليكن طلبك أو سؤالك واضح ومحدد ولا تكتب أكثر من مشكلة في موضوع واحد .
ــ لا تستدعي عضو معين بإسمه يا فلان ويا علان .
ــ ضع رابط للمعاينة في حالة الحاجة لذلك .
ــ ارفق صور توضيحية للمشكلة في حالة الحاجة لذلك .
ــ اذا كانت المشكلة بسبب هاك يتوجب ارفاقه أو وضع رابط للهاك .
ــ اذا حصلت على المساعدة وتم حل المشكلة فتذكر أن ترد على الموضوع وتوضيح أنه تم حل المشكلة .
رد مع اقتباس