يا هلا والله! اليوم بنتكلم عن أساس SQL اللي هو كيف تسحب البيانات. الموضوع سهل وممتع، ركز معي.
لما تبغى تشوف بياناتك اللي مخزنها في قاعدة البيانات، تستخدم أمر SELECT. هذا الأمر هو قلب SQL كله، ومنه تبدأ رحلتك في التعامل مع البيانات.
1. الاستعلام عن كل شي (SELECT *)
إذا تبغى تسحب كل الأعمدة من جدول معين، تستخدم النجمة *. يعني "جب لي كل شي".
مثال لو عندك جدول اسمه الموظفين، وتبغى تشوف كل بياناتهم:
2. اختيار أعمدة محددة
في الغالب، ما تحتاج كل الأعمدة. هنا تحدد بالضبط وش تبغى تشوفه. هذا أفضل لأداء قاعدة البيانات.
مثال: لو تبغى بس اسم الموظف وراتبه من جدول الموظفين:
3. تصفية البيانات (WHERE)
هنا تبدأ المتعة! WHERE تخليك تسحب بس البيانات اللي تطابق شروط معينة. كأنك تقول "جب لي بس اللي كذا وكذا".
أمثلة على الشروط:
- المساواة:
الراتب = 5000 - عدم المساواة:
العمر != 30(أو<> 30) - أكبر من / أصغر من:
الراتب > 10000,العمر < 25 - بين قيمتين:
الراتب BETWEEN 5000 AND 10000 - ضمن قائمة:
القسم IN ('IT', 'HR') - مطابقة نمط (مهم للبحث عن نصوص):
الاسم LIKE 'محمد%'(يبدأ بـ "محمد") أوالمدينة LIKE '%جدة%'(تحتوي على "جدة")
و تقدر تجمع الشروط باستخدام AND و OR:
أو:
ملاحظة: انتبه لنوع البيانات لما تستخدم
WHERE. النصوص حطها بين علامات اقتباس فردية ('نص')، والأرقام لا. التواريخ بعد بين اقتباسات فردية ('2023-01-01').
4. ترتيب النتائج (ORDER BY)
تبغى تشوف البيانات مرتبة؟ ORDER BY هي الحل. تقدر ترتب تصاعدي ASC (وهو الافتراضي) أو تنازلي DESC.
مثال: رتب الموظفين حسب الراتب من الأعلى للأقل:
و تقدر ترتب بأكثر من عمود:
5. سحب عدد معين من النتائج (LIMIT / TOP)
أحياناً ما تحتاج كل النتائج، بس تبغى أول كم صف. هنا يجي دور LIMIT (في MySQL, PostgreSQL, SQLite) أو TOP (في SQL Server).
للمثال (MySQL, PostgreSQL):
للمثال (SQL Server):
6. القيم الفريدة (DISTINCT)
لو تبغى تشوف القيم الفريدة بدون تكرار في عمود معين، استخدم DISTINCT.
مثال: عشان تعرف وش الأقسام الموجودة في شركة، بدون تكرار:
7. الدوال التجميعية و GROUP BY
هنا تدخل في عالم الإحصائيات والتقارير. الدوال التجميعية (Aggregate Functions) تحسب لك أشياء زي المجموع، المتوسط، العدد، أكبر قيمة، أصغر قيمة.
COUNT(): عدد الصفوف.SUM(): مجموع القيم.AVG(): متوسط القيم.MIN(): أقل قيمة.MAX(): أعلى قيمة.
وغالباً تستخدمها مع GROUP BY عشان تجمع النتائج حسب عمود معين. مثلاً، كم متوسط رواتب كل قسم؟
ولو تبغى تصفّي على نتائج GROUP BY نفسها، تستخدم HAVING (مثل WHERE لكن على المجموعات بعد التجميع).
وبكذا نكون غطينا أساسيات الاستعلام عن البيانات في SQL. هذي هي اللبنة الأساسية لكل شي بتسويه في قواعد البيانات. طبق الأمثلة وجرب بنفسك عشان تثبت المعلومة. بالتوفيق!