لغة الاستعلامات البنائية (أو البنيوية) (بالإنجليزية: Structured Query Language أو SQL)‏ (لغة قواعد البيانات) هي لغة برمجة غير إجرائية، وهي بذلك تختلف عن لغات البرمجة المعتادة مثل سي أو جافا، حيث أن اللغات غير الإجرائية هي لغات متخصصة. ولذلك فإن لغة الاستعلامات البنائية هي لغة للتعامل والتحكم مع قواعد البيانات المترابطة من خلال التعامل مع تراكيب البيانات وإجراء عمليات إدخال البيانات والحذف والفرز والبحث والتصفية والتعديل وخلافه.
محتويات
1 تاريخ تطور لغة الاستعلامات البنائية
1.1 تاريخ التوحيد القياسي
2 تركيب لغة الاستعلامات البنائية
2.1 لغة تعريف البيانات (DDL)
2.2 لغة معالجة البيانات (DML)
2.3 لغة التحكم بالبيانات (DCL)
3 انتقادات حول لغة الاستعلامات البنائية
3.1 التصميم
3.2 إنتقادات أخرى
3.2.1 تعامد واكتمال
3.2.2 القيمة الفارغه
3.2.2.1 التكرارات
3.2.3 عدم تطابق المعاوقة
4 بدائل لغة الاستعلامات البنائية
5 النظم التي تدعم لغة الاستعلامات البنائية
6 انظر أيضًا
7 مراجع
8 وصلات خارجية
تاريخ تطور لغة الاستعلامات البنائية
في يونيو 1970 نشر العالم البريطاني إدجار كود ورقة علمية بعنوان "A Relational Model of Data for Large Shared Data Banks" (نموذج مترابط للبيانات في مستودعات البيانات الضخمة المشتركة) قدم فيها نموذجا لإنشاء وإدارة قواعد البيانات عرف باسم نموذج قاعدة البيانات العلائقية (بالإنجليزية: Relational Database Model)‏. وفقا لهذا النموذج، يتم الاحتفاظ بالبيانات في جداول متفرقة ترتبط فيما بينها بعلاقات. حقق نموذج قاعدة البيانات العلائقية نجاحًا سريعًا بين المختصين، لكن كان من الصعب التعامل مع هذا النموذج من خلال لغات البرمجة المألوفة آنذاك مثل لغة سي وبيسيك. لذلك سعى المختصون في ابتكار لغة برمجة جديدة تكون قادرة على إنشاء قواعد البيانات والتعامل معها وفق نموذج قاعدة البيانات العلائقية. قامت جماعة من الباحثين في مختبرات شركة آي بي إم بإنتاج أول لغة برمجة تحقق هذا الهدف وأطلقوا عليها الاسم سيكيول (بالإنجليزية: SEQUEL)‏ وهذا اللفظ اختصار لعبارة اللغة الإنجليزية "Structured English Query Language" والتي تعني لغة الاستعلامات البنائية الإنجليزية. لكنهم تخلوا عن هذا الاسم سريعًا عندما اكتشفوا أنه علامة تجارية لشركة بريطانية تعمل في حقل الطيران واستبدلوه بالاسم الذي أصبح مستخدم حتى اليوم وهو إس كيو إل الذي يرمز إلى تركيب لغة الاستعلامات البنائية. قامت شركة آي بي إم باستخدام تركيب لغة الاستعلامات البنائية في إنتاج عدد من نظم إدارة قواعد البيانات المترابطة وتوزيعها مثل النظام System R والنظام System/38 والنظام SQL/DS وأخيرًا النظام DB2. لكن النظام الذي حقق النجاح الأكبر هو النظام الذي اعتمدته شركة أوراكل وحمل اسمها والذي طرحته لأول مرة عام 1979. منذ ابتكار لغة الاستعلامات البنائية في مطلع السبعينات، خضعت للعديد من التعديلات والتطويرات. كما قامت العديد من الشركات والمؤسسات البحثية بتصميم نسختها الخاصة من تركيب لغة الاستعلامات البنائية. ولمجابهة هذا الموقف قام المعهد الوطني الأمريكي للقياس (بالإنجليزية: American National Standards Institute أو ANSI)‏ بإصدار أول نسخة قياسية من تركيب لغة الاستعلامات البنائية عام 1987 والتي عرفت باسم SQL1987. ثم توالت التعديلات والنسخ القياسية، وحاليًا فإن اللغة القياسة المعتمدة هي إس كيو إل:٢٠٠٨.

تاريخ التوحيد القياسي
إصدرات إس كيو إل
السنة الإسم إسم آخر تعليقلات
١٩٨٦ إس كيو إل-٨٦ إس كيو إل-٨٧ عرفت رسمياً من قبل ANSI
١٩٨٩ إس كيو إل-٨٩ FIPS 127-1 مراجعة بسيطة، إضافة قيود التكامل
١٩٩٢ إس كيو إل-٩٢ إس كيو إل ٢، FIPS 127-2 مراجعة رئيسية (ISO 9075)، مستوى الإدخال SQL-92
١٩٩٩ إس كيو إل:1999 إس كيو إل ٣
مطابقة التعابير النمطية
الاستعلامات العودية (على سبيل المثال، الإغلاق المتعدي)
المحركات
دعم للعبارات الإجرائية
التحكم في التدفق
أنواع بيانات غير رقمية (المصفوفات)
بعض الميزات الموجهة (مثل الأنواع المنظمة)
دعم لتضمين إس كيو إل في جافا (SQL/OLB) والعكس (SQL/JRT)
٢٠٠٣ إس كيو إل:٢٠٠٣ تم إضافة الميزات المتعلقة بـ
إكس إم إل (SQL/XML)
دالات ويندوز، التسلسلات القياسية
الأعمدة ذات القيم التي يتم إنشاؤها تلقائيًا (بما في ذلك أعمدة الهوية)
٢٠٠٦ إس كيو إل:٢٠٠٦ ISO/IEC 9075-14:2006 يحدد الطرق التي يمكن بها استخدام إس كيو إل مع XML. وهو يحدد طرق استيراد وتخزين بيانات XML في قاعدة بيانات إس كيو إل ومعالجتها داخل قاعدة البيانات ونشر كل من XML والبيانات التقليدية في نموذج XML. بالإضافة إلى ذلك، فإنه يتيح للتطبيقات دمج الاستعلامات في التعليمات البرمجية الخاصة بإس كيو إل الخاصة بها باستخدام XQuery، لغة استعلام XML التي نشرها اتحاد رابطة الشبكة العالمية (W3C)، للوصول في نفس الوقت إلى بيانات إس كيو إل العادية ومستندات XML
٢٠٠٨ إس كيو إل:٢٠٠٨
إضفاء الشرعية على ORDER BY خارج تعريفات المؤشر
إضافة محرك INSTEAD OF وعبارة TRUNCATE ومقطع FETCH
٢٠١١ إس كيو إل:٢٠١١
إضافة بيانات مؤقتة (PERIOD FOR) (مزيد من المعلومات في: قاعدة البيانات الزمنية #التاريخ)
تحسينات لدالات ويندوز ومقطع FETCH
٢٠١٦ إس كيو إل:٢٠١٦ إضافة مطابقة نمط الصف، وظائف الجدول متعدد الأشكال، جسون
٢٠١٩ إس كيو إل:٢٠١٩ إضافة الجزء 15، المصفوفات متعددة الأبعاد (نوع MDarray والمعاملات)
تركيب لغة الاستعلامات البنائية
تتركب لغة الاستعلامات البنائية من عدد من الكلمات المحجوزة، ويمكن تقسيم هذه الكلمات المحجوزة تبعًا لوظائفها التي تقوم بها إلى ثلاثة أقسام رئيسة هي: