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

دورة شاملة في لغة الاستعلام الهيكلية SQL

بدأه ؛ أحمد ؛ في 30 مارس 2010 · 16 رد · 8,555 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

قمت بإعداد دورة في لغة الاستعلام الهيكلية SQL

وقمت باستخدام برنامج ACCESS 2003 في الشرح

أرجو ان لا يكون الموضوع مكررا

وارجو أن يكون مفيدا لكم

واخيرا أرجو به أن أرد جزء ولو يسير مما استفده منكم

وبالطبع هذا الجهد لا يكتمل إلا بملاحظاتكم وتصحيحاتكم على ما ورد فيه

أسأل الله ان ينفعنا بما علمنا وان يعلمنا ما جهلنا

وشكرا

أخوكم أحمد

لغة SQL

مقدمة:

لغة SQL (Structured Query Language) أو لغة الاستعلام الهيكلية تعتبر هي اللغة الأساسية للتعامل مع البيانات داخل قواعد البيانات فهي اللغة التي يتم بها كتابة الاستعلامات وبالتالي نحدد من خلالها المعلومات التي نريد عرضها من قاعدة البيانات التي نتعامل معها.

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

استخدام لغة SQL:

كما قلنا تستخدم لغة SQL كلغة معتمدة للتعامل مع قواعد البيانات مثل (MS Access, SQL Server, MySQL) سواء كنت تستخدم قواعد البيانات في إنشاء تطبيقات ويندوز Windows Applications أو في إنشاء تطبيقات ويب Web Applications وفي هذه الحالة ستحتاج التالي:

1- برنامج لتصميم قواعد البيانات (تطبيقات ويندوز أو تطبيقات ويب)

2- لغة برمجة تعتمد على تقنية (الخادم / العميل) مثل (PHP, ASP) (تطبيقات ويب)

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

وأهم وأشهر أوامر اللغة هي العبارات (select, insert, delete, update) وسيتم تناول هذه الاوامر الأساسية وكذلك أوامر اخرى متقدمة في هذه الدروس بإذن الله تعالى وجميع هذه الاوامر (ولغة SQL بصفة عامة) تساعدنا على التعامل مع قواعد البيانات ولذلك فيهمنا أولا معرفة شيء بسيط عن ما يسمى بقواعد البيانات العلائقية والتي يعتبر برنامج أكسس واحد منها

نظام إدارة قواعد البيانات العلائقية RDBMS:

نظام إدارة قواعد البيانات العلائقية (Relational Database Management System) هو نظام يعتمد على وجود بيانات مترابطة داخل قواعد البيانات وتكون هذه البيانات موضوعة في عناصر من قواعد البيانات تسمى الجداول (ملاحظة كل شيء داخل قاعدة البيانات بما فيها قاعدة البيانات نفسها تسمى عناصر objects ) وبالتالي يتم عمل الجداول ثم يتم إدخال البيانات فيها ثم تستخدم لغة SQL للحصول على معلومات من كل هذه الجداول (ملاحظة يجب أن تحتوي قاعدة البيانات على عدد من الجداول بحد أدنى جدول واحد ولكن لا يمكن عمل قاعدة بيانات بدون جداول)

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

تم تعديل هذه المشاركة بواسطة asn في 30 مارس 2010 في 18:02

#2

بارك الله فيك ، تابع الدروس مشكورا

#3

وبارك فيك أخي الكريم

وشكرا على المرور

#4

سنقوم الآن يتصميم قاعدة بيانات فيها جدول العملاء وجدول الأصناف وجدول الموظفين

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

1- جدول العملاء Customers كالتالي:

0331100603346jae5fz.jpg

2- جدول الأصناف Products كالتالي:

033110060324vj1f18hrrlwav9.jpg

3- جدول الموظفين Employees كالتالي:

0331100603586vg7lb06wchp0m0aj7u.jpg

4- أخيرا نقوم بعمل الجدول الذي سيربط بين الثلاث جداول السابقة وهو جدول الطلبيات Orders كالتالي:

03311006034731j2k2f4c2.jpg

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

والآن نقوم بعمل العلاقات كالتالي:

033110060335oafocoas1vh6uq.jpg

والآن سنقوم بإدخال البيانات التالية في الجداول:

1- جدول العملاء :

0331100603005ugljuj5zl7.jpg

2- جدول المنتجات :

033110060337drgm6tmmbrkbz.jpg

3- جدول الموظفين :

033110060338imay9gy35hf.jpg

وسنترك الآن جدول الطلبيات

#5

العمليات على السجلات:يوجد لدينا أكثر من عملية يمكن إجرائها على سجلات الجداول مثل تحديد مجموعة سجلات أو إضافة سجل أو حذف سجل او تعديله وسنتناول بإذن الله هذه العمليات مع الأمثلة عليها

أولا : استعلام تحديد:

بأمكاننا عمل استعلام تحديد من جدول واحد كما يمكننا عمل استعلام من أكثر من جدول مرتبطين معا.

وسنركز في الجزء التالي على عمل استعلامات باستخدام جدول واحد وليكن جدول العملاء.

اولا : من شاشة قاعدة البيانات سنضغط الاختيار استعلامات Queries:

سنقوم الآن بعمل استعلام تحديد وذلك لعرض بيانات محددة نقوم نحن باختيارها.

ولعمل ذلك نستخدم عبارة select ولعمل ذلك اضغط دبل كلك على رمز create Query In Design view ستظهر لك شاشة إنشاء الاستعلام وفيها شاشة لاختيار الجداول التي تريد إضافتها للاستعلام قم بإلغاء هذه الشاشة دون اختيار أي جدول.

والآن قم بفتح قائمة عرض View واختر منها SQL View أو باستخدام كلك يمين على شاشة الاستعلام.

033110060319g3sybthwoe1.jpg

ستلاحظ تحول الشاشة إلى ملف نصي ومكتوب فيه كلمة select.

والآن قبل كتابة أي شيء نريد أولا معرفة التركيب العام لجملة SELEC.

select Fields  From Table

حيث Fields هو اسماء الحقول التي ترغب في إضافتها للاستعلام و Table هو اسم الجدول المتواجد فيه هذه الحقول.

مثلا لو أردنا إظهار حقل الأسماء من جدول العملاء سنكتب جملة الاستعلام كالتالي:

select CustomerName From Customers;

لاحظ أن جملة SQL تنتهي بعلامة الفاصلة المنقوطة Semicolon

قم الآن بتشغيل الاستعلام وذلك بالضغط على علامة التعجب في شريط الادوات 033110060320a12c6u30y9y5x.jpg واسمها Run. ولاحظ النتيجة:

0331100603192r894j8lu35wcjbh.jpg

كما ترى تم عرض الحقل المستعلم عنه فقط.

ماذا لو أردنا عرض أكثر من حقل ؟؟

نقوم بكتابة جميع الحقول وافصل بين كل حقل والتالي بالفاصلة كالتالي:

select CustomerName, Address From Customers;

لاحظ عند تشغيل الاستعلام يتم عرض حقل الاسماء وكذلك حقل العنوان

وعندما نريد عرض جميع الحقول من الممكن أن نعوض عن أسماء الحقول بعلامة النجمة * كالتالي:

select *  From Customers;

عند تشغيل الاستعلام نجد أن جميع الحقول تم عرضها

ويوجد في جملة select أمر مفيد لعرض البيانات دون تكرار وهو الامر select DISTINCT

مثلا في جدول العملاء نجد أن أكثر من عميل يسكنون في القاهرة فلو أردنا عدم تكرار هذا البيان نستخدم الجملة السابقة.

والصيغة العامة له كالتالي:

select DISTINCT Fields  From Table

قم بكتابة الاستعلام التالي:

select DISTINCT address FROM Customers;

تلاحظ وجود سجلين اثنين فقط والباقي تم حذفهم للتكرار

لاحظ أن لغة SQL ليست حساسة لحالة الأحرف بمعنى أن كلمة select وكلمة SELECT لهما نفس المعنى

تم تعديل هذه المشاركة بواسطة asn في 1 أبريل 2010 في 10:46

1
#6

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

جزاك الله كل خير أخي ASN على المجهود الرائع ، بارك الله فيك ،

نتابعك بكل عيون مفتوحة ، وقلوب داعية لك بالتوفيق والفلاح في الدنيا والآخرة ،

أكرر شكري لك على هذه الدورة الرائعة ،

وإلى مزيد من التقدم والنجاح إن شاء الله تعالى

post-12787-12741339659298.jpg

ومامن يد إلا يد الله فوقها *** وما من ظالم إلا سيبلى بأظلم

تفضل أخي الكريم | موسوعة الحميدي الذهبية | بأجزائها الثلاثة مع هدية الموسوعة .

#7

أضم صوتى غلى صوت صديقى محمد وليد علوش ..

إلى الأمام .. وكلنا آذان صاغية ..

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

#8
hamidymom كتب:

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

جزاك الله كل خير أخي ASN على المجهود الرائع ، بارك الله فيك ،

نتابعك بكل عيون مفتوحة ، وقلوب داعية لك بالتوفيق والفلاح في الدنيا والآخرة ،

أكرر شكري لك على هذه الدورة الرائعة ،

وإلى مزيد من التقدم والنجاح إن شاء الله تعالى

وجزاك بمثل أخي الكريم

وشكرا لك أخي الكريم على الرد المشجع

nababeer كتب:

أضم صوتى غلى صوت صديقى محمد وليد علوش ..

إلى الأمام .. وكلنا آذان صاغية ..

شرفني تواجدك وردك أخي الكريم

#9

تحديد شرط في جملة الاستعلام:

ماذا لو أردنا تحديد شرط يتم على أساسه عرض البيانات؟؟

مثلا لو اردنا أن نعرض بيانات العملاء الموجودين بالقاهرة فقط ؟؟

أو عملاء شركة معينة ؟؟

في هذه الحالة نستخدم مع عبارة SELECT كلمة WHERE وبعدها نحدد الشرط

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

SELECT * FROM Customers where CompanyName = 'المصرية للتجارة';

شاهد النتيجة:

0404101204279uqsr2jgsoj.jpg

لاحظ عند تحديد شرط نص يجب وضعه بين علامات التنصيص المفردة ' '

جرب الآن عمل استعلام يظهر العملاء المتواجدون بالقاهرة.

عمل أكثر من شرط:

يمكننا إضافة أكثر من شرط لنفس الاستعلام وذلك عن طريق استخدام التعبيرين And و Or.

أولا : استخدام التعبير And:

يستخدم التعبير And لاختيار سجل معين ينطبق عليه أكثر من شرط في نفس الوقت مثلا لو أردنا عمل استعلام يظهر جميع العملاء الذين يعملون في " المصرية للتجارة " وفي نفس الوقت يكونون من فرع القاهرة نكتب جملة الاستعلام كالتالي:

SELECT * FROM Customers where CompanyName = 'المصرية للتجارة' AND Address = 'القاهرة';

شاهد النتيجة:

040410120432q43dtxs0ke26tke5fkw.jpg

لاحظ ان عميل فرع الاسكندرية تم حذفه.

ثانيا : استخدام التعبير Or:

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

SELECT * FROM Customers where CompanyName = 'المصرية للتجارة'Or CompanyName= 'الشركة المتحدة';

لاحظ النتيجة:

040410120432h0jgm4ex.jpg

فرز البيانات Order By:

تستخدم جملة Order By لترتيب السجلات على حسب بيانات حقل معين سواء كان الترتيب المطلوب تصاعديا او تنازليا.

والصيغة العامة لاستخدام جمل SQL وعمل الترتيب كالتالي:

SELECT Fields  From Table Order By Field Name (ASC, DESC);

حيث ASC تعطي ترتيبا تصاعديا (من الأصغر للأكبر وهو الوضع الافتراضي) و DESC تعطي ترتيبا تنازليا (من الاكبر للأصغر)

مثلا لو اردنا عرض جميع السجلات مرتبة ترتيبا تصاعديا اعتمادا على اسم العميل نكتب الاستعلام كالتالي:

SELECT * FROM Customers Order By CustomerName ASC;

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

0404101204319bpayupckijfpj0g5n.jpg

أما لو أردنا عمل الترتيب تنازلي فيجب إضافة كلمة DESC بعد الاستعلام كالتالي:

SELECT * FROM Customers Order By CustomerName DESC;

تم تعديل هذه المشاركة بواسطة asn في 4 أبريل 2010 في 22:24

#10

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

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

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

#11
مشارف كتب:

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

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

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

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

العفو أخي الكريم

وبارك الله لك ولوالديك

#12

بارك الله فيك اخى الكريم.. زادك الله علما

اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

#13

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

درس لذيذ وشرح جميل

بارك الله فيك أخي ASN فأنا من المتابعين.

أبومحمد

#14

السلام عليكم أخي الكريم

بارك الله فيك و بجهودك و أرجو لك التوفيق و النجاح

و السلام عليكم

#15

يعطيكم الصحة مواضيع هايلة

اقتباس

 

اقتباس

 

 

 

#16

شرح جيد

أرجو أن تهتم بشرح الاستعلامات الفرعية

والأمثلة عليها

مع الشكر

#17

شكرا جزبل على على الشرح والرجاء ارفاق المثال حتى تعم الفائدة

▲ 1

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…