تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثامن : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثاني
#1
استخدام معامل المساواة والمعاملات الرياضية .

تأخذ صيغة استخدام المساواة كشرط في عملية الإستعلام الصيغة التالية :


كود :
Select * From Tb_Main Where Field = Value;
ويمكننا استخدام > أو < أو => أو =< أو <> وطبعاً = .
وأخيراً معاملين جدد سنشرحهم بإذن الله لاحقاً وهما Like و Between .

فمثلاً للاستعلام عن الأصدقاء الذي تساوي أعمارهم 18 سنة :

كود :
SELECT * FROM tb_Main WHERE age = 18;
ولعرض أسماء من هم أصغر من 50 سنة :

كود :
SELECT FName,LName FROM tb_Main where age < 50;
وسنضع Value بين علامتي تنصيص مفردة في حالة كانت نصوصاً وذلك بالشكل التالي - للبحث عن الأشخاص والذين لهم الإسم ( أحمد ) :

كود :
SELECT * FROM tb_Main WHERE Fname = 'ahmed';
كما سنضع علامتي # عند البحث عن تواريخ ، ولا توجد أمثلة لتاريخ في قاعدة البيانات ، لكنها تأخذ صيغة شبيهه بالتالي :

كود :
Select * Form Table1 Where Date > #12/03/04#;
والآن لندمج بعض ما تعملناه في جملة واحدة :
لاستخراج الإسم الأول والأخير من الجدول بترتيب تنازلياً ومدمجة سوياً تحت اسم Name والتي تحقق شرط أن العمر أكبر من 17 :

كود :
SELECT Fname & " " & Lname AS MyName FROM tb_Main WHERE age > 17 ORDER BY FNAME, LName DESC;
والآن : ماذا لو أردنا البحث بتحقيق مجموعة شروط أو أحدها أو تحقيق شرط مع انتفاء آخر ؟
من أجل هذا الغرض نستخدم المعاملات المنطقية البسيطة .

لدينا نوعين من المعاملات المنطقية البسيطة الأكثر استخداماً :
And : تعطي قيمة صحيحة True في حالة كان الطرفين صحيحاً والباقي false .
Or : تعطي قيمة صحيحة True في حالة كان أحد الطرفين صحيحاً وإلا فإنه يعطي false .


والآن إلى مثال سريع ، سنبحث عن الأشخاص الذين يكبر عمرهم عن 17 بشرط ألا يكونوا متزوجين :

كود :
Select Fname from tb_main where age > 17 and marry = false;
لنفترض أيضاً أننا نريد معرفة الأشخاص الذين تزيد أعمارهم عن 17 سنة وليس لديهم بريد الكتروني :

** قبل أن تجرب المثال قم بتشغيل قاعدة البيانات وقم بحذف البريد الإلكتروني لبعض الأشخاص ، واكتب للبعض كلمة No Mail وللآخرين No .

الآن انظر الأمر التالي :


كود :
SELECT * FROM Tb_Main WHERE age>17 And (Email='No' or Email='No Mail');
سنفصل الآن هذه الجملة :
* الشرط الأول : Age > 17 : العمر أكبر من 17 .
* الشرط الثاني : Email = 'No' : البريد الإلكتروني يحتوي على كلمة No .
* الشرط الثالث : Email = 'No Mail' : البريد الإلكتروني يحتوي على كلمة No Mail .

واستخدمنا نوعين من المعاملات المنطقية And و Or .

قبل النهاية كن حذراً عند استخدام And مع Or في جملة واحدة ، وذلك عن طريق ترتيب الأقواس بطريقة صحيحة .

استخدام المعامل Like .

نستخدم المعامل Like للبحث عن الكلمات المشابهه لتعبير معين ...
ونستخدم للمعامل Like الصيغة التالية :


كود :
Select * From Table Where Field Like '*Name*';
نستخدم * للدلالة على وجود أحرف ما ... وقد نستخدمها في البداية ، أو النهاية ، أو كليهما . وسيتضح الأمر في الأمثلة :
لعرض الأشخاص الذين قد تحتوي أسماءهم الأولى على hm ... لذا سنستخدم جملة استعلام بهذا الشكل :


كود :
SELECT * FROM Tb_Main WHERE FName like '*hm*';
أما لو أردنا البحث عن الأشخاص الذين تبدأ أسماءهم بحرف A لذا لن نضع * قبل كلمة البحث :

كود :
SELECT * FROM Tb_Main WHERE FName like 'A*';
ولو أردنا البحث عن الأشخاص الذين ينتهي اسمهم بحرف معين سنضع * في البداية دون النهاية .

***
في MS SQL Server نستخدم % بدلاً من * .

مما سبق نستنتج أن * تعني أي عدد من الحروف ، لكن ماذا لو أردنا تحديد عدد الحروف ؟
في هذه الحالو نستخدم "؟" والتي ذكرناها في درس البحث في البداية .

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


كود :
SELECT * FROM Tb_Main WHERE FName like 'A??';

والآن إلى مثال واقعي نسبياً . جرب تعديل حقل العنوان Address للأشخاص بحيث يحتوي على أكثر من معلومة اضافة للمدينة .
في هذه الحالة نستطيع استخراج الأشخاص الذين يسكنون مدينة واحدة عن طريق الشرط Like . هل تعرف كيف ؟؟؟

استخدام المعامل Between .

نستخدم هذا المعامل للبحث ضمن نطاق معين ، وأشهر استعمال لهذا المعامل هو استخدامه في البحث ضمن التواريخ .
يأخذ البحث باستخدام between الصيغة التالية :

كود :
SELECT colum FROM table WHERE field BETWEEN v1 AND v2;
فمثلاً لاستخراج الأشخاص الذين تترواح أعمارهم بين 20 و 60 :


كود :
SELECT *
كود :
FROM tb_main
WHERE age between 20 and 60;


ويمكن استخدام نفس الطريقة مع الأسماء ، والتواريخ بطبيعة الحال .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
الرد }}}}
تم الشكر بواسطة:
#2
بارك الله فيك على المجهودات الطيبة
الرد }}}}
تم الشكر بواسطة:
#3
Shocked 
(04-10-12, 08:11 PM)azzamxp كتب : استخدام معامل المساواة والمعاملات الرياضية .

تأخذ صيغة استخدام المساواة كشرط في عملية الإستعلام الصيغة التالية :



كود :
Select * From Tb_Main Where Field = Value;

ويمكننا استخدام > أو < أو => أو =< أو <> وطبعاً = .
وأخيراً معاملين جدد سنشرحهم بإذن الله لاحقاً وهما Like و Between .

فمثلاً للاستعلام عن الأصدقاء الذي تساوي أعمارهم 18 سنة :


كود :
SELECT * FROM tb_Main WHERE age = 18;

ولعرض أسماء من هم أصغر من 50 سنة :


كود :
SELECT FName,LName FROM tb_Main where age < 50;

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


كود :
SELECT * FROM tb_Main WHERE Fname = 'ahmed';

كما سنضع علامتي # عند البحث عن تواريخ ، ولا توجد أمثلة لتاريخ في قاعدة البيانات ، لكنها تأخذ صيغة شبيهه بالتالي :


كود :
Select * Form Table1 Where Date > #12/03/04#;

والآن لندمج بعض ما تعملناه في جملة واحدة :
لاستخراج الإسم الأول والأخير من الجدول بترتيب تنازلياً ومدمجة سوياً تحت اسم Name والتي تحقق شرط أن العمر أكبر من 17 :


كود :
SELECT Fname & " " & Lname AS MyName FROM tb_Main WHERE age > 17 ORDER BY FNAME, LName DESC;

والآن : ماذا لو أردنا البحث بتحقيق مجموعة شروط أو أحدها أو تحقيق شرط مع انتفاء آخر ؟
من أجل هذا الغرض نستخدم المعاملات المنطقية البسيطة .

لدينا نوعين من المعاملات المنطقية البسيطة الأكثر استخداماً :
And : تعطي قيمة صحيحة True في حالة كان الطرفين صحيحاً والباقي false .
Or : تعطي قيمة صحيحة True في حالة كان أحد الطرفين صحيحاً وإلا فإنه يعطي false .


والآن إلى مثال سريع ، سنبحث عن الأشخاص الذين يكبر عمرهم عن 17 بشرط ألا يكونوا متزوجين :


كود :
Select Fname from tb_main where age > 17 and marry = false;

لنفترض أيضاً أننا نريد معرفة الأشخاص الذين تزيد أعمارهم عن 17 سنة وليس لديهم بريد الكتروني :

** قبل أن تجرب المثال قم بتشغيل قاعدة البيانات وقم بحذف البريد الإلكتروني لبعض الأشخاص ، واكتب للبعض كلمة No Mail وللآخرين No .

الآن انظر الأمر التالي :



كود :
SELECT * FROM Tb_Main WHERE age>17 And (Email='No' or Email='No Mail');

سنفصل الآن هذه الجملة :
* الشرط الأول : Age > 17 : العمر أكبر من 17 .
* الشرط الثاني : Email = 'No' : البريد الإلكتروني يحتوي على كلمة No .
* الشرط الثالث : Email = 'No Mail' : البريد الإلكتروني يحتوي على كلمة No Mail .

واستخدمنا نوعين من المعاملات المنطقية And و Or .

قبل النهاية كن حذراً عند استخدام And مع Or في جملة واحدة ، وذلك عن طريق ترتيب الأقواس بطريقة صحيحة .

استخدام المعامل Like .

نستخدم المعامل Like للبحث عن الكلمات المشابهه لتعبير معين ...
ونستخدم للمعامل Like الصيغة التالية :



كود :
Select * From Table Where Field Like '*Name*';

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



كود :
SELECT * FROM Tb_Main WHERE FName like '*hm*';

أما لو أردنا البحث عن الأشخاص الذين تبدأ أسماءهم بحرف A لذا لن نضع * قبل كلمة البحث :


كود :
SELECT * FROM Tb_Main WHERE FName like 'A*';

ولو أردنا البحث عن الأشخاص الذين ينتهي اسمهم بحرف معين سنضع * في البداية دون النهاية .

***
في MS SQL Server نستخدم % بدلاً من * .

مما سبق نستنتج أن * تعني أي عدد من الحروف ، لكن ماذا لو أردنا تحديد عدد الحروف ؟
في هذه الحالو نستخدم "؟" والتي ذكرناها في درس البحث في البداية .

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



كود :
SELECT * FROM Tb_Main WHERE FName like 'A??';


والآن إلى مثال واقعي نسبياً . جرب تعديل حقل العنوان Address للأشخاص بحيث يحتوي على أكثر من معلومة اضافة للمدينة .
في هذه الحالة نستطيع استخراج الأشخاص الذين يسكنون مدينة واحدة عن طريق الشرط Like . هل تعرف كيف ؟؟؟

استخدام المعامل Between .

نستخدم هذا المعامل للبحث ضمن نطاق معين ، وأشهر استعمال لهذا المعامل هو استخدامه في البحث ضمن التواريخ .
يأخذ البحث باستخدام between الصيغة التالية :


كود :
SELECT colum FROM table WHERE field BETWEEN v1 AND v2;

فمثلاً لاستخراج الأشخاص الذين تترواح أعمارهم بين 20 و 60 :



كود :
SELECT *

كود :
FROM tb_main
WHERE age between 20 and 60;



ويمكن استخدام نفس الطريقة مع الأسماء ، والتواريخ بطبيعة الحال .

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

اخي العزيز
 السلام عليكم ورحمة وبركاته
 سوف  يكون الشرح اجمل عندما يتضمن امثله حول ذلك ؟؟
 والله يحفظكم ويرعاكم

الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس العاشر و الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع azzamxp 6 1,353 24-05-13, 07:08 AM
آخر رد: khattabcosmology
  الدرس التاسع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثالث azzamxp 2 905 04-03-13, 07:28 PM
آخر رد: abdoojh
  الدرس السابع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الأول azzamxp 1 995 04-03-13, 12:51 AM
آخر رد: abdoojh
  الدرس السادس : منوعات في أكسيس . مقدمة إلى التقارير ، الماكرو azzamxp 1 1,038 04-03-13, 12:34 AM
آخر رد: abdoojh
  الدرس الخامس : عمليات أخرى في قواعد البيانات أكسيس azzamxp 1 874 03-03-13, 08:29 PM
آخر رد: abdoojh
  الدرس الرابع : العلاقات Relationships . azzamxp 1 1,181 03-03-13, 08:03 PM
آخر رد: abdoojh
  الدرس الثالث : بناء النماذج Forms azzamxp 1 1,806 26-02-13, 12:19 AM
آخر رد: abdoojh
  الدرس الثاني : 2 - مقدمة عامة عن أكسيس Access ، انشاء الجداول . azzamxp 2 1,108 25-02-13, 10:33 PM
آخر رد: abdoojh
  الدرس الأول : مقدمة عامة عن قواعد البيانات وأهيمتها . وانواع البيانات . azzamxp 1 1,777 25-02-13, 09:57 PM
آخر رد: abdoojh

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم