الصورة عن طريق Freepik
SQL، أو لغة الاستعلام القياسية، هي لغة برمجة لإدارة البيانات ومعالجتها ضمن نظام إدارة قواعد البيانات العلائقية (RDBMS). إنها لغة قياسية تستخدم في العديد من الشركات لمساعدة الشركات في الوصول إلى البيانات بسلاسة. نظرًا لاستخدامه على نطاق واسع، عادةً ما يشير التوظيف إلى لغة SQL باعتبارها إحدى المهارات الضرورية. ولهذا السبب من الضروري التعرف على لغة SQL.
إحدى المشكلات الشائعة التي يواجهها الأشخاص عند تعلم SQL هي فهم الاستعلامات، خاصة عندما يكتبها شخص آخر. سنعمل كفريق واحد في الشركات وغالبًا ما نحتاج إلى قراءة استعلامات SQL الخاصة بهم وفهمها. لذلك، نحن بحاجة إلى التدرب على تفكيك استعلامات SQL وفهمها.
ستستعرض هذه المقالة عملية خطوة بخطوة لقراءة استعلامات SQL وفهمها. كيف نفعل ذلك؟ دعونا ندخل في ذلك.
أول شيء يتعين علينا القيام به عند مواجهة استعلام SQL هو فهم الهدف العام لاستعلامات SQL. لا يعني القصد العام أننا نعرف تمامًا بنية الاستعلام؛ يتعلق الأمر أكثر بالتدفقات الإجمالية.
يجب أن نفهم استعلامات SQL القياسية لفهم استعلام SQL العام. تبدأ معظم استعلامات SQL بـ اختر جملة ومتابعة مع من عند بند. واستمرارًا من هناك، غالبًا ما تتم متابعة الاستعلامات الانضمام, WHERE, GROUP BY, ترتيب حسب، و وجود شروط.
تعتبر البنود المذكورة أعلاه قياسية في استعلامات SQL التي نحتاج إلى فهمها. لكل جملة وظائفها هي:
- اختر: ما هي الأعمدة التي يجب أخذها من الجدول
- من عند: من أي جدول جاءت البيانات
- الانضمام: دمج الجداول مع المعرف المحدد
- WHERE: تصفية البيانات على أساس الحالة
- GROUP BY: تنظيم البيانات بناءً على قيمة العمود والسماح بأداء وظيفة التجميع.
- ترتيب حسب: قم بترتيب ترتيب نتائج البيانات بناءً على العمود المحدد
- وجود: شرط التصفية لوظيفة التجميع التي لا يمكن تحديدها WHERE
هذه هي الجمل القياسية وما يجب أن تجده في البداية عند فهم بنية استعلام SQL العامة. دعونا نستخدم رمز المثال لمعرفة المزيد.
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
عندما تنظر إلى الاستعلام أعلاه، حاول التعرف على الجمل القياسية. سيزودك هذا البند بفهم البيانات التي تم تحديدها (اختر)، من أين هو (من عند و الانضمام) والشرط (WHERE, GROUP BY, ترتيب حسبو وجود).
على سبيل المثال، قراءة الاستعلام أعلاه ستوفر لك فهمًا لما يلي:
- نحاول الحصول على ثلاثة أنواع مختلفة من البيانات: الاسم من جدول يسمى العملاء، والمنتج من جدول يسمى المشتريات، وتجميع أعمدة الأسعار التي لا تحدد مصدر الجدول وبالاسم المستعار Total_price (معلومات من البند اختر).
- ستأتي البيانات الإجمالية من جداول المشتريات والعملاء التي ترتبط معًا باستخدام عمود cust_id من المشتريات وعمود المعرف من جدول العميل (معلومات من الجملة من) و الانضمام).
- سنختار فقط البيانات ذات قيمة عمود الفئة في جدول المشتريات باسم "المطبخ" (المعلومات من البند WHERE),
- مجموعة لوظيفة التجميع بالاسم وعمود المنتج الذي يأتي من الجدول المعني (المعلومات من البند GROUP BY),
- تمت تصفيته أيضًا من مجموع نتيجة دالة التجميع حيث يكون Total_price أكثر من 10000 (معلومات من البند وجود)، و
- قم بترتيب البيانات تنازليًا وفقًا للسعر الإجمالي (المعلومات من البند ترتيب حسب).
هذه هي بنية استعلام SQL العامة التي تحتاج إلى معرفتها وتحديدها. ومن هناك، يمكننا استكشاف المزيد من خلال الاستعلام المتقدم. دعونا ننتقل إلى الخطوة التالية.
سيكون هناك وقت ستواجه فيه استعلامًا معقدًا حيث يكون هناك الكثير اختر الجمل موجودة في نفس الاستعلام. في هذه الحالة يجب أن نفهم النتيجة النهائية للاستعلام أو النتيجة النهائية (الأولى) اختر ترى في الاستعلام. المفتاح هو معرفة ما يريد أن يكون عليه إخراج الاستعلام.
دعونا نستخدم رمزًا أكثر تعقيدًا مثل الكود أدناه.
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
يبدو الاستعلام أكثر تعقيدًا وأطول الآن، لكن التركيز الأولي يجب أن يكون على السؤال النهائي تحديد، والذي يبدو أنه يحاول إنتاج إجمالي إنفاق العميل وتاريخ الشراء. حاول تقييم النتيجة النهائية التي تريدها وتقسيمها من هناك.
لدينا فكرة عن النتيجة يجب أن تكون من الاستعلامات. الجزء التالي هو معرفة ما هي شروط المباراة النهائية اختر نكون. شرط الشروط ومنها WHERE, GROUP BY, ترتيب حسبو وجود كانوا هم الذين يتحكمون في نتيجة البيانات الإجمالية.
حاول قراءة وفهم شروط استعلامنا، وسوف نفهم بشكل أفضل النتيجة النهائية لاستعلامنا. على سبيل المثال، في استعلام SQL السابق، الشرط النهائي هو فقط ترتيب حسب. وهذا يعني أنه سيتم ترتيب النتيجة النهائية حسب سعر المنتج الإجمالي بترتيب تنازلي.
إن معرفة الشروط النهائية ستساعدك على فهم جزء كبير من الاستعلام والهدف العام للاستعلام.
وأخيرًا، علينا أن نفهم من أين تأتي البيانات. وبعد أن نعرف البيانات التي يجب اختيارها وشروط الحصول عليها، علينا أن نفهم المصدر. الاخير الانضمام جملة من شأنها أن تعطينا فهمًا لكيفية تفاعل الجداول وتدفق البيانات.
على سبيل المثال، يُظهر الاستعلام المعقد السابق أننا قمنا بتنفيذ عملية الانضمام مرتين. وهذا يعني أننا استخدمنا ثلاثة مصادر بيانات على الأقل للحصول على النتيجة النهائية. قد تكون هذه المعلومات ضرورية في الخطوات اللاحقة لفهم كيفية الحصول على كل مصدر بيانات بشكل أكبر، خاصة عندما يأتي مصدر البيانات من الاستعلام الفرعي.
بعد فهم كيف يجب أن تكون النتيجة النهائية ومن أين أتت، نحتاج إلى إلقاء نظرة فاحصة على التفاصيل. من هنا، سنعود إلى كل استعلامات فرعية ونفهم سبب تنظيمها على هذا النحو.
ومع ذلك، فإننا لا نحاول أن ننظر إليها في الهياكل من أعلى إلى أسفل. بدلاً من ذلك، يجب أن نحاول إلقاء نظرة على الاستعلامات الفرعية الأقرب إلى النتيجة النهائية، وننتقل إلى الاستعلامات الأبعد عن النتيجة النهائية. من مثال الكود أعلاه، يجب أن نحاول فهم هذا الكود أولاً:
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
ثم ننتقل إلى الكود الأبعد وهو هذا:
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
يمكننا تتبع عملية تفكير المؤلف بوضوح عندما نقوم بتقسيم كل استعلام فرعي من الأقرب إلى النتيجة إلى الأبعد.
حاول تكرار العملية المذكورة أعلاه إذا كنت بحاجة إلى مساعدة في فهم كل استعلام فرعي. مع بعض الممارسة، سيكون لديك تجربة أفضل في قراءة الاستعلام وفهمه.
قراءة وفهم استعلامات SQL هي مهارة يجب أن يتمتع بها الجميع في العصر الحديث، حيث تتعامل معها كل شركة. باستخدام الدليل التالي خطوة بخطوة، سيكون لديك وقت أفضل لفهم استعلامات SQL المعقدة. تتضمن الخطوات ما يلي:
- فهم البنية العامة لاستعلام SQL
- فهم الاختيار النهائي
- فهم بند الشروط النهائية
- فهم الانضمام النهائي
- عكس ترتيب القراءة والتكرار
كورنليوس يودا ويجايا هو مدير مساعد لعلوم البيانات وكاتب بيانات. أثناء عمله بدوام كامل في Allianz Indonesia ، يحب مشاركة نصائح حول Python و Data عبر وسائل التواصل الاجتماعي وكتابة الوسائط.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :يكون
- :ليس
- :أين
- $ UP
- 12
- 17
- 9
- a
- حول المستشفى
- فوق
- الوصول
- وفقا
- متقدم
- بعد
- تجميع
- أليانز
- السماح
- an
- و
- آخر
- هي
- البند
- AS
- تقييم
- المساعد
- At
- المؤلفة
- على أساس
- BE
- لان
- البداية
- أقل من
- أفضل
- استراحة
- الأعمال
- لكن
- by
- تسمى
- أتى
- CAN
- لا تستطيع
- حقيبة
- الفئة
- بوضوح
- أقرب
- الكود
- عمود
- الأعمدة
- دمج
- تأتي
- يأتي
- آت
- مشترك
- الشركات
- حول الشركة
- مجمع
- حالة
- الشروط
- استمرار
- ذو شاهد
- cs
- زبون
- العملاء
- البيانات
- علم البيانات
- قاعدة البيانات
- المخصصة
- تفاصيل
- مختلف
- do
- لا
- لا
- إلى أسفل
- كل
- توظيف
- لقاء
- لقاء
- تماما
- عصر
- خاصة
- أساسي
- كل
- كل شخص
- مثال
- يوجد
- الخبره في مجال الغطس
- اكتشف
- تصفية
- نهائي
- الاسم الأول
- تدفق
- يطفو
- تركز
- اتباع
- يتبع
- متابعيك
- في حالة
- تبدأ من
- وظيفة
- وظائف
- إضافي
- العلاجات العامة
- دولار فقط واحصل على خصم XNUMX% على جميع
- منح
- تجمع
- توجيه
- يملك
- وجود
- he
- مساعدة
- هنا
- تاريخ
- كيفية
- HTTPS
- ID
- معرف
- تحديد
- if
- in
- تتضمن
- بما فيه
- أندونيسيا
- معلومات
- في البداية
- تبصر
- بدلًا من ذلك
- نية
- تفاعل
- إلى
- IT
- الانضمام
- JPG
- KD nuggets
- القفل
- أنواع
- علم
- لغة
- الى وقت لاحق
- تعلم
- تعلم
- الأقل
- مثل
- لينكدين:
- يعد
- بحث
- يحب
- في الأساس
- إدارة
- النظام الإداري
- مدير
- إدارة
- التلاعب
- كثير
- تعني
- يعني
- الوسائط
- تقدم
- الأكثر من ذلك
- أكثر
- خطوة
- يتحرك
- الاسم
- ضروري
- حاجة
- التالي
- الآن
- of
- غالبا
- on
- ONE
- منها
- فقط
- or
- طلب
- لنا
- الناتج
- الكلي
- جزء
- مجتمع
- تنفيذ
- شخص
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- ممارسة
- سابق
- السعر
- مشاكل
- عملية المعالجة
- إنتاج
- المنتج
- برمجة وتطوير
- تزود
- شراء
- مشتريات
- بايثون
- الاستفسارات
- سؤال
- عرض
- نادي القراءة
- كرر
- هؤلاء
- نتيجة
- عكس
- s
- نفسه
- علوم
- انظر تعريف
- يبدو
- حدد
- مختار
- مشاركة
- ينبغي
- يظهر
- هام
- مهارة
- مهارات
- بسلاسة
- So
- العدالة
- وسائل التواصل الاجتماعي
- بعض
- مصدر
- مصادر
- محدد
- محدد
- الإنفاق
- SQL
- معيار
- بداية
- خطوة
- خطوات
- بناء
- منظم
- الهياكل
- مجموع
- نظام
- جدول
- اتخذت
- فريق
- من
- أن
- •
- المصدر
- من مشاركة
- منهم
- هناك.
- هم
- شيء
- فكر
- ثلاثة
- عبر
- الوقت
- نصائح
- إلى
- سويا
- الإجمالي
- مسار
- محاولة
- مرتين
- فهم
- فهم
- us
- تستخدم
- مستعمل
- استخدام
- عادة
- قيمنا
- بواسطة
- سير
- يريد
- we
- حسن
- ابحث عن
- متى
- التي
- في حين
- لماذا
- على نحو واسع
- سوف
- مع
- في غضون
- للعمل
- عامل
- سوف
- كنت لأعطي
- كاتب
- جاري الكتابة
- لصحتك!
- زفيرنت