مقدمة

مكتمل

لغة SQL

SQL هو اختصار لعبارة لغة الاستعلامات المركبة. يتم استخدام SQL للاتصال بقاعدة بيانات ارتباطية. تستخدم عبارات SQL لتنفيذ مهام مثل تحديث البيانات في قاعدة بيانات أو استرداد البيانات من قاعدة بيانات. على سبيل المثال، يتم استخدام عبارة SQL SELECT لاستعلام قاعدة البيانات وإرجاع مجموعة من صفوف البيانات. بعض نظم إدارة قواعد البيانات الارتباطية الشائعة التي تستخدم SQL تشمل Microsoft SQL Server، MySQL، PostgreSQL، MariaDB، وOracle.

هناك معيار لغة SQL تم تعريفه من قِبل المعهد الوطني الأمريكي للمعايير (ANSI). يضيف كل مورد متغيراته وملحقاته الخاصة.

استعلام SQL SELECT يسترد جدول بيانات من قاعدة بيانات

في هذه الوحدة النمطية، ستتعلم كيفية القيام بما يلي:

  • فهم ماهية SQL وكيفية استخدامه
  • تعريف كائنات قاعدة البيانات في المخططات
  • تعريف أنواع عبارة SQL
  • استخدام عبارة SELECT للاستعلام عن الجداول في قاعدة بيانات
  • العمل باستخدام أنواع البيانات
  • معالجة حالات NULL

Transact-SQL

تتوفر عبارات SQL الأساسية، مثل SELECT وINSERT وUPDATE وDELETE بغض النظر عن نظام قاعدة البيانات الارتباطية الذي تعمل عليه. على الرغم من أن عبارات SQL هذه هي جزء من معيار SQL ANSI، تضم العديد من أنظمة إدارة قاعدة البيانات أيضًا ملحقاتها الخاصة. توفر هذه الملحقات وظائف غير مشمولة بمعيار SQL، وتتضمن مجالات مثل إدارة الأمان وقابلية البرمجة. تستخدم أنظمة قواعد بيانات Microsoft مثل SQL Server وقاعدة بيانات Azure SQL وMicrosoft Fabric وغيرها لهجة من SQL تسمى Transact-SQL أو T-SQL. تتضمن T-SQL ملحقات اللغة لكتابة الإجراءات المخزنة والوظائف، التي هي تعليمة تطبيق برمجية يتم تخزينها في قاعدة البيانات، وإدارة حسابات المستخدمين.

SQL هي لغة تصريحية

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

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

بيانات ارتباطية

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

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

قاعدة بيانات ارتباطية تحتوي على أربعة جداول

يُظهر الرسم التخطيطي قاعدة بيانات ارتباطية تحتوي على أربعة جداول:

  • العميل
  • SalesOrderHeader
  • SalesOrderDetail
  • المنتج

يتم تعريف كل عميل بواسطة حقل CustomerID فريد - ويمثل هذا الحقل المفتاح الأساسي للجدول العميل. يحتوي الجدول SalesOrderHeader على مفتاح أساسي يسمى OrderID لتعريف كل طلب، ويتضمن أيضاً مفتاحاً خارجياً باسم CustomerID يشير إلى المفتاح الأساسي في الجدول العميل، لذا حدد العميل المقترن بكل طلب. يتم تخزين البيانات حول العناصر الفردية في ترتيب في الجدول SalesOrderDetail الذي يحتوي على مفتاح أساسي مركب يجمع بين OrderID في الجدول SalesOrderHeader وقيمة LineItemNo. تحديد تركيبة هذه القيم عنصر سطر بشكل فريد. يُستخدم الحقل OrderID أيضًا كمفتاح خارجي للإشارة إلى الترتيب الذي ينتمي إليه عنصر السطر، يتم استخدام الحقل ProductID كمفتاح خارجي للمفتاح الأساسي ProductID للجدول منتج للإشارة إلى المنتج الذي تم طلبه.

المعالجة المستندة إلَى مجموعات

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

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

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

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