الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مذكرات حول تصمبم قواعد البيانات وتطبيقاتها

مثبّترائج
بدأه أحمد مبارك الحيقي في 16 أبريل 2009 · 363 رد · 126,620 مشاهدة · في قسم أرشيف الاكسيس التعليمي
مشاركة: واتساب X فيسبوك تيليجرام
#251

السلام عليكــم ورحمـة الله وبركاتــه ،،

كل سنة وانتوا طيبين ... وأعمالكم مقبولين ... 

(طبعا ده مش شعر ، مع إنى والله كنت بدأت اكتب نظم على الماشى عن رمضان والسلسلة والصحبة لكن منه لله الجهاز ... هنج ... الظاهر أنه بيعرف فى الشعر كويس  :) فالبروسيسور ماستحملش الكلام الجامد قوى فاضطررت الى عمل صدمة كهربية له وعملت له ريستارت)

تقبل الله منى ومنكم سائر الأعمال ووفقكم إلى ما فيه الخير لكم ولدينكم

الرأى ما قال أبو الندا

اقتباس
3. نخصص لرمضان دورة سريعة في SQL.

أنا مع هذا الإقتراح .. وبعد العودة إن شاء الله .. ننعش السلسلة بمراجعة مخططة.

بس بالراحة علينا يا معلمنا احنا لسة على قدنا

جزاكم الله خيرا

{العلم قبل العمل} ... مذكرات حول قواعد تصميم البيانات .

خير الناس أنفعهم للناس

#252

أستاذنا أحمد مبارك الحيقى ...

بارك الله فيك وعليك وحولك .. فما تزال تنعش حماسنا وتزكى ربة التعلم فينا.

أرانا فى اتجاه خيار ما ................. وفقك الله أياً كان قرارك.

محمد ندا

... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...

#253

بدءأ، مبارك لكم إدراك رمضان، وإني لأرجو من الله أن لا يحرمنا اغتنام هذه الفرصة، وألا نكون ممن أدرك رمضان ولم يغفر له! أرجو من الجميع الانتباه لهذه النقطة، من أعظم القواعد في الحياة أن لكل مقام مقال، فلا تجعل رمضان كغيره.

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

الأخ معتصم: مرحباً بك، وبالنسبة لسؤالك، فإن الدورة موجهة أساساً للمبتدئين، وإن كنت أرجو ألا يجدها مملة من كانت له سابق معرفة باللغة.

الأخ zezo: حللت أهلاً ونزلت سهلاً... مرحباً بك.

اسم الدورة:

o مقدمة إلى لغة SQL (هل تستطيع أن تأتي باسم أكثر غموضاً من هذا؟).

مدة الدورة:

o ثلاثة أسابيع (لماذا بالتحديد؟ لأن أسبوعين قصيرة جداً، ولأن أربعة أسابيع ستتجاوز رمضان! هذا يشبه قصة العمود الذي تسنده حجارة. لماذا الحجارة؟ لكي تسند العمود. لماذا العمود؟ لكي ينبه الناس على الحجارة).

نظام الدورة:

o مذكرات متفرقة (ألق نظرة بين فينة وأخرى. على الأرجح، إنها المشاركة التي تنتهي باسم محمد ندا أو مشارف أو slave أو same7_mo3az أو sandm أو nababeer... وتقع في الجزء العلوي من الصفحة!).

منهج الدورة:

o الاهتمام بالمفاهيم أكثر من مجرد القواعد الإملائية.

o عملية قدر الإمكان.

o قصيرة قدر الإمكان.

ولهذا سأهمل بإذن الله الجوانب التاريخية والنظرية، كما أنه يجب أن يكون من الواضح أنك لن تجد هنا مرجعاً شاملاً لأوامر SQL. أعلم أنك لم تكن تتوقع ذلك أصلاً، لكنهم يقولون هذا دائماً!

أول حلقة: يوم الثلاثاء بإذن الله الموافق الرابع من رمضان (أو نحوه عند البعض)...

أخوكم أحمد.

تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 24 أغسطس 2009 في 19:43

#255

جزاك الله الف خير في هذا الشهر الفضيل

وبإنتظار بداية الحلقات والدروس

والله يرزقنا بها العلم النافع ويجعلها في ميزان حسناتك

#256

السلام عليكم ورحمة الله وبركاته،،،

اقتباس
السلسلة ليست من الأولويات في رمضان
كلام مقبول تماماً.

نحن فى انتظار هذه الدورة التى تحقق معادلات عجيبة (قصيرة ، عملية ، تهتم بالمفاهيم ، تأتى من مدرس صريح جداً وأمين فى محتوى الدورة).

وهانحن فى نحوه ويزيد يوماً :).

بارك الله لنا وإياكم فى أيام وليال رمضان

محمد ندا

تم تعديل هذه المشاركة بواسطة Mohamed Nada في 25 أغسطس 2009 في 18:23

... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...

#257

رقم الحلقة (28)

تحذير: يبدو أن حلقات الدورة ستكون شبه يومية في البداية إن شاء الله...

SQL: مقدمة

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

هل من الضروري أن تتعلم SQL؟

نعم، هذا يجب أن يكون في أوائل أهدافك على طريق احتراف برمجة قواعد البيانات. باختصار، SQL هي اللغة الوحيدة التي تستطيع أن تستخدمها للوصول إلى قاعدة البيانات مباشرة. قد لا يكون هذا واضحاً بالنسبة للمبتدئ، وخاصة في الأكسس، لأنه لم ير حتى الآن إلا شاشات تصميم (جداول ، استعلامات، نماذج، تقارير). دعني في هذه النقطة أذكر فقط القليل من المهام التي ستحتاج فيها إلى SQL، وستتمنى عندها لو تعلمتها يوماً ما...

إنشاء كائنات قاعدة البيانات، وأهمها الجداول، بالكود.

إنشاء استعلامات معقدة، لا يعلم معالج الاستعلامات في أكسس حتى بوجودها (مثلاً، استعلامات التوحيد).

معالجة البيانات برمجياً، وصدقني، هذه الكلمة أكبر بكثير مما تتصور. لا تتوقع أن تكون برامجك كلها مجرد استعراض لبيانات الجداول، وإضافة أو حذف أو تعديل سجل هنا أو هناك، ستبدأ تطلق على نفسك اسم مبرمج قواعد بيانات عندما تقوم برامجك ببعض الاحتسابات التي لا يستطيع أن يقوم بها المستخدم عبر النماذج، مثلاً، احتساب الرواتب. إلى جانب لغة البرمجة التي تستخدمها، مثلاً VBA، ستكتب الكثر من عبارات SQL.

لا أود أن أطيل الوقوف هنا، لكن القصد أن تقتنع أنك تحتاج بالفعل إلى SQL، ومن الأفضل ألا تنام بينما تقرأ في هذه الدورة.

ولكن، ما هي SQL؟

ألم نقل ذلك بعد؟ غريب، إن SQL، ولا فخر هي اللغة الرسمية لقواعد البيانات العلائقية (موضوع هذه السلسلة). بما أن هذه الدورة موجهة أساساً للمبتدئين، دعني أوضح بعض النقاط التي قد لا تأخذ حقها من الفهم. كما ذكرت من قبل، هدفي هنا هو الاهتمام بالمفاهيم الأولية، وما أكثر ما تفوت علينا المفاهيم الأولية!

في البداية، دعنا نتأمل قليلاً في معنى (لغة). من الجيد أن نتذكر بين حين وآخر أن الحاسوب الذي أاصبحنا نعتمد عليه كثيراً هو في النهاية آلة إلكترونية أخرى، تعمل بالكهرباء. لكن الفرق الجوهري بينه وبين آلة الغسيل على سبيل المثال، هو أن تصميمه منذ البداية كان على أساس أنه جهاز متعدد المواهب. تعدد المواهب هذا يأتي من حقيقة أن المعالج (الذي هو جوهر الحاسوب) مصمم بطريقة خاصة، بحيث تختلف الوظيفة التي يؤديها حسب اختلاف مجموعة من الإشارات الكهربائية التي تستطيع دوائره الإلكترونية التعرف عليها. هذه الإشارات الإلكترونية تأتي في مستويين فقط (جهد عالي، وجهد منخفض)، اصطلحوا على تسميتهما (واحد وصفر). التشكيلات المختلفة التي يستطيع المعالج فهمها والاستجابة لها أسموها تعليمات. مجموع هذه التعليمات يسمى لغة، ولأن تعليمات هذه اللغة تتكون من إشارات من مستويين فقط، فإن لغة المعالج (تسمى أيضاً لغة الآلة) يقال لها: لغة ثنائية binary language. تستخدم تعليمات هذه اللغة في كتابة برامج، وهذا هو سر تعدد مواهب الحاسوب: أنه قابل للبرمجة. التفاصيل هنا كثيرة، لكن لكي أجعل القصة الطويلة أقصر مايمكن، أقول: إن الإنسان استمر في تسهيل الأمور على نفسه (ما انفك يبني طبقة فوق طبقة ليخفي التفاصيل الصعبة) حتى أصبح يبرمج الحاسوب ليس بلغته التي يفهمها مباشرة، لكن بلغات أسهل. هذه السهولة تكمن في أنه لم تعد هناك تشكيلات من (الصفر والواحد)، لكن كلمات بلغة يفهمها الإنسان (الإنجليزية)، يستطيع بواسطتها أن يكتب تعليمات من أجل مختلف المهام (مثل تعريف متغيرات، التحكم في سير البرنامج، نسخ قيم المتغيرات... إلخ). مجموع هذه الكلمات يسمى لغة برمجة. طبعاً، يحكم استخدام هذه الكلمات قواعد دقيقة، هي من ضمن ما يميز لغة برمجة عن أخرى. النقطة المهمة هنا، أن التشكيلات (التعليمات) المختلفة التي يستخدمها المبرمج الآن، ليست بينه وبين المعالج، لأن المعالج (بصفته جهازاً إلبكترونياً في النهاية) لا يفهم هذه التشكيلات، وهذا يعني أن هناك (طبقة) ما، هي عبارة عن برنامج، هي التي تستقبل هذه التشكيلات من المبرمج، وتترجمها إلى تشكيلات يفهمها المعالج. هذا البرنامج يسمى المترجم أو المجمع (interpreter or compiler)، وكل مترجم أو مجمع مخصص للغة محددة. الخلاصة هنا (لمن بدأ يتثاءب هناك) أن لغة البرمجة المحددة هي مجموعة الكلمات التي يفهمها مترجم ما. هذه الكلمات قد نسميها تعليمات، وهي على أنواع، مثل الكلمات في اللغة العربية (اسم وفعل وحرف، ما زلت تذكر ذلك، هه؟).

بالمثل، SQL هي لغة، لكنها ليست لغة برمجة تقليدية، ولا يترجمها مترجم أو مجمع مثل مجمع لغة الـC، أو Java . لغة SQL هي مجموعة من التعليمات بين المبرمج وبين برنامج خاص من نوع آخر، يسمى برنامج ( مفاجأة ) إدارة قواعد البيانات DBMS. لا بد أن المتابعين لهذه السلسلة قد بدأوا يكرهون هذا البرنامج من عدد المرات التي قرؤوه فيها. وهذه التعليمات تستخدم في مهام تمتد من إنشاء قاعدة البيانات مروراً بالوصول إلى بيانات قاعدة البيانات، ومعالجة هذه البيانات إلى التحكم في الوصول إلى قاعدة البيانات وبياناتها. هذه المهام أكثر بكثير مما يوحي به اسم اللغة: Structured Query Language أو لغة الاستعلامات البنيوية (أو الهيكلية أو سمها ما شئت). لكن يمكن من الاسم أن تدرك أن من أهم وأكثر استخدامات هذه اللغة هي الاستعلام عن (استعادة) البيانات من قاعدة البيانات. بالمناسبة، كما أن مترجم الفيجوال بيسك على سبيل المثال، لا يفهم إلا لغة البيسك، فإن الـDBMS (ونحن نتكلم هنا عن قواعد البيانات العلائقية Relational Databases) لا يفهم إلا لغة SQL. وعلى هذا فأنت بصدد التعرف على مجموعة من الكلمات (تشكل في مجموعها لغة SQL) تستخدم في الوصول ومعالجة بيانات قواعد البيانات (بالإضافة إلى المهام المذكورة أعلاه).

هذه اللغة صممت منذ البداية من أجل قواعد البيانات العلائقية، وعلى الرغم من أنها ليست الوحيدة، إلا أنها بدون منافس الأكثر استخداماً، وقد تبنتها مجموعة من المنظمات التي تصدر المعايير أو المقاييس standards، وهذا يعني أن لغة SQL الآن لغة standard، وهذا بدوره يعني أنها لغة متفق عليها ومدعومة من مصنعي برامج إدارة قواعد البيانات. بالمناسبة، هذا يعني أنك بتعلم هذه اللغة تستطيع التخاطب مع عدة أنظمة (غير الأكسس) مثل Oracle وSQL Server، وغيرها، على اختلافات طفيفة، على الأقل في أساسيات اللغة. من أجل ذلك قلنا في البداية إنها اللغة الرسمية لقواعد البيانات العلائقية.

أرجو أن يكون تعريف SQL الآن أوضح قليلاً مما كان قبل بضع دقائق...

(يبع إن شاء الله)...

#258

السلام عليكم ورحمة الله وبركاته وبعد

الاخ أحمد مبارك .. جزاك الله كل خير وجعلك من عتقائه من النار

في هذا الشهر الكريم

سر على بركة الله ( ولي اقتراح ان يكون موضوع SQL )

موضوع جديد وحلقات جديدة ليسهل الوصول اليها وليس مضمن مع موضوع قواعد البيانات

مجرد اقتراح غير ملزم وطوبى لليد التي تبني ........ وفقكم الله جميعا

تم تعديل هذه المشاركة بواسطة اكسيرالحياة في 25 أغسطس 2009 في 20:08

#259
اكسيرالحياة كتب:
السلام عليكم ورحمة الله وبركاته وبعد

سر على بركة الله ( ولي اقتراح ان يكون موضوع SQL )

موضوع جديد وحلقات جديدة ليسهل الوصول اليها وليس مضمن مع موضوع قواعد البيانات

مرحباً إكس :wink:

لا مانع أن نستفيد من حضور وتفاعل زبائن دورة قواعد البيانات هنا ثم بعد الانتهاء من الدورة الفرعية هذه وبعد استئذان صاحبها ننقلها نحن الى موضوع مستقل ومثبت أيضاً

الرأي في النهاية لصاحب الدكان - عفواً الموضوع :lol: -

طبتم واهتديتم :)

===================================

إقرأ معي

رابط متجدد لكتاب أقرؤه فشاركني فيه

======

فضائح الرافضة ومخازيهم حين يكتب عنها أحد خصومهم فهذا شيء متوقع ،فإن كتب عنها أحدهم فهو شيء غير مألوف ، وإن كان الكاتب أحد مراجعهم وأخص خواصهم فهذا شيء متناهي الغرابة ، وإن علمت أن الكاتب قد قتل بعد نشر الكتاب فقد حان وقت قراءة الكتاب

الكتاب :

حسين الموسوي - لله تم للتاريخ ، كشف الأسرار وتبرئة الأئمة الأطهار

اضغط على الصورة لتحميل الكتاب

%E1%E1%E5%20%CB%E3%20%E1%E1%CA%C7%D1%ED%CE.jpg

-----------

كتب سابقة

سعد الدين الشاذلي - مذكرات حرب أكنتوبر

#260

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

الأستاذ الفاضل إكسير، أسأل الله أن يجزل لك العطاء وأن يجعلنا وإياكم من عتقائه من النار في رمضان هذا، وأن يمن علينا من فضله...

أولاً: ومن بعد إذن الإخوة المشاركين في السلسلة، أظن أننا متفقون على أننا لا نستطيع رد اقتراح من مثل الأستاذ إكسير...

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

هل ترى أن أقوم بفتح موضوع جديد، وأنقل الكليمات اليسيرة التي بدأت بها، ثم أمسحها من هنا؟

تحريـــــــــــــــــــــــــر

=========================

بعد قراءة مداخلة الأستاذ إيهاب، أفوض - من ناحيتي- الأستاذ إكسير في اختيارالأنسب، والشكر موصول للأستاذ إيهاب...

تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 25 أغسطس 2009 في 20:29

#261

أولاً: أهلاً بك ومرحباً أستاذنا أكسير الحياة بين إخوانك وتلاميذك.

لا يسعنى إلا أن أشكرك نيابة عن أعضاء هذه السلسلة .. كما أشكرك بشكل شخصى على تشريفك لنا فى بيتك.

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

اقتباس
ولا أدري كيف لم أفكر في ذلك... ربما أردت ألا أقطع التواصل مع الإخوان في هذه السلسلة
هذه الفكرة أخى أحمد خطرت فى بالى بمجرد أن اتفقنا عليها .. ولكن كما قلت أردت أن يكون التواصل مع الإخوان أعضاء السلسلة خاصة أن هذا التواصل عزيز فى رمضان.
اقتباس
لا مانع أن نستفيد من حضور وتفاعل زبائن دورة قواعد البيانات هنا ثم بعد الانتهاء من الدورة الفرعية هذه وبعد استئذان صاحبها ننقلها نحن الى موضوع مستقل ومثبت أيضاً

الرأي في النهاية لصاحب الدكان - عفواً الموضوع -

وبصفتى بياع فى الدكان أنا مع هذا الإقتراح من أستاذنا إيهاب عثمان.

وكمان بصفتى مدير هذه السلسلة .... من غير ضرب .. من غير ضرب :stop: أنا مع هذا الإقتراح.

تم حذف إلغاء فاعلية السطر أعلاه من قبل الرقابة (ندا)

وفيه صفات تانية بس كفاية كده النهارده.

محمد ندا

تم تعديل هذه المشاركة بواسطة Mohamed Nada في 25 أغسطس 2009 في 21:43

... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...

#262

بعد السلام عليكم ورحمة الله وبركاته

أستاذنا أحمد ...

أهلاً ومرحباً بهذه السليسلة (ليس خطأ إملائى .. السليسلة) التى ربما تفتح عليك أبواب جديدة بأن نكملها كسلسلة بعد الانتهاء من سلسلتنا الأساسية.

وقد قرأت الحلقة الأولى بعد أن عملت لنفسى واحد كابتشينو كالعادة .. وتفضل معى كوب شاى بالحليب الذى تحبه .. ولكن إحذر أن تقرأ المشاركة فى نهار رمضان.

وعافى الله عينيك وبارك لك فى بصرك وبصيرتك.

محمد ندا

... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...

#263

جزاك الله خيراً على هذا الموضوع

بالنسبة لإقتراح نقل سلسلة ال SQL لموضوع مستقل فإن ذلك سينبه بعض الأعضاء بهذه السلسلة الجديدة وهو ما قد يساعد على المزيد من المشاركة

على العموم الموضوع سيصبح فى جزء خاص بذاته فى وقت ما.

سؤال سريع خارج إطار الموضوع

بالنسبة للـ VBA هل من نصائح لتعلم أساسياتها باللغة العربية سواء كان ذلك للإكسس أو للإكسيل

المهم أنا أبحث عن خطوات منهجية لأتعلم الأساسيات [VBA] بشكل صحيح [باللغة العربية] وبعد ذلك يمكن الإعتماد على المصادر الأجنبية الأخرى

تم تعديل هذه المشاركة بواسطة al m3tasem في 26 أغسطس 2009 في 00:39

مذكرات حول تصمبم قواعد البيانات وتطبيقاتها » بقلم الأستاذ / أحمد مبارك الحيقي

#264

السلام عليكــم ورحمـة الله وبركاتــه ،،

ما شاء الله تبارك الله

تقبل الله من الجميع

وتختلج فى صدرى مشاعر لا أعرف إن كانت الكلمات كافية لتعبر عنها ولا أدرى إن كان هنا مكانها 

 

أذكركم جميعا بالقاعدة الربانية:

أصدق الله يصدقك

وهى لجميع المشاركين من أساتذة وطلاب ، مشرفين وخبراء

فلكل من ابتغى أجرا من وراء كلماته ومشاركاته أقول له:

عظِّم نيتك ... فرُب عمل صغير عظمته النية

وتذكر قصة الرجل وغصن الشوك من الطريق ، وكذلك قصة سقى الكلب الذى يلهث من العطش.

وإنى بحمد الله أستبشر خيرا ... ما دام فى أمة الحبيب أمثالكم .. وأراها خطوات صغيرة متسارعة نحو هدف كبير

ألا وهو : أن تسود أمة محمد هذا العالم (عالم الكمبيوتر) وتعلى عليه رايات النور والنفع وعمارة الأرض

{وَابْتَغِ فِيمَا آتَاكَ اللَّهُ الدَّارَ الآخِرَةَ وَلا تَنسَ نَصِيبَكَ مِنَ الدُّنْيَا وَأَحْسِنْ كَمَا أَحْسَنَ اللَّهُ إِلَيْكَ وَلا تَبْغِ الْفَسَادَ فِي الأَرْضِ إِنَّ اللَّهَ لا يُحِبُّ الْمُفْسِدِينَ}

ومن يدرى؟

فكما قام عالم البرامج مفتوحة المصدر (open source) على أكتاف صغيرة

فمن يدرى ماذا نستطيع أن نفعل إذا أخلصنا نوايانا وتوحدت جهودنا وأعددنا ما استطعنا

أكرر 

ما استطعنا

فيا من ترى مكاننا وتسمع كلامنا ولا يخفى عليك شيئ من أمرنا نسألك كما أكرمتنا بهذه الزمرة وبهذا العلم أن تجعله دوما فى طاعتك ورفعة لدينك وإعلاء لكلمتك

أه .. كنت هانسى :)

بخصوص دورة SQL أرى أن يتم الإعلان عنها خارج السلسلة مع وضع إشارة لأول صفحة من دروسها فى السلسلة

وذلك حتى نحقق أقصى استفادة ممكنة ، فتبقى الدورة فى مكانها من السلسلة ، ويتمكن الداخل الجديد من الذهاب لها مباشرة دون المرور على السلسلة كلها ، ويزيد اشتياقه لمعرفة ماتدور حوله السلسة (أصبح من أعضائها) فيتابعها من بدايتها 

لإنى أخشى أن تكون الدورة (إذا وضعت فى مشاركة منفصلة) على حساب السلسلة ونموها والتفاعل معها

جزاكم الله خيرا

أخوكم

slave

{العلم قبل العمل} ... مذكرات حول قواعد تصميم البيانات .

خير الناس أنفعهم للناس

#265

مشكور استاذي احمد وفعلا جاوبت عن اساله كانت دايم ادور في بالي واهية مفهوم لغة الالة 1/0

وشنهو تعنيه واتمنى لو منتعمق فيه اكثر بس المشكله انه دورة على السريع

بالنسبة لاقتراح اخواني انا معاهم في حال كانت دورة متكاملة عن sql وهذا ما اتمناه اما لو كانت دورة على الهامش يعني معلومات سريعة اولية

اعتقد انها راح تخدم موضوعنا من ناحية قواعد البيانات وربطها بالبرامج

لكن ممكن يتم عقد دورة sql متكاملة احسن وهذي وجهة نظري

احاب ارحب باستاذي اكسير الحياة حياك الله استاذي واتمنى تغني موضوعنا بوجهة نظرك الي احنا ما عندنا غنا عنها الله يبارك فيك

تم تعديل هذه المشاركة بواسطة مشارف في 26 أغسطس 2009 في 15:12

#266

....

مشاركة منفصلة لمناسبة خاصة مزدوجة

أستاذنا أحمد مبارك الحيقى

مبروك علينا تخطى مشاركاتك الثلاثمائة ووجود رتبة "عضو فعال" تحت إسمك .. فأنت إضافة للأعضاء الفعالين والرتبة ليست إضافة لك.

وعلى فكرة أنا متابع منذ المشاركة رقم 268 لك

أخى مشارف

نفس التهنئة لك ولنفس السبب .. لكن أنا متابع من عند مشاركتك رقم 285

محمد ندا

تم تعديل هذه المشاركة بواسطة Mohamed Nada في 26 أغسطس 2009 في 19:06

... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...

#267

أخي الأستاذ محمد ندا...

ما شاء الله عليك، دقة متناهية وانتباه لكل التفاصيل، أنت تثبت أنك مدير مخيف، وأنا بدأت أشعر بالشفقة على الذين يعملون في شركتك:)

أشكرك على التهنئة، وأرجو أن أوفق للاستفادة والإفادة في هذا المنتدى الجميل...

بالنسبة لموضوع (السليسلة)، سبق أن فوضت الأستاذ إكسير لاختيار ما يراه مناسباً، وإن كنت أرى (بعد إذن المدير طبعاً، ولأن هذا الرأي لا يتعارض مع رأي المدير محمد ندا) أن اقتراح slave وجيه، ويضرب العصفورين بحجر واحد (لماذا نضرب العصافير؟!)، وهو أن يتم الإعلان عن الدورة خارج السلسلة مع رابط مباشر إلى أول صفحة في الدورة، وبهذا يتم إشعار البقية بوجودها كما أشار الأخ المعتصم...

بالمناسبة، الأخ المعتصم سأل سؤالاً ليس بالسهل، فيما يتعلق بتعلم VBA منهجياً، وأنا أستميحه عذراً في تأجيل الإجابة حتى الانتهاء من دورة SQL، لأنني أنوي بعدها الدخول في عالم البرمجة، والتقديم لهذه اللغة منهجياً، لكن إن كان في عجلة، فهناك العديد من الكتب العربية، منها ما تمت الإشارة إليه في مشاركة قريبة جداً خارج السلسلة (ربما أبحث عنها فيما بعد)، ومنها ما يتوفر في مواقع عديدة مثل:

http://www.kutub.info/index.php

النصيحة الأساسية هنا: تعلم البرمجة، ومعها VBA، ولا تتعلم VBA بدون البرمجة... ربما المزيد عن هذا فيما بعد.

الأخ مشارف: بإذن الله، بعد هذه الدورة، نستفصل قليلاً في أمور البرمجة ولغاتها... أرجو ألا تمل من الانتظار...

والآن، إلى الدورة...

رقم الحلقة (29)

والآن ندخل قليلاً في الجد...

فكرة الوصول إلى البيانات في SQL

إذا كنت قد قرأت الحلقة السابقة بتمعن، فربما وصلت إلى بعض الملحوظات:

SQL هي لغة، والـ C والـ Java هي أيضاً لغات. لكن الوسيط بينك وبين الحاسوب في حالة لغات (مثل VBA) على سبيل المثال، هو برنامج المترجم، أما الوسيط بينك وبين الحاسوب في حالة SQL هو برنامج DBMS الضخم (مثل الأكسس). كما أنه قد تمت الإشارة إلى أن SQL قد صممت منذ البداية من أجل قواعد البيانات العلائقية. هل هذا يعني أن هناك فرقاً ما؟

المتبع معنا من بداية السلسلة ربما يذكر شيئاً عن الصعوبة التي كان يواجهها المبرمج عندما يستخدم اللغات التقليدية قبل SQL، في برمجة تطبيقات قواعد بيانات. مصدر هذه الصعوبة هو أنه كان على المبرمج أن يستخدم ملفات نظام التشغيل مباشرة لحفظ واستعادة البيانات، وهذا يعني كابوساً حقيقياً، لأنه يعني أن على المبرمج التعامل مع التفاصيل الدقيقة (المتعبة) لتنسيق الملفات، وترتيب البيانات حسب هذا التنسيق، ومعرفة أين وكيف تم الحفظ بالضبط من أجل الاستعادة والمعالجة فيما بعد. هذا يعني كما ذكرنا في حلقات سابقة أنه كان على المبرمج التعامل مع الطبقة الفيزيائية لقاعدة البيانات، المتمثلة في الملفات على القرص الصلب. أضف إلى هذا كل أخطاء التكامل التي كان يعاني منها مثل هذا النظام (تحدثنا عنها سابقاً). أضف إلى هذا كل عمليات الإدارة المرهقة التي كانت تقع على عاتق المبرمج (مثل قضايا الأمان، والتزامن). بسبب هذا المستوى الدقيق من التحكم الذي كان مطلوباً من المبرمج، فإنه كان يستخدم لغات برمجة (إجرائية procedural)، وهذا يعني لغات برمجة تتيح للمبرمج تفصيل الكيفية الدقيقة للوصول إلى البيانات التي يحتاجها، ومن ثم معالجتها.

كان الحل لهذه الصعوبة مشابه لما ذكرناه في الحلقة السابقة فيما يتعلق بهروب المبرمج من لغة الآلة إلى لغات أسهل، مع إسناد مهمة الترجمة بين هذه اللغات الأسهل وبين لغة الآلة (التي لن يفهم المعالج سواها) إلى برنامج خاص، أسميناه المترجم أو المجمع. هذا البرنامج هو طبقة وسيطة بين المبرمج وبين التفاصيل الدقيقة للغة الحاسوب. بصورة مشابهة، تم بناء برنامج آخر ليتولى بدلاً من المبرمج التفاصيل الدقيقة لإدارة قاعدة البيانات، والتعامل مع مشاكل حفظ واستعادة البيانات فيزيائياً من ملفات نظام التشغيل، وليجعل حياة مبرمج قواعد البيانات (ومدير قاعدة البيانات) أقل كآبة. طبعاً، تمت تسمية هذا البرنامج نظام إدارة قواعد البيانات DBMS Database Management System. الآن، لم يعد المبرمج مضطراً إلى استخدام لغة إجرائية للوصول إلى البيانات ومعالجتها، لكنه مازال محتاجاً إلى لغة ما للتخاطب مع برنامج إدارة قواعد البيانات. بالنسبة لقواعد البيانات العلائقية، حدث أن أشهر لغة صممت لهذا الغرض هي SQL، وكما لك أن تتصور، فإن هذه اللغة لم تعد (إجرائية)، بل كانت (غير إجرائية non-procedural).

ولكن، ما الذي يعنيه هذا؟ هذا يعني أنك حين تستخدم لغة SQL، أنت لا تحدد التفاصيل الدقيقة لـ (كيف) تصل إلى البيانات، بل تحدد (ماذا) تريد من بيانات، وعلى برنامج إدارة قواعد البيانات أن يتصرف، وأن يحضر لك هذه البيانات بالكيفية التي تروق له. هذا بالمناسبة يعني أنك لا تملك التحكم الكامل بأداء برامجك، وبشكل أو بآخر تقع تحت رحمة برنامج إدارة قواعد بياناتك (ولهذا تتفاضل برامج إدارة قواعد البيانات في الميزات التي توفرها، وفي أدائها، وإذا اخترت واحدة منها، فليس أمامك الكثير لتضيفه).

لحسن الحظ، فإن SQL أصبحت اللغة القياسية التي اعتمدتها برامج إدارة قواعد البيانات، وأصبح لها مواصفات قياسية من منظمات مثل ANSI وISO، على كل منتج لبرنامج إدارة قواعد البيانات أن يوفرها على الأقل. هل يلتزم الجميع بهذه المواصفات؟ هذه نقطة ترجع إلى كل منتج، لكنه على الأقل سيخبرك بماذا التزم، وبماذا لم يلتزم. من أجل ذلك تجد بعض الفروق بين تفاصيل هذه اللغة بين منتج وآخر، لكن الأوامر الأساسية تجدها في كل مكان، وتبقى اللغة واحدة، وإن تعددت الميزات الإضافية، وبعض التفاصيل مثل أنواع البيانات والدوال مثلاً. نسخة أكسس من SQL مثلاً، تسمى Jet SQL. ليس هذا فقط، بل قام منتجو برامج إدارة قواعد البيانات بتزويد SQL بقابلية المعالجة الإجرائية التي تتوفر في اللغات الإجرائية، فأصبحت تجد عبارات التكرار Looping (مثل While ,For)، والتفرع Branching (مثل IF). هذه النسخ الموسعة من SQL تختلف من منتج إلى آخر، ولذلك تختلف أسماؤها. مثلاً، في Oracle، تسمى PL/SQL، وفي MS SQL Server، تسمى T-SQL. في أكسس، يمكن استخدام VBA كلغة إجرائية تعوض نقص SQL في هذا الجانب.

(تمرين عارض اختياري، وليس إجبارياً، فقط للمهتم:

هذه العبارة منسوخة من ملفات مساعة أكسس 2003 عندي:

اقتباس

Microsoft Jet database engine SQL is generally ANSI -89 Level 1 compliant. However, certain ANSI SQL features are not implemented in Microsoft® Jet SQL. With the release of Microsoft Jet version 4.X, the Microsoft OLE DB Provider for Jet exposes more ANSI-92 SQL syntax. Conversely, Microsoft Jet SQL includes reserved words and features not supported in ANSI SQL.

ابحث في ملفات المساعدة عن:

اقتباس

Comparison of Microsoft Jet SQL and ANSI SQL

الآن دعني أوضح ما معنى أن SQL غير إجرائية، وأنها تتيح لك فقط تحديد (ماذا) تريد من بيانات. سأتبع هنا بإذن الله أسلوباً تصويرياً مبسطاً، وإن كان غير مألوف ربما، من أجل توصيل المفهوم.

نحن نعلم أن الوحدة الأساسية لقواعد البيانات العلائقية هي الجدول (أو العلاقة، بالتعبير الرسمي لهذا الموديل). والجدول بدوره يتكون من مجموعة من الأعمدة التي تحدد بنية الجدول، ومن مجموعة من الصفوف التي تمثل أفراد الكائنات التي يمثلها هذا الجدول. الأعمدة لها أسماء، لأنها تمثل خصائص الكائنات التي يمثلها الجدول، وواحد من الأعمدة يستخدم كمفتاح للتمييز بين الصفوف المختلفة (المفتاح الأساسي primary key). المفتاح يعني حقلاً أو أكثر قيمه لا تتكرر في صفين أو أكثر. يمكن تمثيل هذا بالشكل التالي:

post-70171-1251311776_thumb.jpg

حيث يمثل العمود الأول ذو الخط، المفتاح الأساسي.

الفكرة هنا أن نفكر بأعمدة وصفوف فحسب عندما نريد الوصول إلى البيانات باستخدام SQL. فكر بالجدول على أنه مجموعة من الأعمدة، فإذا أردت كل تفاصيل الجدول، أي كل خصائص الكائنات التي يمثلها الجدول، فهذا يعني أنك تريد كل( أعمدة) الجدول، وإذا أردت بعض الخصائص فحسب، فأنت تريد بعض الأعمدة. كذلك إذا اخترت كل أو بعض الخصائص، فربما تريد كل أو بعض الكائنات في الجدول، وهذا يعني أنك تريد كل أو بعض (الصفوف) في الجدول. أكرر: وصولنا إلى البيانات هو عبر أعمدة وصفوف، وكل القيم التي سنحصل عليها هي ناتج تقاطع الأعمدة مع الصفوف.

post-70171-1251311793_thumb.jpg

تتعامل SQL بهذا المبدأ. هي تتيح لك إمكانية اختيار الأعمدة، ثم تحديد بعض الصفوف، عبر أوامر وعبارات خاصة. ثم هي تتيح لك أيضاً ترتيب الصفوف التي اخترتها حسب عمود معين أو أكثر، واستبعاد المكرر من الصفوف إن وجد، وغيرها من العمليات. صفوف، وأعمدة. حتى في عمليات مثل ربط بين جدول وآخر، الفكرة هي لصق أعمدة جدول مع أعمدة جدول آخر. وعملية مثل التوحيد ما هي إلا لصق صفوف مع صفوف (نفس الأعمدة). كل هذا سنقابله إن شاء الله في الحلقات القادمة، لكن الفكرة ينبغي أن تكون واضحة.

لمن لم يكن نام بعد: هل من سؤال؟

(يتبع إن شاء الله)...

تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 26 أغسطس 2009 في 21:41

#268

أخى وأستاذنا أحمد مبارك الحيقى.

جزاك الله خيراً على إطرائك الرقيق ... ولكن ........

لا دقة ولا حاجة يا أستاذنا .. كل الحكاية أننا نحب أناساً فنهتم بهم ونتابعهم .. وأحياناً نتابع ما صغر من شئونهم وما كبر .. وأنا أحبكم فى الله .. والله شاهد.

أعود الآن لقراءة الحلقة.

تحياتى

محمد ندا

... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...

#269

جزاك الله خيراً على إطرائك

ولي ملاحظة بسيطة بالصورة

قمت بتحديد الصف (7) بدل من الصف (6)

أو أن المقصود لا نريد 1 و 2 و 3 و 7

دمت بخير وصحة وسلام

#270

مديرنا محمد الله يبارك فيك وان شاء الله نفيد ونستفيد من المنتدى ههههههههه توني ملاحظ لموضوع عضو فعال

استاذي احمد الدرس اكثر من روعه ويعطيك العافية

سؤالي انه sql يحضر لك البيانات الي تبيها في شكل استعلامات

لكن ايضا نستطيع انشاء جداول عن طريقه بعد صح يعني نستطيع عمل اجراء به هل هذا الاجراء الذي تقصده باضافة اجراءات الى لغة sql

#272

رقم الحلقة (30)

الأخ العزيز sandm... بالفعل، كان ذلك خطأً ناتجاً عن الغفلة (ربما مع نقص السكر في رمضان:))... المعذرة...

أقسام اللغة

يوحي اسم SQL (Structured Query Language لغة الاستعلامات البنيوية) بأن وظيفتها هي فقط استعادة البيانات، لكن الحق أن إمكانياتها أكبر من ذلك بكثير. دعني أوضح هذه النقطة قليلاً حتى نتجنب بعض اللبس، ثم نمضي بعد ذلك إلى إجابة تساؤل الأخ مشارف.

عرفنا أنك ستتعامل مع برنامج إدارة قواعد البيانات، وهو سيقوم عنك بكل التفاصيل، أعني تفاصيل المطلوب منه. كما عرفنا أنك ستحتاج إلى وسيلة ما لتخبره بالمطلوب، وهذه الوسيلة هي لغة SQL. الآن فكر معي، لو كنت ستصمم لغة للتخاطب بينك وبين برنامج إدارة قواعد البيانات، ما الإمكانيات التي يجب أن توفرها هذه اللغة؟

قاعدة البيانات مليئة بالبيانات التي نحتاج إلى وسيلة فعالة وسريعة لاستعادتها، واستخراج معلومات مفيدة منها. هذا يعني أننا بحاجة إلى أوامر في اللغة نستخدمها للاستعلام. ولكن، من أدخل هذه البيانات في قاعدة البيانات أصلاً؟ إذاً، نحن أيضاً بحاجة إلى أوامر لإدخال البيانات في المقام الأول. طبعاً، لو لم يكن في الحياة إلا عمليات إضافة واستعادة لكانت حياة جميلة حقاً، ولكنك بحاجة إلى تعديل مستمر للبيانات المدخلة، بل وحذف بعض ما سبق إدخاله، وهكذا. نحن أيضاً بحاجة إلى أوامر توفرها اللغة من أجل كل ذلك. هل هذا كل شيء؟ لا طبعاً. السؤال البديهي، أنت تدخل البيانات وتعدلها، أو تحذفها، من جداول في قاعدة البيانات. من صمم هذه الجداول؟ ليس برنامج إدارة قواعد البيانات بالتأكيد، وإلا لكنا الآن في الشارع نبيع حلويات رمضان، وليس في المنتدى نناقش تصميم قواعد البيانات. على الرغم من أن برنامج إدارة قواعد البيانات هو الذي (سينفذ) بناء الجداول، لكن تصميم الجداول ستخبره به أنت، وذلك عبر أوامر مناسبة بالطبع. ربما لا أحتاج إلى القول بأنك قد تحتاج إلى حذف بعض الجداول، لكن من المناسب أن أذكرك بأن هناك عمليات أخرى، ليست في بالك الآن، ستحتاج من برنامج إدارة قواعد البيانات أن يقوم بها من أجلك، تتعلق بإدارة المستخدمين مثلاً. أمور مثل إضافة وحذف مستخدم، ومنح صلاحية معينة، وما إلى ذلك. كل هذه المهام تحتاج إلى أوامر مناسبة توفرها لغة التخاطب الوحيدة مع برنامج إدارة قواعد البيانات.

ما الذي يعنيه كل هذا؟ يعني أن إمكانية إنشاء الجداول، ومعالجة البيانات، مثلها مثل إمكانية الاستعلام عن البيانات، كلها جزء من لغة SQL، وليست إضافة. ذكرنا من قبل أن الإضافات تتعلق بإمكانية المعالجة الإجرائية، التي لا توفرها SQL بصورتها الأصلية. مرة أخرى: المعالجة الإجرائية تعني أنك تحدد (كيفية) القيام بمهمة ما، وهذا يعني الخطوات التفصيلية للمهمة. في حالة إنشاء جدول مثلاً، أنت لا تملي لبرنامج إدارة قواعد البيانات (كيف) ينشئ الجدول، ولكنك تخبره فقط (ماذا) تريد أن يتكون منه الجدول. أشياء مثل أسماء الحقول (الأعمدة)، ونوع بياناتها. لكنك لن تخبره بالتفاصيل من قبيل (أين يقع الجدول على القرص الصلب، وما هي الهياكل المستخدمة لحفظ البيانات).

إذاً، أين هي الإضافات الإجرائية التي تتكلم عنها؟ في Oracle، تسمى PL/SQL (يمكنك أن تلاحظ الإضافة الإجرائية procedural في الجزء الأول من الاسم: Procedural Language PL). في SQL Server، تجد T-SQL (Transact SQL). في الأكسس، يمكنك التفكير باللغة VBA على أنه الجزء الإجرائي الذي يعوض نقص Jet SQL. أرجو أن يكون هذا مجيباً عن تساؤل الأخ مشارف. شكراً على السؤال.

من جملة ما سبق، يمكن أن تلاحظ أن هناك عدة أنواع من أوامر SQL، حسب نوع العملية التي تؤديها. الواقع أنهم يقسمون اللغة عادة إلى قسمين أو ثلاثة. لاحظنا مثلاً أنه لا بد أن يكون هناك جزءاً من اللغة يوفر إمكانية إنشاء الجداول، وحذفها، وجزءاً آخر يتعامل أكثر مع البيانات من حيث إدخالها وتعديلها وحذفها وحتى استعادتها. على هذا، من الممكن أن نقسم لغة SQL إلى لغتين فرعيتين:

  • لغة تعريف البيانات Data Definition Language (DDL)
  • لغة معالجة البيانات Data Manipulation Language (DML)
  • أحياناً تجد نوعاً ثالثاً يسمى لغة التحكم بالبيانات Data Control Language (DCL)

القسم الأول يشمل الأوامر الخاصة بتعريف بنية الجداول، وحذفها، أو تعديلها، وإنشاء العلاقات، وربما تعريف المستخدمين وحذفهم والتحكم في صلاحياتهم، وكلمات مرورهم، وتغيير كلمة مرور قاعدة البيانات، وقليل من العمليات الأخرى. لاحظ أننا نتكلم هنا عن بنية أو هيكل الجداول (تعريف الحقول: عددها ونوعها)، ولا نتكلم عن البيانات التي سيحويها الجدول. الجزء الخاص بالتحكم بالمستخدمين قد يصنف أحياناً تحت قسم DCL.

القسم الثاني يشمل كل أوامر معالجة البيانات. هذه المعالجة تضم أربعة أنواع:

  • الاستعلام عن البيانات
  • إضافة البيانات
  • حذف البيانات
  • تعديل البيانات

لاحظ أن هذا القسم يشمل أكثر العمليات استخداماً، ولذلك سنبدأ به إن شاء الله. لاحظ أيضاً أنه كما ذكرنا في الحلقة السابقة، يمكن الوصول إلى البيانات باعتبار الأعمدة والصفوف: في حالة الإضافة، يتم إضافة صفوف بكاملها إلى الجداول، وكذلك في حالة الحذف، تتم عمليات الحذف في صورة صفوف كاملة، أما في حالة التعديل أو الاستعلام، فيمكن الوصول إلى أعمدة محددة من جدول أو أكثر، ويمكن كذلك تحديد صفوف معينة، وبذلك يمكن الوصول حتى إلى خانة واحدة تمثل تقاطع عمود محدد مع صف محدد. ربما لاحظت كذلك أنه من جملة العمليات أعلاه، يمثل الاستعلام العملية الأكثر استخداماً، ليس فقط لأن الناس يدخلون البيانات مرة، ثم يستعيدونها بقية الوقت، ولكن عمليات مثل الحذف والتعديل (وأحياناً الإضافة) تحتاج إلى تحديد البيانات التي ستتم عليها العملية (مثلاً، تحديد الصف الذي سيحذف، أو العمود الذي سيعدل)، وآلية هذا التحديد هي نفسها آلية الاستعلام. من أجل هذا سيكون أول جزء نتناوله بإذن الله، هو الخاص بالاستعلام. في الحقيقة، إذا لم تخرج من هذه الدورة بأكثر من هذا الجزء، فقد خرجت غانماً بإذن الله.

هل أنت مستعد لأول أوامر لغة SQL؟ ولكن، ليس بعد!

على رسلك، حذرتك من أنني أحب المقدمات منذ البداية، لكنني أرجو أنك ستذكر هذه المقدمات يوماً ما، وتقول: لقد كان على حق! كما أنني أعمد إلى تكرار المعلومات من زوايا مختلفة، وفي سياقات مختلفة، لأن ذلك أدعى للفهم. على كل حال، ربما كنت مخطئاً في هذا الأسلوب، لكن حتى أكتشف ذلك، عليك أن تتحمل قليلاً، ربما خرجت من كل هذا الهراء بشيء في النهاية!

ما أود التقديم له هنا هو قليل من الاصطلاحات، حتى نضمن أن بعضنا يفهم بعضاً جيداً فيما بعد، مع التنبيه على أن ترجمة المصطلحات هي من اختياري.

نحن نستخدم لغة SQL في جمل أو عبارات، فنقول: عبارة SQL SQL Statement.

أحياناً، تحوي العبارة جزءاً خاصاً له وظيفة ما، فتشير إلى هذا الجزء على أنه مقطع Clause.

العبارات تتكون من كلمات بالطبع، كلها تسمى كلمات محجوزة reserved words، بعضها أوامر Commands تشكل أساس العبارة، وهناك أجزاء مساعدة منها ما يسمى Predicate (لا ترجمة!)، ومنها ما يسمى عوامل Operators. يكفي أن تعلم ذلك الآن، حتى إذا جئنا على التفاصيل، ذهب كل شيء إلى مكانه المناسب.

الاستعلام عن البيانات

من أجل متابعة الدورة عملياً، عليك أن تنشئ مجموعة من الجداول في أكسس حسب الدرس، ثم تستخدم شاشة تصميم الاستعلامات (معاينة SQL). لا معاينات تصميم بعد اليوم :) إذا كنت لا تعلم ما هي معاينة SQL، فحاول البحث عنها لوحدك :)

post-70171-1251541905_thumb.jpg

عرفنا أن الوصول إلى بيانات جدول في SQL يتم باختيار حقل (عمود) أو أكثر. إذا اخترت حقلاً، فإن الذي سيعيده إليك أكسس كل قيم الحقل التي تمتد من السجل (الصف ) الأول إلى السجل الأخير في الجدول. غالباً أنت لن تحتاج لكل سجلات جدول في استعلام ما، ولذلك بإمكانك أيضاً اختيار مجموعة محددة من السجلات فقط، عبر فلترة سجلات الجدول. بإمكانك بعدها ترتيب هذه السجلات المعادة تنازلياً أو تصاعدياً. هذه العمليات هي موضوع الأسطر التالية.

بما أننا نتحدث عن (الاختيار)، فإن اسماً مناسباً قد تم اختياره للأمر الذي سنستخدمه، وهو SELECT. هذا الأمر هو بطل لغة SQL بلا منازع، ويستخدم كالتالي:

SELECT ... FROM ...

في الفراغ الأول تضع أسماء الحقول التي تريد استعادتها (مفصولة بفاصلة بين كل اسم حقل وآخر)، وفي الفراغ الثاني تحدد الجدول أو الجداول التي تحوي هذه الحقول (أيضاً مفصولة بفاصلة، لكن هذا فيما بعد بإذن الله). مثلاً، نستطيع استعادة أرقام وأسماء ورواتب الموظفين في الجدول السابق باستخدام العبارة التالية:

SELECT EmpNo, EmpName, EmpSal FROM tblEmployee

إذا أردت أن تعطي الحقول أسماء أخرى في الاستعلام الناتج، وهو ما يسمى بالاسم المستعار Alias، فتستطيع استخدام الكلمة المحجوزة AS كالتالي:

SELECT EmpNo AS [رقم الموظف], EmpName AS [اسم الموظف], EmpSal AS [الراتب] FROM tblEmployee

الناتج هو:

post-70171-1251541919_thumb.jpg

بإمكانك أيضاً استعادة كل حقول الجدول دفعة واحدة (بدلاً من كتابتها كلها واحداً واحداً) باستخدام النجمة مكان قائمة الحقول:

SELECT * FROM tbLEmployee

ما دمنا في قائمة الحقول، فمن المناسب التنبيه على أنه يمكنك تطبق العديد من العمليات على الحقول أثناء استعادتها. عندما نتعرض للدوال على اختلاف أنواعها (رياضية، نصية، تواريخ...) بإذن الله، فإننا سنرى هذه الإمكانية عن قرب، لكن كمثال سريع الآن، من الممكن أن نستخدم (+)، التي تلعب دور عامل لصق concatenation operator مع النصوص، ودور عامل الجمع مع الأرقام:

SELECT EmpNO AS [رقم الموظف], "Mr. " + EmpName AS [اسم الموظف], EmpSal + 1000 AS [الراتب مع زيادة 1000]
FROM tblEmployee

الناتج هو:

post-70171-1251541934_thumb.jpg

تمرين:

نستطيع في الحقيقة تضمين حقول وهمية غير موجودة في الجدول، جرب التالي:

SELECT 1, * FROM tblEmployee

أو حتى:

SELECT "رمضان مبارك" FROM tblEmployee

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

بعد اختيار الحقول المطلوبة، يبقى الاحتمال غير كبير في أنك ستحتاج إلى كل سجلات الجدول دفعة واحدة (تذكر أن الجداول التي ستتعامل معها في الحياة العملية ستحوي في الغالب أكثر بكثير من مجرد 14 سجلاً). الوسيلة من أجل فلترة سجلات الجدول هي استخدام مقطع إضافي في عبارة الأمر SELECT، وهذا المقطع يسمى WHERE Cause، ويبدأ (بالمصادفة البحتة) بالكلمة المحجوزة WHERE. هناك أيضاً وسيلة أخرى مفيدة للحد من عدد السجلات المستعادة، لكن كل هذا هو موضوع الحلقة القادمة بإذن الله...

ولمن لم يكن قد غادر بعد: هل من سؤال؟

(يتبع إن شاء الله)...

SQLCourse.rar

تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 29 أغسطس 2009 في 13:44

#273

أخى أحمد مبارك ..

والله أنت فعلاً تستحق الدعاء .. فاللهم وفقك وبارك فى عملك ليصبح خالصاً لوجهه الكريم فى شهر تتضاعف فيه الحسنات ..

وأزادك الله علماً نافعاً..

أخوك نبيل

سبحان الله وبحمده ... سبحان الله العظيم

#274

مشكور استاذي احمد حصلة تمت الاجابة على سؤالي من خلال شرحك

وعندي تساؤلات اضافية في وقته ان شاء الله

وحلوه فكرة اضافة Mr الى الاسم ومبلغ 1000 الى الراتب وايد حلوه الفكره

#275

السلام عليكم ورحمه الله وبركاته

شهر كريم وكل عام وانتم بخير وصحه وسلامه

اخواني الاعزاء انا عضو جديد اتابعكم منذفتره وقدحان الاوان ان اشاركم

فرجاء من الجميع ان يفسحوا لي الطريق والترحيب بي كوني جديد

احمد مبارك .... ماهي قريــــبه يافارس الفرسان *** انت تاج الراس محلك القلب والشريان

ماهمني غير اشفك ياقائدالميدان *** يافع عدن شبوه كريتر المكلاوخـــولان

انت الغالي وقد ارتحت لاسلوبك وانت مبدع ......

شكرا ولك مني اجمل التحيات ................ اخوك ابو عارف ابو ظبي

تم تعديل هذه المشاركة بواسطة ايهاب عثمان في 30 أغسطس 2009 في 10:28

مواضيع مشابهة