إس كيو إل
| نموذج | تصريحي |
|---|---|
| عائلة | لغة الاستعلام |
| صمم بواسطة | دونالد د. تشامبرلين رايموند ف. بويس |
| المطور | ISO/IEC JTC 1 (اللجنة الفنية المشتركة 1) / SC 32 (اللجنة الفرعية 32) / WG 3 (مجموعة العمل 3) |
| ظهرت لأول مرة | 1974 |
| إصدار مستقر | SQL:2023
/ يونيو 2023 |
| الانضباط في الطباعة | ثابت وقوي |
| نظام التشغيل | متعدد المنصات |
| موقع إلكتروني | www.iso.org/standard/76583.html |
| التنفيذات الرئيسية | |
| كثير | |
| اللهجات | |
| |
| متأثر بـ | |
| سجل البيانات | |
| متأثر | |
| سي كيو إل ، لينك ، سباركل ، سوقل، بوويرشيل ، [1] JPQL ، جووك ، N1QL ، جي كيو إل | |
| امتداد اسم الملف |
.SQL |
|---|---|
| نوع الوسائط على الإنترنت |
تطبيق/SQL [2] [3] |
| تم التطوير بواسطة | ايزو / اي اي سي |
| الإصدار الأولي | 1986 |
| نوع التنسيق | قاعدة البيانات |
| معيار | ايزو/اي اي سي 9075 |
| تنسيق مفتوح ؟ | نعم |
| موقع إلكتروني | www.iso.org/standard/76583.html |
لغة الاستعلامات المنظمة ( SQL ) ( تُنطق / ˌɛsˌkjuˈɛl / SQL ؛ أو تُنطق أيضًا / ˈsiːkwəl / " تكملة " ) [ 4] [ 5] هي لغة خاصة بمجال معين تُستخدم لإدارة البيانات، وخاصةً في نظام إدارة قواعد البيانات العلائقية (RDBMS ) . وهي مفيدة بشكل خاص في التعامل مع البيانات المنظمة ، أي البيانات التي تتضمن علاقات بين الكيانات والمتغيرات.
تم تقديم SQL في سبعينيات القرن العشرين، وقد قدم ميزتين رئيسيتين على واجهات برمجة التطبيقات القديمة للقراءة والكتابة مثل ISAM أو VSAM . أولاً، قدم مفهوم الوصول إلى العديد من السجلات بأمر واحد . ثانيًا، يلغي الحاجة إلى تحديد كيفية الوصول إلى سجل، أي مع أو بدون فهرس .
استنادًا في الأصل إلى الجبر العلائقي وحساب التفاضل والتكامل العلائقي ، يتكون SQL من العديد من أنواع العبارات، [6] والتي يمكن تصنيفها بشكل غير رسمي على أنها لغات فرعية ، وهي بشكل عام: لغة استعلام البيانات (DQL)، ولغة تعريف البيانات (DDL)، ولغة التحكم في البيانات (DCL)، ولغة معالجة البيانات (DML). [7]
يشمل نطاق SQL استعلام البيانات، ومعالجة البيانات (الإدراج والتحديث والحذف)، وتعريف البيانات ( إنشاء المخطط وتعديله)، والتحكم في الوصول إلى البيانات. وعلى الرغم من أن SQL هي لغة إعلانية في الأساس ( 4GL )، إلا أنها تتضمن أيضًا عناصر إجرائية .
كانت لغة SQL واحدة من أولى اللغات التجارية التي تستخدم نموذج العلاقات الذي وضعه إدغار ف. كود . وقد تم وصف النموذج في ورقته البحثية المؤثرة التي كتبها عام 1970 بعنوان "نموذج العلاقات للبيانات للبنوك الكبيرة المشتركة". [8] وعلى الرغم من عدم الالتزام الكامل بالنموذج العلاقاتي الذي وصفه كود ، فقد أصبحت لغة SQL لغة قواعد البيانات الأكثر استخدامًا. [9] [10]
أصبحت لغة SQL معيارًا للمعهد الوطني الأمريكي للمعايير (ANSI) في عام 1986 وللمنظمة الدولية للمعايير (ISO) في عام 1987. [11] ومنذ ذلك الحين، تمت مراجعة المعيار عدة مرات ليشمل مجموعة أكبر من الميزات ويدمج امتدادات مشتركة. وعلى الرغم من وجود المعايير، إلا أنه لا يوجد تقريبًا أي تنفيذات موجودة تلتزم بها بالكامل، وتتطلب معظم أكواد SQL بعض التغييرات على الأقل قبل نقلها إلى أنظمة قواعد بيانات مختلفة .
تاريخ
تم تطوير SQL في البداية في IBM بواسطة Donald D. Chamberlin و Raymond F. Boyce بعد التعرف على النموذج العلائقي من Edgar F. Codd [12] في أوائل السبعينيات. [13] تم تصميم هذا الإصدار، الذي كان يسمى في البداية SEQUEL (لغة الاستعلام الإنجليزية المنظمة)، لمعالجة واسترجاع البيانات المخزنة في نظام إدارة قواعد البيانات شبه العلائقية الأصلي لشركة IBM، System R ، والذي طورته مجموعة في مختبر أبحاث IBM San Jose خلال السبعينيات. [13]
كانت المحاولة الأولى التي قام بها تشامبرلين وبويس في لغة قاعدة بيانات علائقية هي SQUARE (تحديد الاستعلامات في بيئة علائقية)، ولكن كان من الصعب استخدامها بسبب تدوين الحرف السفلي/الحرف العلوي. بعد الانتقال إلى مختبر أبحاث سان خوسيه في عام 1973، بدآ العمل على تكملة لـ SQUARE. [12] الاسم الأصلي SEQUEL، والذي يُنظر إليه على نطاق واسع على أنه تلاعب بالألفاظ على QUEL ، لغة الاستعلام الخاصة بـ Ingres ، [14] تم تغييره لاحقًا إلى SQL (إسقاط الحروف المتحركة) لأن "SEQUEL" كانت علامة تجارية لشركة Hawker Siddeley Dynamics Engineering Limited ومقرها المملكة المتحدة . [15] أصبحت تسمية SQL فيما بعد اختصارًا لـ Structured Query Language.
بعد اختبار SQL في مواقع اختبار العملاء لتحديد فائدة النظام وعمليته، بدأت IBM في تطوير المنتجات التجارية بناءً على النموذج الأولي لنظام R، بما في ذلك System/38 و SQL/DS و IBM Db2 ، والتي كانت متاحة تجاريًا في عام 1979 و1981 و1983 على التوالي. [16]
في أواخر سبعينيات القرن العشرين، رأت شركة Relational Software, Inc. (التي أصبحت الآن شركة Oracle Corporation ) الإمكانات الهائلة للمفاهيم التي وصفها كود وتشامبرلين وبويس، وطورت نظام إدارة قواعد البيانات العلائقية الخاص بها القائم على SQL بهدف بيعه إلى البحرية الأمريكية ووكالة الاستخبارات المركزية وغيرها من وكالات الحكومة الأمريكية . في يونيو 1979، قدمت شركة Relational Software أحد أول التطبيقات المتاحة تجاريًا لـ SQL، Oracle V2 (Version2) لأجهزة الكمبيوتر VAX .
بحلول عام 1986، اعتمدت مجموعات معايير ANSI و ISO رسميًا تعريف لغة "Database Language SQL" القياسي. نُشرت إصدارات جديدة من المعيار في أعوام 1989 و1992 و1996 و1999 و2003 و2006 و2008 و2011، [12] و2016 وأخيرًا في عام 2023. [17]
بناء الجملة
تنقسم لغة SQL إلى عدة عناصر لغوية، بما في ذلك:
- البنود ، وهي مكونات مكونة للبيانات والاستعلامات. (في بعض الحالات، تكون اختيارية.) [18]
- التعبيرات التي يمكنها إنتاج قيم عددية أو جداول تتكون من أعمدة وصفوف من البيانات
- المسندات ، التي تحدد الشروط التي يمكن تقييمها إلى منطق SQL ثلاثي القيم (3VL) (صواب/خطأ/غير معروف) أو قيم الحقيقة البوليانية وتستخدم للحد من تأثيرات العبارات والاستعلامات، أو لتغيير تدفق البرنامج.
- الاستعلامات التي تقوم باسترداد البيانات بناءً على معايير محددة. وهذا عنصر مهم في SQL .
- البيانات التي قد يكون لها تأثير مستمر على المخططات والبيانات، أو قد تتحكم في المعاملات ، أو تدفق البرنامج، أو الاتصالات، أو الجلسات، أو التشخيصات.
- تتضمن عبارات SQL أيضًا علامة الفاصلة المنقوطة (";") لإنهاء العبارة. ورغم أنها ليست مطلوبة على كل منصة، فهي تُعرَّف كجزء قياسي من قواعد SQL.
- يتم عادةً تجاهل المسافات البيضاء غير المهمة في عبارات SQL والاستعلامات، مما يجعل تنسيق كود SQL أسهل للقراءة.
التمديدات الإجرائية
تم تصميم SQL لغرض محدد: الاستعلام عن البيانات الموجودة في قاعدة بيانات علائقية . SQL هي لغة برمجة إعلانية تعتمد على المجموعة ، وليست لغة برمجة إلزامية مثل C أو BASIC . ومع ذلك، تضيف الإضافات إلى Standard SQL وظائف لغة برمجة إجرائية ، مثل هياكل التحكم في التدفق.
بالإضافة إلى ملحقات SQL/PSM القياسية وملحقات SQL الخاصة، تتوفر إمكانية البرمجة الإجرائية والبرمجة الموجهة للكائنات على العديد من منصات SQL عبر تكامل DBMS مع لغات أخرى. يحدد معيار SQL ملحقات SQL/JRT (روتينات SQL وأنواع لغة برمجة Java) لدعم كود Java في قواعد بيانات SQL. يستخدم Microsoft SQL Server 2005 SQLCLR (وقت تشغيل لغة SQL Server المشتركة) لاستضافة تجميعات .NET المُدارة في قاعدة البيانات ، بينما كانت الإصدارات السابقة من SQL Server مقتصرة على الإجراءات المخزنة الممتدة غير المُدارة المكتوبة في الأساس بلغة C. يتيح PostgreSQL للمستخدمين كتابة وظائف بمجموعة متنوعة من اللغات—بما في ذلك Perl و Python و Tcl و JavaScript (PL/V8) وC. [19]
التوافق التشغيلي والتوحيد القياسي
ملخص
إن تنفيذات SQL غير متوافقة بين البائعين ولا تتبع المعايير بالضرورة بشكل كامل. وعلى وجه الخصوص، تختلف قواعد التاريخ والوقت، وتسلسل السلاسل، وs، وحساسية حالةNULL المقارنة من بائع إلى آخر. يسعى PostgreSQL [20] و Mimer SQL [21] إلى الامتثال للمعايير، على الرغم من أن PostgreSQL لا يلتزم بالمعيار في جميع الحالات. على سبيل المثال، طي الأسماء غير المقتبسة إلى أحرف صغيرة في PostgreSQL غير متوافق مع معيار SQL، [22] الذي ينص على أنه يجب طي الأسماء غير المقتبسة إلى أحرف كبيرة. [23] وبالتالي، وفقًا للمعيار، يجب أن يكون معادلاً لـ ، وليس .
FooFOOfoo
إن التطبيقات الشائعة للغة SQL تتجاهل عادةً دعم الميزات الأساسية للغة SQL القياسية، مثل أنواع البيانات DATEأو TIME. ومن الأمثلة الأكثر وضوحًا على ذلك، وبالمناسبة أنظمة إدارة قواعد بيانات SQL التجارية والملكية الأكثر شيوعًا، Oracle (التي DATEتتصرف كـ DATETIME، [24] [25] وتفتقر إلى TIMEنوع) [26] وMS SQL Server (قبل إصدار 2008). ونتيجة لذلك، نادرًا ما يمكن نقل كود SQL بين أنظمة قواعد البيانات دون تعديلات.
أسباب عدم التوافق
هناك العديد من الأسباب التي تؤدي إلى عدم القدرة على النقل بين أنظمة قواعد البيانات، بما في ذلك:
- إن تعقيد وحجم معيار SQL يعني أن معظم المنفذين لا يدعمون المعيار بأكمله.
- لا يحدد معيار SQL سلوك قاعدة البيانات في بعض المناطق المهمة (على سبيل المثال، المؤشرات ، وتخزين الملفات)، مما يترك للتطبيقات أن تقرر كيفية التصرف.
- يؤجل معيار SQL بعض القرارات إلى التنفيذات الفردية، مثل كيفية تسمية عمود النتائج الذي لم يتم تسميته صراحةً. [27] : 207
- تحدد معايير SQL بدقة القواعد النحوية التي يجب أن يطبقها نظام قاعدة البيانات المطابق. ومع ذلك، فإن تحديد المعايير لدلالات بنيات اللغة أقل وضوحًا، مما يؤدي إلى الغموض.
- لدى العديد من بائعي قواعد البيانات قواعد عملاء موجودة كبيرة؛ حيث يتعارض الإصدار الأحدث من معيار SQL مع السلوك السابق لقاعدة بيانات البائع، وقد لا يكون البائع على استعداد لكسر التوافق مع الإصدارات السابقة .
- لا يوجد سوى حافز تجاري ضئيل للبائعين لتسهيل تغيير موردي قواعد البيانات (انظر حبس البائع ).
- يميل المستخدمون الذين يقومون بتقييم برامج قواعد البيانات إلى وضع عوامل أخرى مثل الأداء في مرتبة أعلى من أولوياتهم مقارنة بالتوافق مع المعايير.
تاريخ التقييس
تم اعتماد SQL كمعيار من قبل ANSI في عام 1986 باسم SQL-86 [28] وISO في عام 1987. [11] يتم صيانته بواسطة ISO / IEC JTC 1، تكنولوجيا المعلومات، اللجنة الفرعية SC 32، إدارة البيانات والتبادل .
حتى عام 1996، كان برنامج معايير إدارة البيانات التابع للمعهد الوطني للمعايير والتكنولوجيا (NIST) يعتمد على امتثال أنظمة إدارة قواعد البيانات SQL لمعيار SQL. والآن يقوم البائعون بإصدار شهادات امتثال منتجاتهم. [29]
أعلن المعيار الأصلي أن النطق الرسمي لـ "SQL" كان عبارة عن حرف أولي : / ˌ ɛ s ˌ k juː ˈ ɛ l / ("ess cue el"). [9] بغض النظر عن ذلك، يستخدم العديد من محترفي قواعد البيانات الناطقين باللغة الإنجليزية (بما في ذلك دونالد تشامبرلين نفسه [30] ) النطق المشابه للاختصار لـ / ˈ siː k w əl / ("sequel")، [31] مما يعكس اسم تطوير ما قبل الإصدار للغة، "SEQUEL". [13] [15] [30]
لقد مر معيار SQL بعدد من المراجعات:
| سنة | اسم | الاسم المستعار | تعليقات |
|---|---|---|---|
| 1986 | إس كيو إل-86 | إس كيو إل-87 | تم إضفاء الطابع الرسمي عليه لأول مرة بواسطة ANSI |
| 1989 | إس كيو إل-89 | فيبس 127-1 | مراجعة بسيطة تم فيها إضافة قيود على النزاهة تم تبنيها في FIPS 127-1 |
| 1992 | إس كيو إل-92 | SQL2، FIPS 127-2 | مراجعة رئيسية (ISO 9075)، تم اعتماد SQL-92 للمستوى الأول باعتباره FIPS 127-2 |
| 1999 | إس كيو إل:1999 | إس كيو إل 3 | تمت إضافة مطابقة التعابير العادية، والاستعلامات المتكررة (على سبيل المثال، الإغلاق المتعدي )، والمحفزات ، ودعم العبارات الإجرائية وعبارات التحكم في التدفق، والأنواع غير القياسية (المصفوفات)، وبعض الميزات الموجهة للكائنات (على سبيل المثال، الأنواع المنظمة )، ودعم تضمين SQL في Java ( SQL/OLB ) والعكس صحيح ( SQL/JRT ) |
| 2003 | إس كيو إل:2003 | تم تقديم ميزات مرتبطة بـ XML ( SQL/XML )، ووظائف النافذة ، والتسلسلات القياسية، والأعمدة ذات القيم المولدة تلقائيًا (بما في ذلك أعمدة الهوية) | |
| 2006 | إس كيو إل:2006 | تحدد ISO/IEC 9075-14:2006 الطرق التي يمكن بها استخدام SQL مع XML. كما تحدد طرق استيراد بيانات XML وتخزينها في قاعدة بيانات SQL، ومعالجتها داخل قاعدة البيانات، ونشر بيانات XML وSQL التقليدية في شكل XML. بالإضافة إلى ذلك، تتيح للتطبيقات دمج الاستعلامات في كود SQL الخاص بها باستخدام XQuery ، لغة استعلام XML التي نشرها اتحاد شبكة الويب العالمية ( W3C )، للوصول في نفس الوقت إلى بيانات SQL العادية ومستندات XML. [32] | |
| 2008 | إس كيو إل:2008 | يضفي الشرعية على تعريفات المؤشر الخارجي ORDER BY. ويضيف بدلاً من المشغلات، وعبارة TRUNCATE، و [33] شرط FETCH | |
| 2011 | إس كيو إل:2011 | إضافة بيانات زمنية (PERIOD FOR) [34] (مزيد من المعلومات في Temporal database#History ). تحسينات لوظائف النافذة وبند FETCH. [35] | |
| 2016 | إس كيو إل:2016 | يضيف مطابقة نمط الصف، ووظائف الجدول المتعددة الأشكال، والعمليات على بيانات JSON المخزنة في حقول سلسلة الأحرف | |
| 2019 | SQL:2019–2020 | إضافة الجزء 15، المصفوفات متعددة الأبعاد (نوع MDarray والعاملين) | |
| 2023 | إس كيو إل:2023 | إضافة نوع البيانات JSON (SQL/Foundation)؛ إضافة الجزء 16، استعلامات الرسم البياني للخصائص (SQL/PGQ) |
المعيار الحالي
يُشار إلى المعيار عادةً بالنمط التالي: ISO/IEC 9075-n:yyyy الجزء n: العنوان ، أو اختصارًا، ISO/IEC 9075. يمكن للأطراف المهتمة شراء مستندات المعايير من ISO، [36] أو IEC، أو ANSI. بعض المسودات القديمة متاحة مجانًا. [37] [38]
يتم استكمال ISO/IEC 9075 بواسطة ISO/IEC 13249: حزم الوسائط المتعددة والتطبيقات SQL وبعض التقارير الفنية .
البدائل
يجب التمييز بين البدائل للغة SQL والبدائل للنموذج العلائقي نفسه. فيما يلي البدائل العلائقية المقترحة للغة SQL. راجع قاعدة البيانات الملاحية و NoSQL للحصول على بدائل للنموذج العلائقي.
- .QL : سجل بيانات موجه للكائنات
- لغة الاستعلام رباعية الأبعاد (4D QL)
- Datalog : يقترح النقاد أن Datalog يتمتع بميزتين على SQL: فهو يتمتع بدلالات أكثر وضوحًا، مما يسهل فهم البرنامج وصيانته، وهو أكثر تعبيرًا، وخاصةً للاستعلامات المتكررة. [39]
- HTSQL : طريقة الاستعلام المستندة إلى عنوان URL
- IBM Business System 12 (IBM BS12): أحد أول أنظمة إدارة قواعد البيانات العلائقية بالكامل، تم تقديمه في عام 1982
- مدرسة ابتدائية دولية
- jOOQ : SQL تم تنفيذه في Java كلغة داخلية خاصة بالمجال
- لغة استعلام Java Persistence (JPQL): لغة الاستعلام المستخدمة بواسطة Java Persistence API ومكتبة Hibernate persistence
- JavaScript : تنفذ MongoDB لغة الاستعلام الخاصة بها في واجهة برمجة تطبيقات JavaScript.
- LINQ : تشغيل عبارات SQL المكتوبة مثل هياكل اللغة للاستعلام عن المجموعات مباشرة من داخل كود .Net
- لغة استعلام الكائنات
- QBE ( الاستعلام بالمثال ) تم إنشاؤه بواسطة Moshè Zloof، IBM 1977
- تم تقديم QUEL في عام 1974 بواسطة مشروع UC Berkeley Ingres، وهو أقرب إلى حساب التفاضل والتكامل العلائقي من SQL
- إكس كويري
معالجة SQL الموزعة
تم تصميم هندسة قاعدة البيانات العلائقية الموزعة (DRDA) بواسطة مجموعة عمل داخل شركة IBM من عام 1988 إلى عام 1994. تمكن DRDA قواعد البيانات العلائقية المتصلة بالشبكة من التعاون لتلبية طلبات SQL. [40] [41]
يمكن للمستخدم التفاعلي أو البرنامج إصدار عبارات SQL إلى قاعدة بيانات علائقية محلية وتلقي جداول البيانات ومؤشرات الحالة ردًا على ذلك من قواعد البيانات العلائقية البعيدة. يمكن أيضًا تجميع عبارات SQL وتخزينها في قواعد بيانات علائقية بعيدة كحزم ثم استدعاؤها حسب اسم الحزمة. وهذا مهم للتشغيل الفعّال لبرامج التطبيق التي تصدر استعلامات معقدة وعالية التردد. وهو مهم بشكل خاص عندما تكون الجداول المراد الوصول إليها موجودة في أنظمة بعيدة.
يتم تعريف الرسائل والبروتوكولات والمكونات البنيوية لـ DRDA بواسطة بنية إدارة البيانات الموزعة . تتميز معالجة SQL الموزعة مثل DRDA عن قواعد بيانات SQL الموزعة المعاصرة .
انتقادات
تصميم
تنحرف لغة SQL بطرق عديدة عن أساسها النظري، وهو النموذج العلائقي وحساب التفاضل والتكامل. في هذا النموذج، يكون الجدول عبارة عن مجموعة من التفاضلات، بينما في SQL، تكون الجداول ونتائج الاستعلام عبارة عن قوائم من الصفوف؛ وقد يظهر نفس الصف عدة مرات، ويمكن استخدام ترتيب الصفوف في الاستعلامات (على سبيل المثال، في بند LIMIT). يزعم المنتقدون أنه يجب استبدال لغة SQL بلغة تعود بشكل صارم إلى الأساس الأصلي: على سبيل المثال، انظر The Third Manifesto من تأليف Hugh Darwen وCJ Date (2006، ISBN 0-321-39942-0 ).
التقويم والاكتمال
لم تدعم المواصفات المبكرة الميزات الرئيسية، مثل المفاتيح الأساسية. ولم يكن من الممكن تسمية مجموعات النتائج، ولم يتم تعريف الاستعلامات الفرعية. وقد تمت إضافتها في عام 1992. [12]
وُصِف الافتقار إلى أنواع المجموع بأنه عقبة أمام الاستخدام الكامل لأنواع SQL المحددة من قبل المستخدم. على سبيل المثال، كان من الضروري إضافة دعم JSON بواسطة معيار جديد في عام 2016. [42]
باطل
مفهوم Null هو موضوع بعض المناقشات . يشير علامة Null إلى عدم وجود قيمة، وهي مختلفة عن قيمة 0 لعمود عدد صحيح أو سلسلة فارغة لعمود نصي. يفرض مفهوم Nulls منطق القيم الثلاث في SQL ، وهو تنفيذ ملموس لمنطق القيم الثلاث العام . [12]
مكررات
هناك انتقاد شائع آخر وهو أنه يسمح بتكرار الصفوف، مما يجعل التكامل مع لغات مثل بايثون ، والتي قد تجعل أنواع بياناتها تمثيل البيانات بدقة أمرًا صعبًا، [12] من حيث التحليل وبسبب غياب الوحدات النمطية. وعادةً ما يتم تجنب ذلك عن طريق إعلان مفتاح أساسي، أو قيد فريد، مع عمود واحد أو أكثر يحدد صفًا فريدًا في الجدول.
عدم تطابق المعاوقة
بمعنى مشابه لعدم تطابق المعاوقة بين الكائنات والعلاقات ، يحدث عدم تطابق بين لغة SQL التصريحية واللغات الإجرائية التي يتم فيها عادةً تضمين SQL. [ بحاجة لمصدر ]
أنواع بيانات SQL
يحدد معيار SQL ثلاثة أنواع من أنواع البيانات (الفصل 4.1.1 من SQL/Foundation):
- أنواع البيانات المحددة مسبقًا
- أنواع مبنية
- أنواع محددة من قبل المستخدم.
الأنواع المصممة هي أحد أنواع ARRAY أو MULTISET أو REF(erence) أو ROW. الأنواع المحددة من قبل المستخدم قابلة للمقارنة بالفئات في لغة موجهة للكائنات مع منشئيها ومراقبيها ومحوِّلاتها وطرقها وإرثها وتحميلها الزائد وكتابتها فوقها وواجهاتها وما إلى ذلك. أنواع البيانات المحددة مسبقًا مدعومة جوهريًا بواسطة التنفيذ.
أنواع البيانات المحددة مسبقًا
- أنواع الشخصيات
- الحرف (CHAR)
- تغيير الأحرف (VARCHAR)
- كائن كبير ذو شخصية (CLOB)
- أنواع الشخصيات الوطنية
- الشخصية الوطنية (NCHAR)
- الشخصية الوطنية متفاوتة (NCHAR VARYING)
- كائن كبير ذو طابع وطني (NCLOB)
- أنواع ثنائية
- ثنائي (BINARY)
- متغير ثنائي (VARBINARY)
- كائن ثنائي كبير (BLOB)
- أنواع رقمية
- أنواع رقمية دقيقة (NUMERIC، DECIMAL، SMALLINT، INTEGER، BIGINT)
- أنواع الأرقام التقريبية (FLOAT، REAL، DOUBLE PRECISION)
- نوع الفاصلة العائمة العشرية (DECFLOAT)
- أنواع التاريخ والوقت (التاريخ والوقت والطابع الزمني)
- نوع الفاصل الزمني (INTERVAL)
- منطقي
- XML (انظر SQL/XML ) [43]
- جيسون
انظر أيضا
- قاعدة بيانات الكائنات
- قائمة أنظمة إدارة قواعد البيانات العلائقية
- مقارنة بين أنظمة إدارة قواعد البيانات العلائقية
- مقارنة بين أنظمة إدارة قواعد البيانات العلائقية والكائنية
- الاستعلام حسب المثال
- كلمات محجوزة SQL
- بناء جملة SQL
- أوراكل PL/SQL
- Microsoft Transact-SQL (T-SQL)
- معالجة المعاملات عبر الإنترنت (OLTP)
- المعالجة التحليلية عبر الإنترنت (OLAP)
- مستودع البيانات
- نظام إدارة تدفق البيانات العلائقية
- NoSQL
- النكاف
- نموذج قاعدة البيانات الهرمية
- مخطط النجمة
- مخطط ندفة الثلج
ملحوظات
مراجع
- ^ بول، رايان (24 أكتوبر 2005). "جولة إرشادية في Microsoft Command Shell". Ars Technica . تم الاسترجاع في 10 أبريل 2011 .
- ^ "تسجيل نوع الوسائط للتطبيق/SQL". هيئة أرقام الإنترنت المخصصة . 10 أبريل 2013. تم الاسترجاع في 10 أبريل 2013 .
- ^ Shafranovich, Y. (أبريل 2013). "نوع الوسائط application/sql، RFC 6922". فريق عمل هندسة الإنترنت . ص. 3. doi :10.17487/RFC6922 . تم الاسترجاع في 10 أبريل 2013 .
- ^ Beaulieu, Alan (April 2009). Mary E Treseler (ed.). Learning SQL (2nd ed.). Sebastopol, CA, USA: O'Reilly. ISBN 978-0-596-52083-0.
- ^ Chamberlin, Donald D.; Frana, Philip L. (3 October 2001 ) . "Oral history interview with Donald D. Chamberlin". University Digital Conservancy . hdl :11299/107215 . تم الاسترجاع في 14 يناير 2020.
لقد قمنا بتغيير الاسم الأصلي "SEQUEL" إلى SQL لأننا تلقينا خطابًا من محامي شخص ما يقول إن اسم "SEQUEL" ينتمي إليه. لقد قمنا بتقصيره إلى SQL، وهي اختصار لـ Structured Query Language، وكان المنتج يُعرف باسم SQL/DS.
- ^ SQL-92 ، 4.22 عبارات SQL، 4.22.1 فئات عبارات SQL "هناك خمس طرق على الأقل لتصنيف عبارات SQL:"، 4.22.2، عبارات SQL مصنفة حسب الوظيفة "فيما يلي الفئات الرئيسية لعبارات SQL:"؛ SQL: 2003 4.11 عبارات SQL، والمراجعات اللاحقة.
- ^ تشاتام، مارك (2012). لغة الاستعلامات المنظمة بالمثال - المجلد الأول: لغة الاستعلامات عن البيانات. Lulu.com. ص. 8. ISBN 9781291199512.
- ^ Codd, Edgar F. (يونيو 1970). "نموذج علائقي للبيانات للبنوك الكبيرة المشتركة للبيانات". اتصالات ACM . 13 (6): 377– 87. CiteSeerX 10.1.1.88.646 . doi :10.1145/362384.362685. S2CID 207549016.
- ^ ab Chapple, Mike. "SQL Fundamentals". قواعد البيانات . About.com . تم الاسترجاع في 28 يناير 2009 .
- ^ "لغة الاستعلامات المنظمة (SQL)". International Business Machines. 27 أكتوبر 2006. تم الاسترجاع في 10 يونيو 2007 .
- ^ "ISO 9075:1987: تكنولوجيا المعلومات – لغات قواعد البيانات – SQL – الجزء 1: الإطار (SQL/Framework)". 1 يونيو 1987.
- ^ abcdef Chamberlin, Donald (2012). "Early History of SQL". IEEE Annals of the History of Computing . 34 (4): 78– 82. doi :10.1109/MAHC.2012.61. S2CID 1322572.
- ^ abc Chamberlin, Donald D; Boyce, Raymond F (1974). "SEQUEL: A Structured English Query Language" (PDF) . Proceedings of the 1974 ACM SIGFIDET Workshop on Data Description, Access and Control . Association for Computing Machinery: 249– 64. مؤرشف من الأصل (PDF) في 26 سبتمبر 2007. تم الاسترجاع في 9 يونيو 2007 .
- ^ Starkey, Jim. "Dynamic SQL, Plumbing, and the Internal API". www.ibphoenix.com . تم الاسترجاع في 19 يناير 2023 .
- ^ ab Oppel, Andy (27 فبراير 2004). Databases Demystified. سان فرانسيسكو، كاليفورنيا : McGraw-Hill Osborne Media. ص 90- 1. ISBN 978-0-07-146960-9.
- ^ "تاريخ آي بي إم، 1978". أرشيف آي بي إم . آي بي إم. 23 يناير 2003. مؤرشف من الأصل في 17 يناير 2005. تم الاسترجاع في 9 يونيو 2007 .
- ^ “ISO – ISO/IEC JTC 1/SC 32 – إدارة البيانات وتبادلها”. www.iso.org . تم الاسترجاع في 2 يناير 2021 .
- ^ ANSI/ISO/IEC International Standard (IS). لغة قاعدة البيانات SQL—الجزء 2: Foundation (SQL/Foundation). 1999.
- ^ "برمجة خادم PostgreSQL". الوثائق الرسمية لـ PostgreSQL 9.1 . postgresql.org. 2011. تم الاسترجاع في 9 مارس 2012 .
- ^ "حول PostgreSQL". الموقع الرسمي لـ PostgreSQL 9.1 . مجموعة تطوير PostgreSQL العالمية. 2012. تم الاسترجاع في 9 مارس 2012. تفتخر PostgreSQL بالامتثال للمعايير .
يتوافق تطبيق SQL الخاص بها بشدة مع معيار ANSI-SQL:2008
- ^ "Mimer SQL, Built on Standards". الموقع الرسمي لـ Mimer SQL . Mimer Information Technology. 2009.
- ^ "4.1. البنية المعجمية". وثائق PostgreSQL . 2018.
- ^ "(مسودة المراجعة غير الرسمية الثانية) ISO/IEC 9075:1992، لغة قاعدة البيانات SQL، القسم 5.2، قاعدة بناء الجملة 11". 30 يوليو 1992.
- ^ Lorentz, Diana; Roeser, Mary Beth; Abraham, Sundeep; Amor, Angela; Arora, Geeta; Arora, Vikas; Ashdown, Lance; Baer, Hermann; Bellamkonda, Shrikanth (October 2010) [1996]. "العناصر الأساسية لـ Oracle SQL: أنواع البيانات". Oracle Database SQL Language Reference 11g Release 2 (11.2) . مكتبة وثائق قاعدة بيانات Oracle. Redwood City, CA: Oracle USA, Inc. تم الاسترجاع في 29 ديسمبر 2010.
لكل
قيمة، تخزن Oracle المعلومات التالية: القرن والسنة والشهر والتاريخ والساعة والدقيقة والثانية
DATE - ^ Lorentz, Diana; Roeser, Mary Beth; Abraham, Sundeep; Amor, Angela; Arora, Geeta; Arora, Vikas; Ashdown, Lance; Baer, Hermann; Bellamkonda, Shrikanth (October 2010) [1996]. "العناصر الأساسية لـ Oracle SQL: أنواع البيانات". Oracle Database SQL Language Reference 11g Release 2 (11.2) . مكتبة وثائق قاعدة بيانات Oracle. Redwood City, CA: Oracle USA, Inc. تم الاسترجاع في 29 ديسمبر 2010.
أنواع بيانات التاريخ والوقت هي
...
DATE - ^ Lorentz, Diana; Roeser, Mary Beth; Abraham, Sundeep; Amor, Angela; Arora, Geeta; Arora, Vikas; Ashdown, Lance; Baer, Hermann; Bellamkonda, Shrikanth (October 2010) [1996]. "العناصر الأساسية لـ Oracle SQL: أنواع البيانات". Oracle Database SQL Language Reference 11g Release 2 (11.2) . مكتبة وثائق قاعدة بيانات Oracle. Redwood City, CA: Oracle USA, Inc. تم الاسترجاع في 29 ديسمبر 2010.
لا تقم بتعريف الأعمدة بأنواع البيانات SQL/DS وDB2 التالية، لأنها لا تحتوي على نوع بيانات Oracle مطابق:...
TIME - ^ Date, Chris J. (2013). Relational Theory for Computer Professionals: What Relational Databases are Really All About (الطبعة الأولى). سيباستوبول، كاليفورنيا: أوريلي ميديا. ISBN 978-1-449-36943-9.
- ^ "مساعدة في البحث". سجلات X3H2، 1978-1995 . المعهد الوطني الأمريكي للمعايير.
- ^ Doll, Shelley (19 يونيو 2002). "هل أصبح SQL معيارًا بعد الآن؟". موقع Builder.com التابع لـ TechRepublic . مؤرشف من الأصل في 5 يوليو 2012. تم الاسترجاع في 12 أبريل 2016 .
- ^ ab Gillespie, Patrick. "نطق SQL: SQL أم تكملة؟" . تم الاسترجاع في 12 فبراير 2012 .
- ^ ميلتون، جيم؛ آلان آر سيمون (1993). "1.2. ما هو SQL؟" . فهم SQL الجديد: دليل كامل. مورجان كوفمان. ص 536. ISBN 978-1-55860-245-8.
SQL (يتم نطقها بشكل صحيح "ess cue ell،" بدلاً من "sequel" الشائعة إلى حد ما)...
- ^ فاغنر مايكل (2010). SQL/XML:2006 - تقييم التوافق القياسي لنظام بنك البيانات . دار النشر الدبلوماسية. ص. 100. ردمك 978-3-8366-9609-8.
- ^ "SQL:2008 أصبح الآن معيارًا دوليًا معتمدًا من قبل منظمة ISO". Sybase. يوليو 2008. مؤرشف من الأصل في 28 يونيو 2011.
- ^ كريشنا كولكارني، جان إيكي ميشيلز (سبتمبر 2012). "الميزات المؤقتة في SQL: 2011" (PDF) . سجل سيجمود . 41 (3).
- ^ فريد زيمكي (2012). "ما الجديد في SQL:2011" (PDF) . شركة أوراكل.
- ^ "ISO/IEC 9075".
- ^ مسودة SQL:1992 (نص)
- ^ مسودة SQL:2011، Whitemarsh Information Systems Corporation، مؤرشفة من الأصل (Zip) في 25 مايو 2023
- ^ فرناندو ساينز بيريز. "الوصلات الخارجية في نظام قاعدة بيانات استنتاجي" (PDF) . Lbd.udc.es. تم الاسترجاع في 16 يناير 2017 .
- ^ Reinsch, R. (1988). "قاعدة بيانات موزعة لـ SAA". مجلة أنظمة IBM . 27 (3): 362– 389. doi :10.1147/sj.273.0362.
- ^ مرجع هندسة قاعدة البيانات العلائقية الموزعة . IBM Corp. SC26-4651-0. 1990.
- ^ براندون، جيمي (يوليو 2021). "ضد SQL" . تم الاسترجاع في 2 أغسطس 2021 .
- ^ "دعم معيار SQL 2003 في قاعدة بيانات Oracle 10g" (PDF) . Oracle . Oracle Corporation . نوفمبر 2003 . تم الاسترجاع في 27 مارس 2024 .تمت إضافة دعم XML في ANSI SQL 2003، الجزء 14.
مصادر
- كود، إدغار ف (يونيو 1970). "نموذج علائقي للبيانات لبنوك البيانات المشتركة الكبيرة". اتصالات جمعية الحوسبة الآلية . 13 (6): 377– 87. doi : 10.1145/362384.362685 . S2CID 207549016.
- مناقشة حول عيوب SQL المزعومة (C2 wiki)
- CJ Date with Hugh Darwen : دليل إلى معيار SQL: دليل المستخدم إلى لغة قاعدة البيانات القياسية SQL، الطبعة الرابعة ، أديسون ويسلي، الولايات المتحدة الأمريكية 1997، ISBN 978-0-201-96426-4
روابط خارجية
- 1995 SQL Reunion: People, Projects, and Politics، بقلم بول ماكجونز (المحرر): نص اجتماع لم شمل مخصص للتاريخ الشخصي لقواعد البيانات العلائقية وSQL.
- المعهد الوطني الأمريكي للمعايير. سجلات X3H2، 1978–1995 توثق مجموعة معهد تشارلز باباج تطوير لجنة H2 لمعايير NDL وSQL.
- مقابلة تاريخية شفوية مع دونالد د. تشامبرلين معهد تشارلز باباج في هذا التاريخ الشفوي، يروي تشامبرلين حياته المبكرة وتعليمه في كلية هارفي مود وجامعة ستانفورد وعمله في تكنولوجيا قواعد البيانات العلائقية. كان تشامبرلين عضوًا في فريق البحث في نظام R، وقام مع ريموند ف. بويس بتطوير لغة قاعدة بيانات SQL. يناقش تشامبرلين أيضًا بإيجاز أبحاثه الأخيرة حول لغات استعلام XML.
