شعار زيفيرنت

SQL: دليل شامل من الأساسيات إلى المستوى المتقدم

التاريخ:

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

المُقدّمة

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

لماذا نتعلم SQL؟

تقوم معظم الشركات بتخزين وإدارة بياناتها باستخدام نظام إدارة قواعد البيانات العلائقية (RDBMS).
يرمز SQL إلى لغة الاستعلام الهيكلية ، ويتيح للمستخدمين الوصول إلى البيانات ومعالجتها. تستخدم الشركات أنظمة مختلفة مثل MySQL و PostgreSQL و Oracle Database وما إلى ذلك لتخزين البيانات. هناك اختلافات طفيفة بين جميع هذه الإصدارات المختلفة من SQL ، ولكن التحول إلى الآخر سهل نسبيًا بمجرد الحصول على أداء واحد.

اقرأ المزيد عن SQL على موقعنا مدونة!

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

يتعامل علماء البيانات مع قواعد البيانات المحفوظة بالفعل ، لكننا سنبدأ من الأساسيات.

ما هو جدول قاعدة البيانات في SQL؟

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

SQL | جدول قاعدة البيانات

في الجدول أعلاه ، يحتوي كل صف على معلومات حول موظف واحد ويشير كل عمود إلى معلومات ميزة محددة للموظف.

اصطلاح تسمية SQL

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

إنشاء الجداول

بناء الجملة لإنشاء جداول جديدة في SQL على النحو التالي.

إنشاء اسم جدول الجدول (نوع بيانات العمود 1 ، نوع بيانات العمود 1 ،) ؛

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

بعض أنواع البيانات المستخدمة على نطاق واسع في SQL هي VARCHAR (سلسلة) ، BOOL (منطقية) ، int (عدد صحيح) ، FLOAT (أرقام عائمة) ، DATETIME (DateTime) ، إلخ. يمكنك الرجوع إلى الوثائق لمعرفة المزيد حول أنواع البيانات .

لنقم بإنشاء جدول جديد كما هو موضح في الصورة أعلاه.

CREATE TABLE الموظف (worker_id INT ، e_name VARCHAR (20) ، العمر INT ، الراتب INT ، الوظيفة VARCHAR (20)) ؛

ملحوظة: يشير الرقم الموجود داخل VARCHAR إلى أقصى طول ممكن للسلسلة. هنا ، نفترض أن طول السلسلة لن يتجاوز 20.

أدخل القيم في SQL

أدخل تجاهل في يُدرج البيان سجلاً جديدًا داخل جدول قاعدة البيانات. بناء الجملة على النحو التالي.

INSERT IGNORE INTO table_name (العمود 1 ، العمود 2 ،.) القيم (القيمة 1 ، القيمة 2 ،..) ؛

الآن دعنا ندرج القيم الوهمية في الجدول الذي أنشأناه أعلاه.

أدخل IGNORE في قيم الموظف (1، "Alex"، 27,28000،2، "Designer") ؛ أدخل IGNORE في قيم الموظف (30,45000، "Joe"، 3،25,65000، "Backend Dev") ؛ أدخل تجاهل في قيم الموظف (4 ، "ريك" ، 21,30000 ، "عالم البيانات") ؛ أدخل تجاهل تجاهل في قيم الموظف (5 ، "نيك" ، 21,35000 ، "Backend Dev") ؛ إدراج تجاهل في قيم الموظف (XNUMX ، "كاثي" ، XNUMX ، "مصمم") ؛

يمكننا عرض بيانات الجدول الخاصة بنا باستخدام عبارة SELECT ، والتي سنلقي نظرة عليها بعد ذلك.
مهمة صغيرة: أضف خمسة موظفين آخرين إلى الجدول (تأكد من أن معرف الموظف فريدًا).

اختر من

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

حدد العمود اسم_العمود_اسم_العمود_الاسم_العربي . . من اسم الجدول ؛

لتحديد كل الأعمدة في عمود قاعدة البيانات ، استبدل أسماء الأعمدة بعلامة النجمة (*).
سنعرض الآن جميع أعمدة مجموعة بيانات الموظفين باستخدام البيان أدناه.

حدد * من الموظف ؛
SQL | الجدول - اختر & من
الإخراج في Oracle Live SQL

مهمة صغيرة: عرض أسماء جميع الموظفين

حتى الآن ، يمكننا عرض محتويات جدول قاعدة البيانات دون تصفية. ولكن ماذا لو أردنا إظهار أسماء الموظفين الذين يتقاضون رواتب تزيد عن 50,000 دولار أمريكي (نعم ، لقد قرأتها بشكل صحيح). إليك العديد من العبارات مثل WHERE و LIKE و IN وما إلى ذلك.
سنركز على مثل هذه البيانات الآن.

WHERE

حيث تقوم العبارة بتصفية السجلات بناءً على الشرط المذكور بعد العبارة ، يكون التركيب كما يلي.

حدد العمود 1 ، العمود 2 ،. . . من جدول_اسم أين الشرط ؛

 رمز لتصفية الموظفين الذين لديهم رواتب تزيد عن 50,000 PokeDollars على النحو التالي.

حدد * من الموظف حيث الراتب> 50000 ؛
SQL

لاحظ أنه يتم وضع بيان WHERE أسفل عبارة FROM.
داخل الشرط ، يمكننا استخدام التعبيرات المنطقية (OR ، AND & NOT) بالإضافة إلى عوامل المقارنة مثل> ، <، = ، = (في SQL ، نستخدم = بدلاً من == لمقارنة المساواة) ، إلخ.
يمكننا أيضًا استخدام تعبيرات معينة مثل IN و BETWEEN و LIKE وما إلى ذلك.

و ، أو & لا

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

و ، أو لا

LIKE

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

حدد * من الموظف حيث الوظيفة = 'Backend Developer' ؛ 

تكمن المشكلة في هذا النوع من الاستعلام ، كما ترون في جدول قاعدة البيانات لدينا ، في وجود مطور آخر للخلفية (Nick) في جدولنا لم يتم تصفيته لأن لقبه الوظيفي هو "Backend Dev". لذا لتجاوز هذه المشكلة ، سنستخدم عامل التشغيل LIKE.
حتى نتمكن من العثور على مطوري الواجهة الخلفية باستخدام الاستعلام أدناه.

حدد * من الموظف حيث الوظيفة مثل "٪ Backend٪" ؛

يمثل الحرف٪ صفرًا أو حرفًا واحدًا أو أحرفًا متعددة.

مثل | SQL

مهمة صغيرة: ابحث عن موظفين يبدأ اسمهم بحرف متحرك (تلميح: تحتاج إلى استخدام عدة عوامل تشغيل OR).

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

حدد * من الموظف حيث الأعلى (الوظيفة) مثل "٪ BACKEND٪" ؛  

بين

نريد العثور على جميع الموظفين الذين يتقاضون رواتب تتراوح بين 25,000 و 40,000 (ضمناً). يمكننا القيام بذلك باستخدام عوامل التشغيل AND والمقارنة على النحو التالي.

اختر * من الموظف حيث الراتب> = 25000 والراتب <= 40000 ؛

هناك طريقة أخرى للقيام بذلك وهي بمساعدة بين المشغل أو العامل. عامل التشغيل BETWEEN شامل: يتم تضمين قيم البداية والنهاية.
يمكننا إجراء الاستعلام أعلاه باستخدام BETWEEN Operator.

اختر * من الموظف حيث الراتب بين 25000 و 40000 ؛

مهمة صغيرة: تصفية جميع الموظفين الذين تتراوح رواتبهم بين 30,000،40,000 و XNUMX،XNUMX (الحصري).

IN

هنا نحدد بوضوح قائمة القيم ونعيد السجلات التي تحتوي على أي من القيم من القائمة. نريد اختيار موظفين لديهم رقم تعريف الموظف إما 1 أو 3 أو 5.

حدد * من الموظف حيث الموظف في (1,3,5،XNUMX،XNUMX) ؛
In

هذا مشابه لوجود شروط متعددة مرتبطة ببعضها البعض باستخدام عبارة أو (حيث معرف الموظف = 1 أو معرف الموظف = 3.)
مهمة صغيرة: حدد جميع أسماء الموظفين باستخدام معرف الموظف 2 و 5.

تحديد / إحضار

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

ملحوظة: تذكر أننا تحدثنا بإيجاز عن إصدارات مختلفة من SQL وكيف يمكن أن تكون هناك اختلافات طفيفة في بناء الجملة. نحتاج إلى استخدام "FETCH FIRST number ROWS ONLY" بدلاً من "LimIT number" في Oracle SQL. راجع وثائق إصدار SQL للحصول على مزيد من المعلومات.

دعنا نعرض أعلى 2 سجل في الجدول.

حدد * من الموظف جلب الصفوف الأولى والثانية فقط ؛
الحد / الجلب | SQL

ترتيب حسب

كما يوحي الاسم ، فإن ترتيب حسب يقوم البيان بفرز النتيجة بترتيب تصاعدي أو تنازلي.
العمود (أو الأعمدة) الذي يجب فرز النتائج به يضاف بعد الكلمة الأساسية ORDER BY.
يقوم بفرز النتائج بترتيب تصاعدي افتراضيًا. لفرزها بترتيب تنازلي ، نحتاج إلى إضافة DESC في نهاية عبارة ORDER BY.
لنفترض أننا نرغب في عرض أعلى 3 موظفين ربحًا. سيكون الرمز على النحو التالي.

حدد * من ترتيب الموظف حسب الراتب تنازليًا جلب الصفوف الثلاثة الأولى فقط ؛
ترتيب بواسطة

مهمة صغيرة: حدد أصغر 3 موظفين سناً.

الخلاصة على SQL

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

مصادر
لقد قمت بإنشاء جميع الصور الموضحة في المقال (المؤلف).

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف. 

المصدر: https://www.analyticsvidhya.com/blog/2022/01/learning-sql-from-basics-to-advance/

بقعة_صورة

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

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟