كيف تكتب استفسارات بسيطة
نشرت: 2022-03-21كيفية الاستعلام عن قاعدة بيانات SQL:
- تأكد من أن لديك تطبيق إدارة قواعد البيانات (مثل MySQL Workbench ، Sequel Pro).
- إذا لم يكن كذلك ، فقم بتنزيل تطبيق إدارة قاعدة البيانات واعمل مع شركتك لتوصيل قاعدة البيانات الخاصة بك.
- فهم قاعدة البيانات الخاصة بك وترتيبها.
- اكتشف الحقول الموجودة في جداولك.
- ابدأ في كتابة استعلام SQL لسحب البيانات المطلوبة.
هل سمعت من قبل عن SQL؟ ربما تكون قد سمعت عنها في سياق تحليل البيانات ، لكنك لم تعتقد أبدًا أنها ستنطبق عليك كمسوق. أو ربما فكرت ، "هذا لمستخدمي البيانات المتقدمين. لا يمكنني القيام بذلك أبدا."
حسنًا ، لا يمكن أن تكون مخطئًا أكثر! تعتمد أنجح جهات التسويق على البيانات ، وأحد أهم أجزاء الاعتماد على البيانات هو جمع البيانات من قواعد البيانات بسرعة. SQL هي الأداة الأكثر شيوعًا للقيام بذلك.
إذا كانت شركتك تقوم بالفعل بتخزين البيانات في قاعدة بيانات ، فقد تحتاج إلى تعلم SQL للوصول إلى البيانات. لكن لا داعي للقلق - فأنت في المكان المناسب للبدء. دعنا نقفز مباشرة.
لماذا نستخدم SQL؟
SQL (تُنطق غالبًا مثل "تكملة") تعني لغة الاستعلام الهيكلية ، ويتم استخدامها عندما يكون لدى الشركات الكثير من البيانات التي تريد معالجتها. يكمن جمال SQL في أن أي شخص يعمل في شركة تخزن البيانات في قاعدة بيانات علائقية يمكنه استخدامها. (والفرص هي لك.)
على سبيل المثال ، إذا كنت تعمل في شركة برمجيات وترغب في سحب بيانات الاستخدام من عملائك ، فيمكنك القيام بذلك باستخدام SQL. إذا كنت تساعد في تطوير موقع ويب لشركة تجارة إلكترونية لديها بيانات حول مشتريات العملاء ، فيمكنك استخدام SQL لمعرفة العملاء الذين يشترون المنتجات. بالطبع ، هذه ليست سوى عدد قليل من العديد من التطبيقات الممكنة.
فكر في الأمر بهذه الطريقة: هل سبق لك أن فتحت مجموعة كبيرة جدًا من البيانات في Excel ، فقط لتجميد جهاز الكمبيوتر الخاص بك أو حتى إيقاف تشغيله؟ يسمح لك SQL بالوصول إلى أجزاء معينة فقط من بياناتك في وقت واحد حتى لا تضطر إلى تنزيل جميع البيانات في ملف CSV ، ومعالجتها ، وربما تحميل Excel بشكل زائد. بمعنى آخر ، تهتم SQL بتحليل البيانات التي قد تكون معتادًا على القيام بها في Excel.
كيفية كتابة استعلامات SQL بسيطة
قبل أن نبدأ ، تأكد من أن لديك تطبيقًا لإدارة قواعد البيانات سيسمح لك بسحب البيانات من قاعدة البيانات الخاصة بك. تتضمن بعض الخيارات MySQL أو Sequel Pro.
ابدأ بتنزيل أحد هذه الخيارات ، ثم تحدث إلى قسم تكنولوجيا المعلومات بشركتك حول كيفية الاتصال بقاعدة البيانات الخاصة بك. سيعتمد الخيار الذي تختاره على النهاية الخلفية لمنتجك ، لذا تحقق مع فريق المنتج الخاص بك للتأكد من تحديد الخيار الصحيح.
فهم التسلسل الهرمي لقاعدة البيانات الخاصة بك
بعد ذلك ، من المهم أن تعتاد على قاعدة البيانات الخاصة بك وتسلسلها الهرمي. إذا كانت لديك قواعد بيانات متعددة ، فستحتاج إلى التركيز على موقع البيانات التي تريد العمل بها.
على سبيل المثال ، لنتخيل أننا نعمل مع قواعد بيانات متعددة حول الأشخاص في الولايات المتحدة. أدخل الاستعلام "إظهار قواعد البيانات ؛". قد تظهر النتائج أن لديك قاعدتان من قواعد البيانات لمواقع مختلفة ، بما في ذلك واحدة لنيو إنجلاند.
داخل قاعدة البيانات الخاصة بك ، سيكون لديك جداول مختلفة تحتوي على البيانات التي تريد العمل بها. باستخدام نفس المثال أعلاه ، لنفترض أننا نريد معرفة المعلومات الواردة في إحدى قواعد البيانات. إذا استخدمنا الاستعلام "SHOW TABLES in NewEngland؛" ، فسنجد أن لدينا جداول لكل ولاية في نيو إنجلاند: people_connecticut و people_maine و people_massachusetts و people_newhampshire و people_rhodeisland و people_vermont.
أخيرًا ، تحتاج إلى معرفة الحقول الموجودة في الجداول. الحقول هي أجزاء معينة من البيانات التي يمكنك سحبها من قاعدة البيانات الخاصة بك. على سبيل المثال ، إذا كنت تريد سحب عنوان شخص ما ، فقد لا يكون اسم الحقل هو "العنوان" فقط - بل يمكن فصله إلى العنوان_المدينة ، والعنوان_الحالة ، والعنوان_الرقمي. لمعرفة ذلك ، استخدم الاستعلام "وصف people_massachusetts ؛". يوفر هذا قائمة بجميع البيانات التي يمكنك سحبها باستخدام SQL.
لنقم بمراجعة سريعة للتسلسل الهرمي باستخدام مثال نيو إنجلاند:
- قاعدة بياناتنا هي: NewEngland.
- جداولنا داخل قاعدة البيانات هذه هي: people_connecticut و people_maine و people_massachusetts و people_newhampshire و people_rhodeisland و people_vermont.
- تشمل الحقول الخاصة بنا في جدول people_massachusetts: العنوان_المدينة ، والعنوان_الحالة ، والرمز البريدي للعنوان ، ولون الشعر ، والعمر ، والاسم_الأول ، والاسم_الأخير.
الآن ، دعنا نكتب بعض استعلامات SQL البسيطة لسحب البيانات من قاعدة بيانات NewEngland الخاصة بنا.
استعلامات SQL الأساسية
لمعرفة كيفية كتابة استعلام SQL ، دعنا نستخدم المثال التالي:
من هم الأشخاص الذين لديهم شعر أحمر في ولاية ماساتشوستس والذين ولدوا في عام 2003 مرتبة حسب الترتيب الأبجدي؟
تحديد
تختار SELECT الحقول التي تريد عرضها في الرسم البياني الخاص بك. هذه هي المعلومات المحددة التي تريد سحبها من قاعدة البيانات الخاصة بك. في المثال أعلاه ، نريد العثور على الأشخاص المناسبين لبقية المعايير.
هنا هو استعلام SQL الخاص بنا:
تحديد
الاسم الاول،
اللقب
؛
من
من يحدد الجدول الذي تريد سحب البيانات منه. في القسم السابق ، علمنا أن هناك ستة جداول لكل ولاية من الولايات الست في نيو إنجلاند: people_connecticut ، و people_maine ، و people_massachusetts ، و people_newhampshire ، و people_rhodeisland ، و people_vermont. نظرًا لأننا نبحث عن أشخاص في ماساتشوستس على وجه التحديد ، فسوف نسحب البيانات من هذا الجدول المحدد.
هنا هو استعلام SQL الخاص بنا:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
؛
أين
يتيح لك WHERE تصفية استعلام ليكون أكثر تحديدًا. في مثالنا ، نريد تصفية استعلامنا ليشمل فقط الأشخاص ذوي الشعر الأحمر الذين ولدوا في عام 2003. لنبدأ بمرشح الشعر الأحمر.
هنا هو استعلام SQL الخاص بنا:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
؛
كان من الممكن أن يكون hair_color جزءًا من عبارة SELECT الأولية الخاصة بك إذا كنت تريد إلقاء نظرة على كل الأشخاص في ماساتشوستس جنبًا إلى جنب مع لون شعرهم. ولكن إذا كنت تريد التصفية لرؤية الأشخاص ذوي الشعر الأحمر فقط ، فيمكنك القيام بذلك باستخدام عبارة WHERE.
ما بين
إلى جانب يساوي (=) ، BETWEEN هو عامل آخر يمكنك استخدامه للاستعلامات الشرطية. تكون جملة BETWEEN صحيحة للقيم التي تقع بين الحد الأدنى والحد الأقصى للقيم المحددة.
في حالتنا ، يمكننا استخدام BETWEEN لسحب السجلات من سنة معينة ، مثل 2003. إليك الاستعلام:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
؛
و
ويسمح لك بإضافة معايير إضافية إلى عبارة WHERE. تذكر أننا نريد التصفية حسب الأشخاص الذين لديهم شعر أحمر بالإضافة إلى الأشخاص الذين ولدوا في عام 2003. نظرًا لأن بيان WHERE الخاص بنا مأخوذ من معايير الشعر الأحمر ، كيف يمكننا التصفية حسب سنة الميلاد المحددة أيضًا؟
هذا هو المكان الذي تأتي فيه جملة AND. في هذه الحالة ، تكون عبارة AND خاصية تاريخ - ولكن ليس بالضرورة أن تكون كذلك. (ملاحظة: تحقق من تنسيق التواريخ مع فريق المنتج الخاص بك للتأكد من أنها بالتنسيق الصحيح.)
هنا هو استعلام SQL الخاص بنا:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
؛
أو
يمكن أيضًا استخدام OR مع جملة WHERE. مع AND ، يجب أن يكون كلا الشرطين صحيحين للظهور في النتائج (على سبيل المثال ، يجب أن يكون لون الشعر أحمر ويجب أن يولد في 2003). مع OR ، يجب أن يكون أي من الشرطين صحيحًا حتى يظهر في النتائج (على سبيل المثال ، يجب أن يكون لون الشعر أحمر أو يجب أن يكون مولودًا في 2003).
إليك ما تبدو عليه عبارة "أو" أثناء العمل:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
أو
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
؛
ليس
يتم استخدام NOT في جملة WHERE لعرض القيم التي يكون فيها الشرط المحدد غير صحيح. إذا أردنا سحب كل سكان ماساتشوستس دون شعر أحمر ، فيمكننا استخدام الاستعلام التالي:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
حيث لا
hair_color = "أحمر"
؛
ترتيب حسب
يمكن أيضًا إجراء الحسابات والتنظيم داخل استعلام. هذا هو المكان الذي تأتي فيه الدالتان ORDER BY و GROUP BY. أولاً ، سننظر في استعلامات SQL مع الدالتين ORDER BY ثم GROUP BY. بعد ذلك ، سنلقي نظرة سريعة على الفرق بين الاثنين.
تسمح لك عبارة ORDER BY بالفرز حسب أي من الحقول التي حددتها في عبارة SELECT. في هذه الحالة ، لنرتب حسب الاسم الأخير.
هنا هو استعلام SQL الخاص بنا:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
ترتيب حسب
اللقب
؛
مجموعة من
GROUP BY مشابه لـ ORDER BY ، لكنه يجمع البيانات التي لها أوجه تشابه. على سبيل المثال ، إذا كان لديك أي تكرارات في بياناتك ، فيمكنك استخدام GROUP BY لحساب عدد التكرارات في الحقول الخاصة بك.
هنا هو استعلام SQL الخاص بك:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
مجموعة من
اللقب
؛
ترتيب عن طريق VS. مجموعة من
لإظهار الفرق بين عبارة ORDER BY و GROUP BY ، دعنا نتخطى مثال Massachusetts الخاص بنا لفترة وجيزة لإلقاء نظرة على مجموعة بيانات بسيطة للغاية. فيما يلي قائمة بأرقام هوية وأسماء أربعة موظفين.
إذا أردنا استخدام عبارة ORDER BY في هذه القائمة ، فسيتم فرز أسماء الموظفين حسب الترتيب الأبجدي. ستبدو النتيجة كما يلي:
إذا أردنا استخدام عبارة GROUP BY بدلاً من ذلك ، فسيتم احتساب الموظفين بناءً على عدد المرات التي ظهروا فيها في الجدول الأولي. لاحظ أن بطرس ظهر مرتين في الجدول الأولي ، لذا فإن النتيجة ستبدو كما يلي:
معي حتى الآن؟ حسنًا ، دعنا نعود إلى استعلام SQL الذي أنشأناه حول الأشخاص ذوي الشعر الأحمر في ماساتشوستس الذين ولدوا في عام 2003.
حد
اعتمادًا على كمية البيانات الموجودة في قاعدة البيانات الخاصة بك ، قد يستغرق الأمر وقتًا طويلاً لتشغيل استعلاماتك. قد يكون هذا محبطًا ، خاصةً إذا كنت قد أخطأت في استعلامك وتحتاج الآن إلى الانتظار قبل المتابعة. إذا كنت ترغب في اختبار استعلام ، تتيح لك وظيفة LIMIT تحديد عدد النتائج التي تحصل عليها.
على سبيل المثال ، إذا اشتبهنا في وجود آلاف الأشخاص الذين لديهم شعر أحمر في ولاية ماساتشوستس ، فقد نرغب في اختبار استعلامنا باستخدام LIMIT قبل تشغيله بالكامل للتأكد من حصولنا على المعلومات التي نريدها. لنفترض ، على سبيل المثال ، أننا نريد فقط رؤية أول 100 شخص في نتيجتنا.
هنا هو استعلام SQL الخاص بنا:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
ترتيب حسب
اللقب
حد
100
؛
ادخل في
بالإضافة إلى استرداد المعلومات من قاعدة بيانات علائقية ، يمكن أيضًا استخدام SQL لتعديل محتويات قاعدة البيانات. بالطبع ، ستحتاج إلى أذونات لإجراء تغييرات على بيانات شركتك. ولكن ، إذا كنت مسؤولاً في أي وقت عن إدارة محتويات قاعدة البيانات ، فسنشارك بعض الاستفسارات التي يجب أن تعرفها.
الأول هو عبارة INSERT INTO ، والتي تهدف إلى وضع قيم جديدة في قاعدة البيانات الخاصة بك. إذا أردنا إضافة شخص جديد إلى جدول ماساتشوستس ، فيمكننا القيام بذلك عن طريق تقديم اسم الجدول الذي نريد تعديله ، والحقول الموجودة في الجدول الذي نريد الإضافة إليه أولاً. بعد ذلك ، نكتب VALUE مع كل قيمة ذات صلة نريد إضافتها.
إليك ما يمكن أن يبدو عليه هذا الاستعلام:
ادخل في

people_massachusetts (address_city، address_state، address_zip، hair_color، age، first_name، last_name)
القيم
(كامبريدج ، ماساتشوستس ، 02139 ، شقراء ، 32 ، جين ، دو)
؛
بدلاً من ذلك ، إذا كنت تضيف قيمة إلى كل حقل في الجدول ، فلن تحتاج إلى تحديد الحقول. ستتم إضافة القيم إلى الأعمدة بالترتيب المذكور في الاستعلام.
ادخل في
الناس_ماساتشوستس
القيم
(كامبريدج ، ماساتشوستس ، 02139 ، شقراء ، 32 ، جين ، دو)
؛
إذا كنت تريد إضافة قيم إلى حقول معينة فقط ، فيجب عليك تحديد هذه الحقول. لنفترض أننا نريد فقط إدراج سجل باستخدام first_name و last_name و address_state - يمكننا استخدام الاستعلام التالي:
ادخل في
people_massachusetts (First_name، last_name، address_state)
القيم
(جين ، دو ، ماساتشوستس)
؛
تحديث
إذا كنت تريد استبدال القيم الموجودة في قاعدة البيانات بقيم مختلفة ، يمكنك استخدام UPDATE. ماذا لو ، على سبيل المثال ، تم تسجيل شخص ما في قاعدة البيانات على أنه لديه شعر أحمر في حين أن شعره بني بالفعل؟ يمكننا تحديث هذا السجل بعبارات UPDATE و WHERE:
تحديث
الناس_ماساتشوستس
تعيين
hair_color = 'بني'
أين
first_name = "جين"
و
last_name = 'Doe'
؛
أو ، لنفترض أن هناك مشكلة في الجدول حيث تظهر بعض قيم "address_state" على أنها "Massachusetts" بينما تظهر قيم أخرى كـ "MA". لتغيير جميع مثيلات "MA" إلى "Massachusetts" ، يمكننا استخدام استعلام بسيط وتحديث سجلات متعددة في وقت واحد:
تحديث
الناس_ماساتشوستس
تعيين
address_state = "ماساتشوستس"
أين
address_state = MA
؛
كن حذرًا عند استخدام UPDATE. إذا لم تحدد السجلات التي تريد تغييرها باستخدام عبارة WHERE ، فسوف تقوم بتغيير جميع القيم في الجدول.
حذف
حذف يزيل السجلات من الجدول الخاص بك. كما هو الحال مع UPDATE ، تأكد من تضمين عبارة WHERE ، حتى لا تحذف الجدول بأكمله عن طريق الخطأ.
أو ، إذا صادفنا العثور على العديد من السجلات في جدول people_massachusetts الذي عاش بالفعل في ولاية ماين ، فيمكننا حذف هذه الإدخالات بسرعة من خلال استهداف حقل العنوان_حقل ، مثل:
حذف من
الناس_ماساتشوستس
أين
address_state = "maine"
؛
المكافأة: نصائح متقدمة في SQL
الآن بعد أن تعلمت كيفية إنشاء استعلام SQL بسيط ، دعنا نناقش بعض الحيل الأخرى التي يمكنك استخدامها لرفع مستوى استفساراتك ، بدءًا من علامة النجمة.
* (علامة النجمة)
عندما تضيف حرف النجمة إلى استعلام SQL الخاص بك ، فإنه يخبر الاستعلام أنك تريد تضمين جميع أعمدة البيانات في نتائجك.
في مثال ماساتشوستس الذي كنا نستخدمه ، كان لدينا اسمان فقط للعمود: الاسم_الأول والاسم_الأخير. ولكن لنفترض أن لدينا 15 عمودًا من البيانات التي نريد رؤيتها في نتائجنا - سيكون من الصعب كتابة جميع أسماء الأعمدة الخمسة عشر في عبارة SELECT. بدلاً من ذلك ، إذا استبدلت أسماء هذه الأعمدة بعلامة النجمة ، فسيعرف الاستعلام كيفية سحب كل الأعمدة إلى النتائج.
إليك ما سيبدو عليه استعلام SQL:
تحديد
*
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
ترتيب حسب
اللقب
حد
100
؛
٪ (رمز النسبة المئوية)
رمز النسبة المئوية هو حرف بدل ، مما يعني أنه يمكن أن يمثل حرفًا واحدًا أو أكثر في قيمة قاعدة البيانات. تساعد أحرف البدل في تحديد موقع السجلات التي تشترك في الأحرف المشتركة. يتم استخدامها عادةً مع عامل التشغيل LIKE للعثور على نمط في البيانات.
على سبيل المثال ، إذا أردنا الحصول على أسماء كل شخص في جدولنا يبدأ رمزه البريدي بـ "02" ، فيمكننا كتابة هذا الاستعلام:
تحديد
الاسم الاول،
اللقب
أين
address_zip مثل "02٪ "
؛
هنا ، يرمز "٪" إلى أي مجموعة من الأرقام التي تلي "02" ، لذلك يُظهر هذا الاستعلام أي سجل له قيمة لـ address_zip تبدأ بـ "02".
آخر 30 يومًا
بمجرد أن بدأت في استخدام SQL بانتظام ، وجدت أن أحد استفسارات الانتقال الخاصة بي تضمن محاولة العثور على الأشخاص الذين اتخذوا إجراءً أو استوفوا مجموعة معينة من المعايير خلال آخر 30 يومًا.
لنفترض أن اليوم هو الأول من كانون الأول (ديسمبر) 2021. يمكنك إنشاء هذه المعلمات عن طريق جعل امتداد تاريخ الميلاد بين 1 تشرين الثاني (نوفمبر) 2021 و 30 تشرين الثاني (نوفمبر) 2021. سيبدو استعلام SQL هذا على النحو التالي:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين "2021-11-01" و "2021-11-30"
ترتيب حسب
اللقب
حد
100
؛
ولكن ، قد يتطلب ذلك التفكير في التواريخ التي تغطي آخر 30 يومًا ، وسيتعين عليك تحديث هذا الاستعلام باستمرار.
بدلاً من ذلك ، لجعل التواريخ تمتد تلقائيًا إلى آخر 30 يومًا بغض النظر عن اليوم ، يمكنك كتابة هذا ضمن AND: birth_date> = (DATE_SUB (CURDATE ()، INTERVAL 30))
(ملاحظة: ستحتاج إلى إعادة التحقق من بناء الجملة هذا مع فريق المنتج الخاص بك لأنه قد يختلف بناءً على البرنامج الذي تستخدمه لسحب استعلامات SQL الخاصة بك.)
لذلك سيبدو استعلام SQL الكامل كما يلي:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
أين
hair_color = "أحمر"
و
تاريخ الميلاد> = (DATE_SUB (CURDATE () ، INTERVAL 30))
ترتيب حسب
اللقب
حد
100
؛
عدد
في بعض الحالات ، قد ترغب في حساب عدد المرات التي يظهر فيها معيار الحقل. على سبيل المثال ، لنفترض أنك تريد حساب عدد المرات التي تظهر فيها ألوان الشعر المختلفة للأشخاص الذين تقوم بجمعهم من ماساتشوستس. في هذه الحالة ، سيكون COUNT في متناول يديك ، لذا لن تضطر إلى إضافة عدد الأشخاص الذين لديهم ألوان شعر مختلفة يدويًا أو تصدير هذه المعلومات إلى Excel.
إليك ما سيبدو عليه استعلام SQL هذا:
تحديد
لون الشعر،
COUNT (لون_شعر)
من
الناس_ماساتشوستس
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
مجموعة من
لون الشعر
؛
AVG
يحسب AVG متوسط السمة في نتائج الاستعلام الخاص بك ، باستثناء القيم الفارغة (فارغة). في مثالنا ، يمكننا استخدام AVG لحساب متوسط عمر سكان ماساتشوستس في استعلامنا.
إليك ما يمكن أن يبدو عليه استعلام SQL:
تحديد
AVG (العمر)
من
الناس_ماساتشوستس
؛
مجموع
SUM هي عملية حسابية بسيطة أخرى يمكنك إجراؤها في SQL. يحسب القيمة الإجمالية لجميع السمات من الاستعلام الخاص بك. لذلك ، إذا أردنا جمع جميع أعمار سكان ماساتشوستس ، فيمكننا استخدام هذا الاستعلام:
تحديد
SUM (العمر)
من
الناس_ماساتشوستس
؛
MIN و MAX
MIN و MAX هما وظيفتان من وظائف SQL توفران لك أصغر وأكبر قيم لحقل معين. يمكننا استخدامه للتعرف على الأعضاء الأقدم والأصغر سناً في طاولة ماساتشوستس الخاصة بنا:
سيعطينا هذا الاستعلام السجل الأقدم:
تحديد
MIN (العمر)
من
الناس_ماساتشوستس
؛
وهذا الاستعلام يعطينا الأقدم:
تحديد
ماكس (العمر)
من
الناس_ماساتشوستس
؛
انضم
قد يكون هناك وقت تحتاج فيه إلى الوصول إلى المعلومات من جدولين مختلفين في استعلام SQL واحد. في SQL ، يمكنك استخدام عبارة JOIN للقيام بذلك.
(بالنسبة لمن هم على دراية بصيغ Excel ، يشبه هذا استخدام صيغة VLOOKUP عندما تحتاج إلى دمج المعلومات من ورقتين مختلفتين في Excel.)
لنفترض أن لدينا جدولًا واحدًا يحتوي على بيانات عن معرفات المستخدمين لجميع المقيمين في ماساتشوستس وتواريخ ميلادهم. بالإضافة إلى ذلك ، لدينا جدول منفصل تمامًا يحتوي على معرفات المستخدم لجميع سكان ماساتشوستس ولون شعرهم.
إذا أردنا معرفة لون شعر سكان ماساتشوستس المولودين في عام 2003 ، فسنحتاج إلى الوصول إلى المعلومات من كلا الجدولين والجمع بينهما. يعمل هذا لأن كلا الجدولين يشتركان في عمود مطابق: معرفات المستخدم.
نظرًا لأننا نستدعي الحقول من جدولين مختلفين ، فإن عبارة SELECT الخاصة بنا ستتغير قليلاً أيضًا. بدلاً من مجرد سرد الحقول التي نريد تضمينها في نتائجنا ، سنحتاج إلى تحديد الجدول الذي تأتي منه. (ملاحظة: قد تكون وظيفة العلامة النجمية في متناول اليد هنا لذا فإن استعلامك يتضمن كلا الجدولين في النتائج.)
لتحديد حقل من جدول معين ، كل ما علينا فعله هو دمج اسم الجدول مع اسم الحقل. على سبيل المثال ، قد تشير عبارة SELECT الخاصة بنا إلى "table.field" - مع وجود نقطة تفصل بين اسم الجدول واسم الحقل.
نفترض أيضًا بعض الأشياء في هذه الحالة:
- يتضمن جدول تاريخ ميلاد ماساتشوستس الحقول التالية: الاسم_الأول ، الاسم_الأخير ، معرف_المستخدم ، تاريخ الميلاد
- يتضمن جدول ألوان الشعر في ولاية ماساتشوستس الحقول التالية: معرف المستخدم ، لون الشعر
لذلك سيبدو استعلام SQL الخاص بك كما يلي:
تحديد
birthdate_massachusetts.first_name،
Birthdate_massachusetts.last_name
من
Birthdate_massachusetts JOIN haircolor_massachusetts USING (user_id)
أين
hair_color = "أحمر"
و
تاريخ الميلاد بين '2003-01-01' و '2003-12-31'
ترتيب حسب
اللقب
؛
سينضم هذا الاستعلام إلى الجدولين باستخدام الحقل "user_id" الذي يظهر في كل من جدول birthdate_massachusetts وجدول haircolor_massachusetts. يمكنك بعد ذلك رؤية جدول الأشخاص الذين ولدوا في عام 2003 ولديهم شعر أحمر.
قضية
استخدم عبارة CASE عندما تريد إرجاع نتائج مختلفة لاستعلامك بناءً على الشرط الذي تم استيفائه. يتم تقييم الشروط بالترتيب. بمجرد استيفاء الشرط ، يتم إرجاع النتيجة المقابلة ويتم تخطي جميع الشروط التالية.
يمكنك تضمين شرط ELSE في النهاية في حالة عدم استيفاء أي شروط. بدون ELSE ، سيعود الاستعلام NULL إذا لم يتم استيفاء أي شروط.
فيما يلي مثال على استخدام CASE لإرجاع سلسلة بناءً على الاستعلام:
تحديد
الاسم الاول،
اللقب
من
الناس_ماساتشوستس
قضية
عندما hair_color = "بني" ثم "هذا الشخص لديه شعر بني."
عندما hair_color = "شقراء" ثم "هذا الشخص لديه شعر أشقر."
عندما hair_color = "أحمر" ثم "هذا الشخص لديه شعر أحمر."
ELSE "لون الشعر غير معروف".
نهاية
؛
استعلامات SQL الأساسية يجب أن يعرفها المسوقون
تهانينا. أنت على استعداد لتشغيل استعلامات SQL الخاصة بك! بينما يوجد الكثير الذي يمكنك القيام به باستخدام SQL ، آمل أن تكون قد وجدت هذه النظرة العامة على الأساسيات مفيدة حتى تتمكن من جعل يديك متسخين. مع أساس قوي من الأساسيات ، ستتمكن من التنقل في SQL بشكل أفضل والعمل على بعض الأمثلة الأكثر تعقيدًا.
ملاحظة المحرر: تم نشر هذا المنشور في الأصل في 25 مارس وتم تحديثه من أجل الشمول.