منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الدرس الثامن : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثاني - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113)
+---- قسم : سلسلة دروس تعليم أكسيس (http://vb4arb.com/vb/forumdisplay.php?fid=127)
+---- الموضوع : الدرس الثامن : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثاني (/showthread.php?tid=5098)



الدرس الثامن : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثاني - azzamxp - 04-10-12

استخدام معامل المساواة والمعاملات الرياضية .

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


كود :
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 - الجزء الثاني - abdoojh - 04-03-13

بارك الله فيك على المجهودات الطيبة


RE: الدرس الثامن : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثاني - Microformt - 07-11-14

(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;



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

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

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