تقييم الموضوع :
  • 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,805 24-05-13, 07:08 AM
آخر رد: khattabcosmology
  الدرس التاسع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثالث azzamxp 2 1,270 04-03-13, 07:28 PM
آخر رد: abdoojh
  الدرس السابع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الأول azzamxp 1 1,262 04-03-13, 12:51 AM
آخر رد: abdoojh
  الدرس السادس : منوعات في أكسيس . مقدمة إلى التقارير ، الماكرو azzamxp 1 1,350 04-03-13, 12:34 AM
آخر رد: abdoojh
  الدرس الخامس : عمليات أخرى في قواعد البيانات أكسيس azzamxp 1 1,170 03-03-13, 08:29 PM
آخر رد: abdoojh
  الدرس الرابع : العلاقات Relationships . azzamxp 1 1,570 03-03-13, 08:03 PM
آخر رد: abdoojh
  الدرس الثالث : بناء النماذج Forms azzamxp 1 2,452 26-02-13, 12:19 AM
آخر رد: abdoojh
  الدرس الثاني : 2 - مقدمة عامة عن أكسيس Access ، انشاء الجداول . azzamxp 2 1,427 25-02-13, 10:33 PM
آخر رد: abdoojh
  الدرس الأول : مقدمة عامة عن قواعد البيانات وأهيمتها . وانواع البيانات . azzamxp 1 2,299 25-02-13, 09:57 PM
آخر رد: abdoojh

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


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