العودة إلى المدونة

نظرة عامة على الاستعلامات في MySQL

نظرة عامة على الاستعلامات في MySQL

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

ما هي قاعدة البيانات؟

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

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

في هذا الدليل، سنعرفك على MySQL ونناقش كيفية العمل مع الاستعلامات في MySQL. فلنبدأ!

المتطلبات الأساسية

لمتابعة هذا البرنامج التعليمي، ستحتاج إلى ما يلي:

الخطوة 1 — إنشاء قاعدة بيانات وإعدادها

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

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

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

أولاً، افتح MySQL كمستخدم جذر (root):

ثم، قم بإنشاء قاعدة بيانات عن طريق تشغيل الأمر التالي:

بعد ذلك، دعنا نستخدم قاعدة البيانات الخاصة بنا باستخدام الأمر التالي:

بعد ذلك، سنقوم بإنشاء جداول في قاعدة البيانات الخاصة بنا. قم بتسمية الجدول الأول باسم celebration. سيحتوي جدولنا على أعمدة لأسماء أصدقائنا (name)، والبطولات التي فازوا بها (wins) وأيضًا عمود لـ أفضل وقت (time):

سنقوم بعد ذلك بملء جدولنا بالبيانات:

ثم قم بإنشاء جدول آخر داخل قاعدة البيانات الخاصة بنا لتخزين معلومات حول أنشطة أعياد الميلاد المفضلة لديهم. سنقوم بإنشاء جدول يسمى vacation ويحتوي على الأعمدة التالية:

القائمة

التفاصيل

name:

تخزين اسم كل صديق.

birthdate:

يتتبع تاريخ ميلاد كل فرد.

activity:

يحتفظ بسجل لنشاطهم المفضل.

Destination:

يخزن معلومات الوجهة المفضلة لكل فرد.

meal:

يتتبع الوجبة المفضلة التي يحبها الفرد.

ملء الجدول بالبيانات:

لقد انتهيت الآن من إعداد قاعدة البيانات الخاصة بك.

الخطوة 2 — البدء مع عبارات SELECT

تبدأ الاستعلامات في SQL عادةً بـ SELECT. وتُستخدم في الاستعلامات لتحديد الأعمدة في الجدول التي يجب إرجاعها مع النتائج. يجب أن يتضمن الاستعلام دائمًا أيضًا FROM، والتي تُستخدم لتحديد الجدول الذي سيقوم الاستعلام بالبحث فيه.

تتبع الاستعلامات الصيغة التالية:

سنستخدم صيغة الاستعلام لإرجاع عمود meal من جدول vacation:

سيكون مخرجنا كما يلي:

يمكنك أيضًا تحديد أعمدة متعددة باستخدام فاصلة للفصل بينها:

المخرجات:

يمكنك أيضًا استخدام asterisk (*) إذا كنت تريد تمثيل جميع الأعمدة في الجدول:

المخرجات:

إذا كنت تريد تصفية السجلات التي تستوفي شرطًا معينًا، فستستخدم WHERE. يتم استبعاد الصفوف التي لا تستوفي الشرط المحدد من النتائج. تستخدم عبارة WHERE الصيغة التالية:

هو عامل مقارنة يحدد كيفية مقارنة العمود المحدد بالقيمة. تشمل عوامل المقارنة الشائعة في SQL ما يلي:

العامل

الاستخدام

=

المساواة

!=

عدم المساواة

<

أصغر من

>

أكبر من

<=

أصغر من أو يساوي

>=

أكبر من أو يساوي

BETWEEN

يختبر ما إذا كانت القيمة تقع ضمن النطاق المحدد.

IN

يختبر ما إذا كانت قيمة الصف موجودة في مجموعة من القيم المحددة.

EXISTS

يختبر ما إذا كان الصف موجودًا

LIKE

يختبر ما إذا كانت القيمة تطابق السلسلة النصية المحددة

IS NULL

يختبر القيم الفارغة (null)

IS NOT NULL

يختبر جميع القيم بخلاف NULL

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

سيعيد الاستعلام بعد ذلك:

يدعم SQL استخدام الأحرف البديلة (wildcard characters)، والتي تعد مفيدة بشكل خاص في WHERE جمل. علامات النسبة المئوية ( %) تشير إلى صفر أو أكثر من الأحرف غير المعروفة، بينما تشير الشرطات السفلية ( _) تشير إلى حرف غير معروف واحد. هذه الأحرف مفيدة إذا كنت تريد العثور على إدخال معين في جدول ولكنك غير متأكد من هذا الإدخال.

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

سيعيد الاستعلام:

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

الخطوة 3 — مقدمة في الدوال التجميعية

عند العمل مع البيانات، لا ترغب دائماً في رؤية البيانات نفسها. بل تفضل الحصول على معلومات حول البيانات. من خلال إصدار استعلام SELECT، يمكنك تفسير أو إجراء حسابات على بياناتك باستخدام صيغة SQL. ويُشار إليها باسم الدوال التجميعية.

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

سيتم إرجاع النتائج التالية:

MIN تُستخدم للعثور على أصغر قيمة داخل عمود محدد:

سيقوم الاستعلام بإخراج:

MAX تُستخدم للعثور على أكبر قيمة رقمية في عمود معين:

المخرج المتوقع هو:

يمكن استخدام كل من الدالتين MIN و MAX على البيانات الرقمية والأبجدية. عند تطبيقها على عمود من قيم السلاسل النصية، فإن الدالة MIN تعيد القيمة الأولى أبجدياً.

تعيد الدالة MIN القيمة الأولى أبجدياً:

إليك ما سيكون عليه المخرج:

تعيد الدالة MAX القيمة الأخيرة أبجدياً:

سيكون المخرج كالتالي:

الخطوة 4 — معالجة مخرجات الاستعلام

صيغة أخرى شائعة الاستخدام هي GROUP BY. وتُستخدم عند إجراء دالة تجميعية على عمود واحد ولكن فيما يتعلق بالقيم المطابقة في عمود آخر:

سيكون المخرج:

لتصنيف نتائج الاستعلام، استخدم صيغة ORDER BY. يتم فرز القيم الرقمية تصاعديًا بشكل افتراضي، بينما يتم فرز القيم النصية أبجديًا. يسرد الاستعلام أدناه عمودي name و birthdate، ولكنه يفرز النتائج حسب birthdate:

سيكون المخرج كما يلي:

المخرج بترتيب تصاعدي، وللفرز بترتيب تنازلي قم بإنهاء الاستعلام بالكلمة DESC:

ألقِ نظرة على المخرج:

تمت إضافة صيغة HAVING إلى SQL لتوفير وظيفة مماثلة لصيغة WHERE مع التوافق أيضًا مع الدوال التجميعية. الفرق بين هاتين الصيغتين هو أن WHERE مخصصة للإشارة إلى السجلات الفردية و HAVING تشير إلى سجلات المجموعات. وتحقيقًا لهذه الغاية، يجب أن تكون صيغة GROUP BY موجودة كلما تم استخدام صيغة HAVING:

سيخرج الاستعلام:

الـ COUNT هو 1 للجميع لأنه لا يوجد صديقان يفضلان نفس النشاط.

الخطوة 5 — الاستعلام عن جداول متعددة

يمكن استخدام صيغة JOIN في نتيجة الاستعلام لدمج الصفوف من جدولين أو أكثر. وهي تحقق ذلك من خلال تحديد موقع عمود ذي صلة بين الجداول وفرز المخرجات بشكل مناسب.

SELECT تتبع عبارات SELECT التي تتضمن صيغة JOIN الصيغة التالية:

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

سيكون الناتج:

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

بعد ذلك، أعد تشغيل عبارة SELECT مع عبارة JOIN:

نظرًا لأن جدول celebration لا يحتوي على أي إدخال لـ Peter وجدول vacation لا يحتوي على أي إدخال لـ Ella، فإن هذه السجلات غائبة.

يمكننا إرجاع جميع السجلات من أحد الجداول باستخدام عبارة JOIN خارجية. يمكن أن تكون هذه إما LEFT JOIN أو RIGHT JOIN. ترجع عبارة LEFT JOIN جميع السجلات من الجدول الأيسر والسجلات المتطابقة فقط من الجدول الأيمن. الجدول الأيسر في سياق عمليات الربط الخارجية هو الجدول المشار إليه بواسطة عبارة FROM، والجدول الأيمن هو أي جدول يتم الإشارة إليه بعد عبارة JOIN.

قم بتشغيل الاستعلام مرة أخرى ولكن باستخدام عبارة LEFT JOIN:

سيعيد الأمر جميع السجلات من الجدول الأيسر ( celebration) حتى لو لم يكن له سجل مطابق في الجدول الأيمن. عندما لا يكون هناك سجل مطابق في الجدول الأيمن، يتم إرجاعه كـ NULL:

هذه الآن هي عبارة RIGHT JOIN:

سيتم إرجاع جميع القيم من الجدول الأيمن (vacation). نظرًا لأن birthdate الخاص بـ Peter مسجل في الجدول الأيمن وليس في الجدول الأيسر، فإن أعمدة name و wins ستُرجع قيم NULL في تلك الصفوف:

يمكنك استخدام عبارة UNION بدلاً من JOIN للاستعلام عن السجلات من جداول متعددة. يختلف عامل UNION عن عبارة JOIN في أنه يدمج نتائج عبارَتي SELECT في عمود واحد بدلاً من طباعة النتائج من جداول متعددة كأعمدة فريدة باستخدام عبارة SELECT واحدة.

يمكنك تشغيل هذا الاستعلام للتوضيح:

يزيل الاستعلام الإدخالات المكررة. هذا هو السلوك الافتراضي لعامل UNION :

لإرجاع كافة الإدخالات (بالإضافة إلى المكررة) استخدم عامل UNION ALL :

المخرجات:

الاستعلامات الفرعية هي طريقة أخرى للاستعلام من جداول متعددة. الاستعلامات الفرعية هي استعلامات يتم تضمينها داخل استعلام آخر (تُعرف أيضًا بالاستعلامات الداخلية أو المتداخلة). وهي مفيدة عندما تريد مقارنة نتائج استعلام بنتائج دالة تجميعية منفصلة.

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

سيرجع الاستعلام:

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

سيرجع الاستعلام:

تحتوي هذه العبارة على استعلام فرعي داخل استعلام فرعي.

الخاتمة

يعد إنشاء الاستعلامات أحد أكثر المهام شيوعًا في إدارة قواعد البيانات. هناك العديد من أدوات إدارة قواعد البيانات مثل phpMyAdmin و pgAdmin التي يمكنك استخدامها للعمل مع الاستعلامات وعرض نتائجها بشكل مرئي. ومع ذلك، فإن عبارة SELECT من سطر الأوامر هي الخيار الأكثر تفضيلاً نظرًا لسهولة استخدامها والتحكم الممتاز الذي توفره.

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

حوسبة سعيدة!

author

Preslav Dobrev

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.