برنامج تعليمي تمهيدي لـ SQL: كيفية كتابة استعلامات بسيطة

برنامج تعليمي تمهيدي لـ SQL: كيفية كتابة استعلامات بسيطة

عقدة المصدر: 3067316

هل سمعت عن SQL؟ ربما تكون قد سمعت عنها في سياق تحليل البيانات ولكنك لم تعتقد أبدًا أنها ستنطبق عليك كمسوق. أو ربما فكرت: "هذا مخصص لمستخدمي البيانات المتقدمين. لا يمكنني القيام بذلك أبدا."

تستخدم المرأة استعلامات SQL

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

قم بالتنزيل الآن: مقدمة إلى تحليلات البيانات [دليل مجاني]

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

كيفية الاستعلام عن قاعدة بيانات SQL

  1. تأكد من أن لديك تطبيقًا لإدارة قواعد البيانات (مثل MySQL Workbench وSequel Pro).
  2. إذا لم يكن الأمر كذلك ، فقم بتنزيل تطبيق إدارة قاعدة البيانات واعمل مع شركتك لتوصيل قاعدة البيانات الخاصة بك.
  3. فهم قاعدة البيانات الخاصة بك وتسلسلها الهرمي.
  4. اكتشف الحقول الموجودة في جداولك.
  5. ابدأ بكتابة استعلام SQL لسحب البيانات المطلوبة.

باستخدام SQL، لا تحتاج إلى تنزيل جدول بيانات Excel ضخم وفتحه للحصول على الإجابات التي تبحث عنها.

يمكنك طرح أسئلة مثل "من هم العملاء الذين اشتروا بذلة حمراء خلال الأشهر الستة الماضية؟" ويقوم SQL بجلب البيانات من قاعدة البيانات الخاصة بك وإعادتها إليك دون الحاجة إلى التدقيق يدويًا في ملف CSV.

لماذا استخدام SQL؟

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

  • تعد بياناتك أكثر أمانًا في SQL نظرًا لأنه يصعب على المستخدمين حذفها عن طريق الخطأ أو إتلافها مقارنةً بورقة Excel
  • يتيح لك SQL إدارة مجموعات البيانات التي تتجاوز آلاف السجلات
  • يسمح SQL لعدة مستخدمين بالوصول إلى نفس قاعدة البيانات بسلاسة
  • تسمح لك التفويضات المستندة إلى الدور بالتحكم في رؤية البيانات الحساسة
  • تسهل SQL تصورًا قويًا للبيانات
  • يفرض SQL تكامل البيانات بحيث تكون بياناتك دقيقة ومتسقة دائمًا

التسلسل الهرمي لقاعدة بيانات SQL

قاعدة بيانات SQL هي قاعدة بيانات علائقية، مما يعني أن البيانات منظمة في جداول مرتبطة ببعضها البعض بناءً على علاقات محددة مسبقًا.

يتم تنظيم المعلومات في قاعدة بيانات SQL بشكل هرمي، على غرار شجرة العائلة، مما يعني أن العناصر الموجودة في المستوى الأعلى لها نطاق أوسع وتتفرع إلى كيانات فرعية متعددة وأكثر تحديدًا.

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

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

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

تحتوي قاعدة البيانات على جداول، وضمن هذه الجداول توجد بياناتك.

إذا استخدمنا الاستعلام "إظهار الجداول في نيو إنجلاند؛"، فستكون النتيجة جداول لكل ولاية في نيو إنجلاند:

People_Connecticut، People_Maine، People_Massachusetts، People_Newhampshire، People_Rhodeisland، People_Vermont.

وأخيرًا، عليك معرفة الحقول الموجودة في الجداول. الحقول هي أجزاء البيانات المحددة التي يمكنك سحبها من قاعدة البيانات الخاصة بك.

على سبيل المثال، إذا كنت تريد سحب عنوان شخص ما، فقد لا يكون اسم الحقل مجرد "عنوان" - بل قد يتم فصله إلى عنوان_المدينة، وعنوان_الدولة، وعنوان_زيب. لمعرفة ذلك، استخدم الاستعلام "وصف الأشخاص_ماساتشوستس؛".

يوفر هذا قائمة بجميع البيانات التي يمكنك سحبها باستخدام SQL.

لنقم بمراجعة سريعة للتسلسل الهرمي باستخدام مثال نيو إنجلاند:

  • قاعدة البيانات لدينا هي بريطانيا الجديدة.
  • الجداول لدينا داخل قاعدة البيانات تلك هي People_Connecticut، People_Maine، People_Massachusetts، People_Newhampshire، People_Rhodeisland، People_Vermont.
  • تتضمن حقولنا ضمن جدول People_massachusetts ما يلي: Address_city، وaddress_state، وaddress_zip، ولون الشعر، والعمر، والاسم الأول، واسم العائلة.

الآن، دعونا نكتب بعض استعلامات SQL البسيطة لسحب البيانات من ملفنا بريطانيا الجديدة قاعدة البيانات.

كيفية كتابة استعلامات SQL

قبل أن نبدأ، تأكد من أن لديك تطبيقًا لإدارة قاعدة البيانات يسمح لك بسحب البيانات من قاعدة البيانات الخاصة بك. تتضمن بعض الخيارات MySQL or تتمة برو.

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

لمعرفة كيفية كتابة استعلام SQL، دعونا نستخدم السؤال التالي:

من هم الأشخاص ذوو الشعر الأحمر في ولاية ماساتشوستس والذين ولدوا في عام 2003؟

باستخدام الأمر SELECT

تختار SELECT الحقول التي تريد عرضها في الرسم البياني الخاص بك. هذه هي المعلومات المحددة التي تريد سحبها من قاعدة البيانات الخاصة بك. في المثال أعلاه ، نريد العثور على ملف الناس الذين يتناسبون مع باقي المعايير.

الاستعلام 1:

اختر

الاسم الأول،

الكنية

;

باستخدام الأمر FROM

FROM يحدد الجدول الذي تريد سحب البيانات منه.

في القسم السابق، علمنا أن هناك ستة جداول لكل ولاية من الولايات الست في نيو إنجلاند: شعب كونيتيكت، وشعب ماين، وشعب ماساتشوستس، وشعب نيوهامبشاير، وشعب روديسلاند، وشعب فيرمونت.

ولأننا نبحث عن أشخاص في ماساتشوستس على وجه التحديد، فسنقوم بسحب البيانات من هذا الجدول المحدد.

هنا هو استعلام SQL الخاص بنا:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

;

باستخدام الأمر أين

يتيح لك WHERE تصفية استعلام ليكون أكثر تحديدًا. في مثالنا ، نريد تصفية استعلامنا ليشمل فقط الأشخاص ذوي الشعر الأحمر الذين ولدوا في عام 2003. لنبدأ بمرشح الشعر الأحمر.

الاستعلام 2:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

;

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

باستخدام الأمر بين

إلى جانب يساوي (=) ، BETWEEN هو عامل آخر يمكنك استخدامه للاستعلامات الشرطية. تكون جملة BETWEEN صحيحة للقيم التي تقع بين الحد الأدنى والحد الأقصى للقيم المحددة.

في حالتنا، يمكننا استخدام BETWEEN لسحب السجلات من سنة معينة، مثل 2003.

الاستعلام 3:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

birth_date بين "2003-01-01" و "2003-12-31"

;

باستخدام الأمر AND

ويسمح لك بإضافة معايير إضافية إلى بيان WHERE الخاص بك. تذكر أننا نريد التصفية حسب الأشخاص ذوي الشعر الأحمر بالإضافة إلى الأشخاص الذين ولدوا في عام 2003. وبما أن عبارة "WHERE" الخاصة بنا يتم تناولها وفقًا لمعايير الشعر الأحمر، فكيف يمكننا التصفية حسب سنة ميلاد معينة أيضًا؟

وهنا يأتي دور عبارة AND. في هذه الحالة، عبارة AND هي خاصية تاريخ - ولكن ليس بالضرورة أن تكون كذلك. (ملاحظة: تحقق من تنسيق التواريخ مع فريق المنتج الخاص بك للتأكد من صحتها.)

الاستعلام 4:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

;

باستخدام الأمر OR

يمكن أيضًا استخدام OR مع جملة WHERE. مع AND ، يجب أن يكون كلا الشرطين صحيحين للظهور في النتائج (على سبيل المثال ، يجب أن يكون لون الشعر أحمر ويجب أن يولد في 2003). مع OR ، يجب أن يكون أي من الشرطين صحيحًا حتى يظهر في النتائج (على سبيل المثال ، يجب أن يكون لون الشعر أحمر or يجب أن يكون من مواليد 2003).

إليك ما تبدو عليه عبارة OR أثناء العمل.

الاستعلام 5:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

OR

birth_date بين "2003-01-01" و "2003-12-31"

;

باستخدام الأمر NOT

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

الاستعلام 6:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

حيث لا

hair_color = "أحمر"

;

باستخدام الأمر ORDER BY

يمكن أيضًا إجراء الحسابات والتنظيم ضمن الاستعلام. وهنا يأتي دور الدالتين ORDER BY وGROUP BY. أولاً، سننظر إلى استعلامات SQL الخاصة بنا باستخدام الدالتين ORDER BY ثم GROUP BY. ثم، سوف ندرس بإيجاز الفرق بين الاثنين.

تسمح لك عبارة ORDER BY بالفرز حسب أي من الحقول التي حددتها في عبارة SELECT. في هذه الحالة ، لنرتب حسب الاسم الأخير.

الاستعلام 7:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

ترتيب حسب

الكنية

;

باستخدام الأمر GROUP BY

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

الاستعلام 8:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

GROUP BY

الكنية

;

ترتيب عن طريق VS. مجموعة من

لإظهار الفرق بين عبارة ORDER BY وعبارة GROUP BY، دعنا نخطو بإيجاز خارج مثال ماساتشوستس الخاص بنا لننظر إلى مجموعة بيانات بسيطة جدًا. فيما يلي قائمة بأرقام هوية وأسماء أربعة موظفين.

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

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

معي حتى الآن؟ حسنًا، دعنا نعود إلى استعلام SQL الذي قمنا بإنشائه حول الأشخاص ذوي الشعر الأحمر في ماساتشوستس المولودين في عام 2003.

استخدام الدالة LIMIT

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

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

الاستعلام 8:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

ترتيب حسب

الكنية

مما سيحدث

100

;

باستخدام الأمر INSERT INTO

بالإضافة إلى استرداد المعلومات من قاعدة البيانات العلائقية، يمكن أيضًا استخدام SQL لتعديل محتويات قاعدة البيانات.

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

الأول هو عبارة INSERT INTO لوضع قيم جديدة في قاعدة البيانات الخاصة بك.

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

بعد ذلك، نكتب VALUE مع كل قيمة نريد إضافتها.

الاستعلام 9:

إدراج في

people_massachusetts (address_city، address_state، address_zip، hair_color، age، first_name، last_name)

القيم

(كامبريدج ، ماساتشوستس ، 02139 ، شقراء ، 32 ، جين ، دو)

;

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

الاستعلام 10:

إدراج في

الناس_ماساتشوستس

القيم

(كامبريدج ، ماساتشوستس ، 02139 ، شقراء ، 32 ، جين ، دو)

;

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

الاستعلام 11:

إدراج في

people_massachusetts (First_name، last_name، address_state)

القيم

(جين ، دو ، ماساتشوستس)

;

باستخدام أمر التحديث

يمكنك استخدام UPDATE إذا كنت تريد استبدال القيم الموجودة في قاعدة البيانات الخاصة بك بقيم مختلفة. ماذا لو، على سبيل المثال، تم تسجيل شخص ما في قاعدة البيانات على أنه ذو شعر أحمر بينما لديه شعر بني بالفعل؟ يمكننا تحديث هذا السجل ببيانات UPDATE وWHERE.

الاستعلام 12:

قم

الناس_ماساتشوستس

طقم

hair_color = 'بني'

WHERE

first_name = "جين"

لأي لبس

last_name = 'Doe'

;

أو لنفترض أن هناك مشكلة في جدولك حيث تظهر بعض قيم "address_state" على أنها "Massachusetts" وتظهر قيم أخرى على أنها "MA". لتغيير كافة مثيلات "MA" إلى "Massachusetts"، يمكننا استخدام استعلام بسيط وتحديث سجلات متعددة في وقت واحد.

الاستعلام 13:

قم

الناس_ماساتشوستس

طقم

address_state = "ماساتشوستس"

WHERE

Address_state = MA

;

كن حذرًا عند استخدام UPDATE. إذا لم تحدد السجلات التي تريد تغييرها باستخدام عبارة WHERE ، فسوف تقوم بتغيير جميع القيم في الجدول.

باستخدام الأمر DELETE

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

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

الاستعلام 13:

حذف من

الناس_ماساتشوستس

WHERE

address_state = "maine"

;

المكافأة: تلميحات SQL المتقدمة

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

* (علامة النجمة)

عندما تضيف حرف النجمة إلى استعلام SQL الخاص بك ، فإنه يخبر الاستعلام أنك تريد تضمين جميع أعمدة البيانات في نتائجك.

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

إليك ما سيبدو عليه استعلام SQL.

الاستعلام 13:

اختر

*

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

ترتيب حسب

الكنية

مما سيحدث

100

;

٪ (رمز النسبة المئوية)

رمز النسبة المئوية هو حرف بدل ، مما يعني أنه يمكن أن يمثل حرفًا واحدًا أو أكثر في قيمة قاعدة البيانات. تساعد أحرف البدل في تحديد موقع السجلات التي تشترك في الأحرف المشتركة. يتم استخدامها عادةً مع عامل التشغيل LIKE للعثور على نمط في البيانات.

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

الاستعلام 14:

اختر

الاسم الأول،

الكنية

WHERE

address_zip مثل "02٪"

;

هنا ، يرمز "٪" إلى أي مجموعة من الأرقام التي تلي "02" ، لذلك يُظهر هذا الاستعلام أي سجل له قيمة لـ address_zip تبدأ بـ "02".

آخر 30 يومًا

بمجرد أن بدأت في استخدام SQL بشكل منتظم، وجدت أن إحدى استعلاماتي تتضمن العثور على الأشخاص الذين اتخذوا إجراءً أو استوفوا مجموعة معينة من المعايير خلال آخر 30 يومًا.

دعونا نتظاهر بأن اليوم هو الأول من كانون الأول (ديسمبر) 1. أنت استطاع أنشئ هذه المعلمات عن طريق جعل تاريخ الميلاد يمتد بين 1 نوفمبر 2021 و30 نوفمبر 2021. وسيبدو استعلام SQL هذا كما يلي:

الاستعلام 15:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2021-11-01" و "2021-11-30"

ترتيب حسب

الكنية

مما سيحدث

100

;

ولكن هذا يتطلب مراعاة التواريخ التي تغطي آخر 30 يومًا، وسيتعين عليك تحديث هذا الاستعلام باستمرار.

بدلاً من ذلك ، لجعل التواريخ تمتد تلقائيًا إلى آخر 30 يومًا بغض النظر عن اليوم ، يمكنك كتابة هذا ضمن AND: birth_date> = (DATE_SUB (CURDATE ()، INTERVAL 30))

(ملاحظة: ستحتاج إلى إعادة التحقق من بناء الجملة هذا مع فريق المنتج الخاص بك لأنه قد يختلف بناءً على البرنامج الذي تستخدمه لسحب استعلامات SQL الخاصة بك.)

لذلك، سيبدو استعلام SQL الكامل الخاص بك كما يلي.

الاستعلام 16:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

WHERE

hair_color = "أحمر"

لأي لبس

تاريخ الميلاد> = (DATE_SUB (CURDATE () ، INTERVAL 30))

ترتيب حسب

الكنية

مما سيحدث

100

;

بالإحصاء

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

في هذه الحالة، سيكون COUNT مفيدًا، لذا لن تضطر إلى إضافة عدد الأشخاص ذوي ألوان الشعر المختلفة يدويًا أو تصدير تلك المعلومات إلى Excel.

إليك ما سيبدو عليه استعلام SQL هذا:

الاستعلام 17:

اختر

لون الشعر،

COUNT (لون_شعر)

من عند

الناس_ماساتشوستس

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

GROUP BY

لون الشعر

;

AVG

يحسب AVG متوسط ​​السمة في نتائج الاستعلام الخاص بك ، باستثناء القيم الفارغة (فارغة). في مثالنا ، يمكننا استخدام AVG لحساب متوسط ​​عمر سكان ماساتشوستس في استعلامنا.

إليك ما يمكن أن يبدو عليه استعلام SQL:

الاستعلام 18:

اختر

AVG (العمر)

من عند

الناس_ماساتشوستس

;

مجموع

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

الاستعلام 19:

اختر

SUM (العمر)

من عند

الناس_ماساتشوستس

;

باستخدام الحد الأدنى والحد الأقصى

MIN و MAX هما وظيفتان من وظائف SQL تمنحك القيم الأصغر والأكبر لحقل معين. يمكننا استخدامه للتعرف على الأعضاء الأقدم والأصغر سناً في طاولة ماساتشوستس الخاصة بنا:

الاستعلام التالي سيعطينا سجلاً لأصغر الأشخاص.

الاستعلام 20:

اختر

MIN (العمر)

من عند

الناس_ماساتشوستس

;

وهذا الاستعلام يعطينا الأقدم:

الاستعلام 21:

اختر

ماكس (العمر)

من عند

الناس_ماساتشوستس

;

باستخدام أمر الانضمام

قد يكون هناك وقت تحتاج فيه إلى الوصول إلى المعلومات من جدولين مختلفين في استعلام SQL واحد. في SQL ، يمكنك استخدام عبارة JOIN للقيام بذلك.

(لمن هم على دراية صيغ اكسل، هذا مشابه لاستخدام صيغة VLOOKUP عندما تحتاج إلى دمج المعلومات من ورقتين مختلفتين في Excel.)

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

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

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

(ملاحظة: قد تكون وظيفة العلامة النجمية مفيدة هنا بحيث يتضمن الاستعلام كلا الجدولين في النتائج.)

لتحديد حقل من جدول معين، كل ما علينا فعله هو دمج اسم الجدول مع اسم الحقل. على سبيل المثال، قد تقول عبارة SELECT "table.field" - مع النقطة التي تفصل بين أسماء الجدول والحقول.

نفترض أيضًا بعض الأشياء في هذه الحالة:

  1. يتضمن جدول تاريخ ميلاد ماساتشوستس الحقول التالية: الاسم_الأول ، الاسم_الأخير ، معرف_المستخدم ، تاريخ الميلاد
  2. يتضمن جدول ألوان الشعر في ولاية ماساتشوستس الحقول التالية: معرف المستخدم ، لون الشعر

سيبدو استعلام SQL الخاص بك كما يلي.

الاستعلام 21:

اختر

birthdate_massachusetts.first_name،

Birthdate_massachusetts.last_name

من عند

Birthdate_massachusetts JOIN haircolor_massachusetts USING (user_id)

WHERE

hair_color = "أحمر"

لأي لبس

birth_date بين "2003-01-01" و "2003-12-31"

ترتيب حسب

الكنية

;

سيربط هذا الاستعلام بين الجدولين باستخدام الحقل "user_id" الذي يظهر في كل من جدول Birthdate_massachusetts وجدول haircolor_massachusetts. يمكنك بعد ذلك رؤية جدول الأشخاص الذين ولدوا في عام 2003 بشعر أحمر.

باستخدام بيان الحالة

استخدم عبارة CASE عندما تريد إرجاع نتائج مختلفة لاستعلامك بناءً على الشرط الذي تم استيفاؤه. يتم تقييم الشروط بالترتيب. يتم إرجاع النتيجة المقابلة بمجرد استيفاء الشرط، ويتم تخطي جميع الشروط التالية.

يمكنك تضمين شرط ELSE في النهاية إذا لم يتم استيفاء أي شروط. بدون ELSE، سيعود الاستعلام NULL إذا لم يتم استيفاء أي شروط.

فيما يلي مثال لاستخدام CASE لإرجاع سلسلة بناءً على الاستعلام.

الاستعلام 22:

اختر

الاسم الأول،

الكنية

من عند

الناس_ماساتشوستس

هيكل الساعة:

عندما hair_color = "بني" ثم "هذا الشخص لديه شعر بني."

عندما hair_color = "شقراء" ثم "هذا الشخص لديه شعر أشقر."

عندما hair_color = "أحمر" ثم "هذا الشخص لديه شعر أحمر."

ELSE "لون الشعر غير معروف".

END

;

يجب أن يعرف المسوقون استعلامات SQL الأساسية

تهانينا! أنت جاهز لتشغيل استعلامات SQL الخاصة بك.

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

مع وجود أساس قوي للأساسيات، يمكنك التنقل في SQL بشكل أفضل والعمل على بعض الأمثلة الأكثر تعقيدًا.

ملاحظة المحرر: تم نشر هذا المنشور في الأصل في مارس 2015 وتم تحديثه من أجل الشمول.

دعوة جديدة إلى العمل

الطابع الزمني:

اكثر من مركز المحور