SQL

لغة الاستعلام المنظمة ( SQL ) ( تُنطق / ˌ ɛ s ˌ k j u ˈ ɛ l / SQL ؛ أو بدلاً من ذلك كـ / ˈ s k w ə l / "sequel" [ 4 ] [ 5 ] هيلغة خاصة بمجال معينتُستخدم لإدارة البيانات، لا سيما فينظام إدارة قواعد البيانات العلائقية(RDBMS). وهي مفيدة بشكل خاص في التعامل معالبيانات المهيكلة، أي البيانات التي تتضمن علاقات بين الكيانات والمتغيرات. [ 6 ]

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

تعتمد لغة SQL في الأصل على الجبر العلائقي وحساب العلاقات الثنائية ، وتتألف من أنواع عديدة من العبارات، [ 7 ] والتي يمكن تصنيفها بشكل غير رسمي على أنها لغات فرعية ، وهي عادةً: لغة استعلام البيانات (DQL)، ولغة تعريف البيانات (DDL)، ولغة التحكم في البيانات (DCL)، ولغة معالجة البيانات (DML). [ 8 ]

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

كانت لغة SQL من أوائل اللغات التجارية التي استخدمت نموذج إدغار ف. كود العلائقي . وقد وُصف هذا النموذج في بحثه المؤثر عام 1970 بعنوان "نموذج علائقي للبيانات لقواعد البيانات المشتركة الكبيرة". [ 9 ] ورغم عدم التزامها التام بالنموذج العلائقي كما وصفه كود ، أصبحت SQL لغة قواعد البيانات الأكثر استخدامًا على نطاق واسع. [ 10 ] [ 11 ]

أصبحت لغة SQL معيارًا للمعهد الوطني الأمريكي للمعايير (ANSI) عام 1986، وللمنظمة الدولية للمعايير (ISO) عام 1987. [ 12 ] ومنذ ذلك الحين، نُقّح المعيار عدة مرات ليشمل مجموعة أكبر من الميزات ويُدمج الامتدادات الشائعة. ورغم وجود المعايير، لا يكاد يوجد أي تطبيق يلتزم بها التزامًا كاملًا، ويتطلب معظم كود SQL إجراء بعض التعديلات على الأقل قبل نقله إلى أنظمة قواعد بيانات مختلفة .

تاريخ

طُوِّرت لغة SQL في البداية في شركة IBM على يد دونالد د. تشامبرلين وريموند ف. بويس بعد أن تعرّفا على النموذج العلائقي من إدغار ف. كود [ 13 ] في أوائل سبعينيات القرن العشرين. [ 14 ] صُمِّمت هذه النسخة، التي سُمِّيت في البداية SEQUEL (لغة الاستعلام الإنجليزية المهيكلة)، لمعالجة واسترجاع البيانات المخزنة في نظام إدارة قواعد البيانات شبه العلائقية الأصلي لشركة IBM، System R ، الذي طوّره فريق في مختبر أبحاث IBM سان خوسيه خلال سبعينيات القرن العشرين. [ 14 ]

كانت محاولة تشامبرلين وبويس الأولى في تطوير لغة قواعد بيانات علائقية هي SQUARE (تحديد الاستعلامات في بيئة علائقية)، إلا أنها واجهت صعوبة في الاستخدام بسبب نظام الترميز السفلي/العلوي. بعد انتقالهما إلى مختبر سان خوسيه للأبحاث عام ١٩٧٣، بدآ العمل على تطوير نسخة مكملة من SQUARE. [ ١٣ ] الاسم الأصلي SEQUEL، الذي يُعتقد على نطاق واسع أنه تورية على QUEL ، لغة الاستعلامات في Ingres ، [ ١٥ ] تم تغييره لاحقًا إلى SQL (بحذف حروف العلة) لأن "SEQUEL" كانت علامة تجارية مسجلة لشركة Hawker Siddeley Dynamics Engineering Limited البريطانية . [ ١٦ ] أصبح اختصار SQL فيما بعد اختصارًا لـ Structured Query Language (لغة الاستعلامات المهيكلة). [ ١٧ ]

بعد اختبار لغة SQL في مواقع اختبار العملاء لتحديد مدى فائدة النظام وجدواه، بدأت شركة IBM بتطوير منتجات تجارية استنادًا إلى نموذجها الأولي System R، بما في ذلك System/38 و SQL/DS و IBM Db2 ، والتي طُرحت تجاريًا في الأعوام 1979 و1981 و1983 على التوالي. [ 18 ] وقد ساهم دعم IBM في تحوّل الصناعة إلى SQL من بدائل مثل QUEL. [ 19 ]

في أواخر سبعينيات القرن العشرين، أدركت شركة Relational Software (التي تُعرف الآن باسم Oracle Corporation ) إمكانات المفاهيم التي وصفها كود وتشامبرلين وبويس، وطورت نظام إدارة قواعد بيانات علائقية خاص بها قائم على لغة SQL ، طامحةً إلى بيعه للبحرية الأمريكية ووكالة المخابرات المركزية ووكالات حكومية أمريكية أخرى . وفي يونيو 1979، طرحت Relational Software أحد أوائل التطبيقات التجارية المتاحة للغة SQL، وهو Oracle V2 (الإصدار الثاني) لأجهزة كمبيوتر VAX .

بحلول عام 1986، اعتمدت مجموعتا المعايير ANSI و ISO رسميًا تعريف لغة "SQL" القياسية لقواعد البيانات. ونُشرت نسخ جديدة من المعيار في الأعوام 1989، 1992 ، 1996، 1999 ، 2003 ، 2006 ، 2008 ، 2011 ، [ 13 ] 2016 ، ومؤخرًا في عام 2023. [ 20 ]

قابلية التشغيل البيني والتوحيد القياسي

ملخص

تختلف تطبيقات لغة SQL بين الموردين، ولا تلتزم بالضرورة بالمعايير بشكل كامل. على وجه الخصوص، تختلف صيغة التاريخ والوقت، ودمج السلاسل النصية، وحساسية حالة الأحرفNULL في المقارنة من مورد لآخر. يسعى كل من PostgreSQL [ 21 ] و Mimer SQL [ 22 ] إلى التوافق مع المعايير، مع أن PostgreSQL لا يلتزم بها في جميع الحالات. على سبيل المثال، تحويل الأسماء غير المقتبسة إلى أحرف صغيرة في PostgreSQL غير متوافق مع معيار SQL [ 23 ] ، الذي ينص على تحويلها إلى أحرف كبيرة [ 24 ] . وبالتالي، وفقًا للمعيار، يجب أن يكون `<div>` مكافئًا لـ `<div>` ، وليس `<div> `.FooFOOfoo

تُهمل تطبيقات SQL الشائعة عادةً دعم الميزات الأساسية لـ SQL القياسي، مثل أنواع البيانات `String` DATEو`String` TIME. ومن أبرز الأمثلة على ذلك، وأشهر أنظمة إدارة قواعد البيانات التجارية والخاصة بـ SQL، Oracle (التي DATEتعمل `String` فيها كـ `String` DATETIME، [ 25 ] [ 26 ] وتفتقر إلى TIMEنوع `String`) [ 27 ] وMS SQL Server (قبل إصدار 2008). ونتيجةً لذلك، نادرًا ما يُمكن نقل كود SQL بين أنظمة قواعد البيانات دون تعديلات.

أسباب عدم التوافق

تتضمن عدة أسباب لعدم إمكانية نقل البيانات بين أنظمة قواعد البيانات ما يلي:

  • إن تعقيد معيار SQL وحجمه يعني أن معظم المطورين لا يدعمون المعيار بأكمله.
  • لا يحدد معيار SQL سلوك قاعدة البيانات في بعض المجالات المهمة (مثل الفهارس وتخزين الملفات)، مما يترك للتطبيقات حرية تحديد كيفية التصرف.
  • يُحيل معيار SQL بعض القرارات إلى التطبيقات الفردية، مثل كيفية تسمية عمود النتائج الذي لم يُسمَّ صراحةً. [ 28 ] : 207
  • يحدد معيار SQL بدقة الصيغة التي يجب على نظام قاعدة البيانات المتوافق معها تطبيقها. ومع ذلك، فإن تحديد المعيار لدلالات بنيات اللغة أقل وضوحًا، مما يؤدي إلى الغموض.
  • لدى العديد من موردي قواعد البيانات قواعد عملاء كبيرة حالية؛ عندما يتعارض الإصدار الأحدث من معيار SQL مع السلوك السابق لقاعدة بيانات المورد، قد لا يرغب المورد في كسر التوافق مع الإصدارات السابقة .
  • لا يوجد حافز تجاري يذكر للبائعين لتسهيل تغيير موردي قواعد البيانات (انظر: احتكار المورد ).
  • يميل المستخدمون الذين يقيمون برامج قواعد البيانات إلى وضع عوامل أخرى مثل الأداء في مرتبة أعلى في أولوياتهم من الالتزام بالمعايير.

تاريخ التقييس

تم اعتماد SQL كمعيار من قبل ANSI في عام 1986 باسم SQL-86 [ 29 ] و ISO في عام 1987. [ 12 ] ويتم صيانته من قبل ISO/IEC JTC 1، تكنولوجيا المعلومات، اللجنة الفرعية SC 32، إدارة البيانات وتبادلها .

حتى عام 1996، كان برنامج معايير إدارة البيانات التابع للمعهد الوطني للمعايير والتكنولوجيا (NIST) يُصدِّق على امتثال أنظمة إدارة قواعد البيانات SQL لمعيار SQL. أما الآن، فيُصدِّق البائعون بأنفسهم على امتثال منتجاتهم. [ 30 ]

نصّ المعيار الأصلي على أن النطق الرسمي لكلمة "SQL" هو اختصار : /ˌɛsˌkjuːˈɛl / ( " إسكويل " ). [ 10 ] ومع ذلك ، يستخدم العديد من متخصصي قواعد البيانات الناطقين باللغة الإنجليزية (بمن فيهم دونالد تشامبرلين نفسه [31]) النطق المختصر / ˈsiːkwəl / ( " سيكويل " ) ، [ 32 ] وهو ما يعكس اسم اللغة في مرحلة التطوير قبل الإصدار، "سيكويل". [ 14 ] [ 16 ] [ 31 ] وقد خضع معيار SQL لعدد من المراجعات .

الجدول الزمني للغة SQL
سنةالمعيار الرسمياسم غير رسميتعليقات
1986 1987ANSI X3.135:1986 ISO/IEC 9075 :1987 FIPS PUB 127SQL-86 SQL-87تمت صياغته رسميًا لأول مرة من قبل المعهد الوطني الأمريكي للمعايير (ANSI)، وتم اعتماده كمعيار FIPS PUB 127
1989ANSI X3.135-1989 ISO/IEC 9075:1989 FIPS PUB 127-1SQL-89تعديل طفيف أضاف قيودًا على سلامة البيانات، وتم اعتماده كمعيار FIPS PUB 127-1
1992ANSI X3.135-1992 ISO/IEC 9075:1992 FIPS PUB 127-2SQL-92 SQL2مراجعة رئيسية (ISO 9075)، المستوى المبتدئ SQL-92، تم اعتمادها كمعيار FIPS PUB 127-2
1999ISO/IEC 9075:1999SQL:1999 SQL3تمت إضافة مطابقة التعبيرات النمطية، والاستعلامات المتكررة (مثل الإغلاق المتعديوالمشغلات ، ودعم العبارات الإجرائية وعبارات التحكم في التدفق، والأنواع غير العددية (المصفوفات)، وبعض ميزات البرمجة الكائنية (مثل الأنواع المهيكلة )، ودعم تضمين SQL في Java ( SQL/OLB ) والعكس صحيح ( SQL/JRT ).
2003ISO/IEC 9075:2003SQL:2003تم تقديم ميزات متعلقة بـ XML ( SQL/XMLووظائف النافذة ، والتسلسلات الموحدة، والأعمدة ذات القيم المولدة تلقائيًا (بما في ذلك أعمدة الهوية).
2006ISO/IEC 9075-14:2006SQL:2006يُضيف هذا الجزء الرابع عشر، الذي يُحدد طرق استخدام لغة SQL مع لغة XML. ويُحدد طرق استيراد وتخزين بيانات XML في قاعدة بيانات SQL، ومعالجتها داخل قاعدة البيانات، ونشر بيانات XML وبيانات SQL التقليدية بصيغة XML. بالإضافة إلى ذلك، يُتيح هذا الجزء للتطبيقات دمج الاستعلامات في كود SQL الخاص بها باستخدام XQuery ، وهي لغة استعلام XML التي نشرها اتحاد شبكة الويب العالمية ( W3C )، للوصول المتزامن إلى بيانات SQL العادية ومستندات XML. [ 33 ]
2008ISO/IEC 9075:2008SQL:2008يُضفي الشرعية على عبارة ORDER BY خارج تعريفات المؤشر. ويضيف مُشغّلات INSTEAD OF، وعبارة TRUNCATE، و [ 34 ] عبارة FETCH
2011ISO/IEC 9075:2011SQL:2011يُضيف بيانات زمنية (PERIOD FOR) [ 35 ] (مزيد من المعلومات في قاعدة البيانات الزمنية#السجل ). تحسينات على دوال النافذة وعبارة FETCH. [ 36 ]
2016ISO/IEC 9075:2016SQL:2016يضيف هذا البرنامج ميزة مطابقة أنماط الصفوف، ووظائف الجداول متعددة الأشكال، والعمليات على بيانات JSON المخزنة في حقول السلاسل النصية.
2019ISO/IEC 9075-15:2019SQL:2019يضيف الجزء 15، المصفوفات متعددة الأبعاد (نوع MDarray والمعاملات)
2023ISO/IEC 9075:2023SQL:2023يضيف نوع البيانات JSON (SQL/Foundation)؛ ويضيف الجزء 16، استعلامات مخطط الخصائص (SQL/PGQ)

المعيار الحالي

يُشار إلى المعيار عادةً بالنمط التالي: ISO/IEC 9075-n:yyyy الجزء ن: العنوان ، أو اختصارًا ISO/IEC 9075. يمكن للجهات المهتمة شراء وثائق المعيار من المنظمة الدولية للمعايير (ISO) [ 37 ] أو اللجنة الكهروتقنية الدولية (IEC) أو المعهد الوطني الأمريكي للمعايير (ANSI). بعض المسودات القديمة متاحة مجانًا. [ 38 ] [ 39 ]

يتم استكمال معيار ISO/IEC 9075 بمعيار ISO/IEC 13249: حزم الوسائط المتعددة والتطبيقات SQL وبعض التقارير الفنية .

بناء الجملة

يوPدأتيهـ جلأusهـ:{يوPدأتيهـ جouنترأناهـsتأبلهـ}Sهـتي جلأusهـ:{Sهـتي صoصuلأتأناoنجoلuمن= صoصuلأتأناoن+1لأناتهـرألهـxصرهـssأناoن}دبليوحهـRهـ جلأusهـ:{دبليوحهـRهـ نأمهـجoلuمن=يوSألأناتهـرألهـxصرهـssأناoنصرهـدأناجأتهـ}؛}إفادةSسؤالل quهـرy{\displaystyle \underbrace {\left.{\begin{array}{rl}\textstyle {\mathtt {UPDATE~clause{\mathtt {:}}}}&\{{\mathtt {UPDATE\ \overbrace {\mathtt {countries}} ^{\mathtt {table}}}}\}\\\textstyle {\mathtt {SET~clause:}}&\{{{\mathtt {SET\ \overbrace {\mathtt {population}} ^{\mathtt {column}}=~}}\overbrace {\mathtt {{population}+\underbrace {\mathtt {1}} _{\mathtt {literal}}}} ^{\mathtt {expression}}}\}\\\textstyle {\mathtt {WHERE~clause:}}&\{{{\mathtt {WHERE\ \underbrace {\overbrace {\mathtt {name}} ^{\mathtt {column}}{\mathtt {=}}\overbrace {\overbrace {\mathtt {'USA'}} ^{\mathtt {literal}}} ^{\mathtt {expression}}} _{\mathtt {predicate}}}}\}{\texttt {;}}}\end{array}}\right\}{\textstyle {\texttt {statement}}}} _{\textstyle {\mathtt {SQL~query}}}}
مخطط يوضح العديد من عناصر لغة SQL التي تشكل عبارة واحدة

تنقسم لغة SQL إلى عدة عناصر لغوية، بما في ذلك:

  • العبارات ، وهي مكونات أساسية للعبارات والاستعلامات. (في بعض الحالات، تكون هذه اختيارية.) [ 40 ]
  • التعبيرات ، التي يمكنها إنتاج قيم عددية ، أو جداول تتكون من أعمدة وصفوف من البيانات
  • المسندات ، التي تحدد الشروط التي يمكن تقييمها إلى منطق SQL ثلاثي القيم (3VL) (صحيح/خطأ/غير معروف) أو قيم الحقيقة المنطقية ، وتستخدم للحد من تأثيرات العبارات والاستعلامات، أو لتغيير تدفق البرنامج.
  • الاستعلامات ، التي تسترجع البيانات بناءً على معايير محددة. هذا عنصر مهم في لغة SQL .
  • البيانات ، التي قد يكون لها تأثير مستمر على المخططات والبيانات، أو قد تتحكم في المعاملات ، أو تدفق البرنامج، أو الاتصالات، أو الجلسات، أو التشخيصات.
    • تتضمن عبارات SQL أيضًا فاصلة منقوطة (";") لإنهاء العبارة. على الرغم من أنها ليست مطلوبة في جميع المنصات، إلا أنها تُعرَّف كجزء أساسي من قواعد لغة SQL.
  • يتم تجاهل المسافات البيضاء غير المهمة بشكل عام في عبارات واستعلامات SQL، مما يسهل تنسيق كود SQL من أجل سهولة القراءة.

امتدادات إجرائية

صُممت لغة SQL لغرض محدد: الاستعلام عن البيانات الموجودة في قاعدة بيانات علائقية . SQL هي لغة برمجة تصريحية تعتمد على المجموعات ، وليست لغة برمجة إجرائية مثل C أو BASIC . مع ذلك، تُضيف امتدادات لغة SQL القياسية وظائف لغة البرمجة الإجرائية ، مثل بنيات التحكم في التدفق.

بالإضافة إلى امتدادات SQL/PSM القياسية وامتدادات SQL الخاصة، تتوفر إمكانية البرمجة الإجرائية والبرمجة كائنية التوجه على العديد من منصات SQL من خلال تكامل أنظمة إدارة قواعد البيانات مع لغات أخرى. يُعرّف معيار SQL امتدادات SQL/JRT (إجراءات SQL وأنواع لغة برمجة Java) لدعم كود Java في قواعد بيانات SQL. يستخدم Microsoft SQL Server 2005 بيئة تشغيل لغة SQL المشتركة (SQL Server Common Language Runtime) لاستضافة تجميعات .NET المُدارة في قاعدة البيانات ، بينما كانت الإصدارات السابقة من SQL Server تقتصر على الإجراءات المخزنة الموسعة غير المُدارة المكتوبة بلغة C بشكل أساسي. يتيح PostgreSQL للمستخدمين كتابة الدوال بلغات متنوعة، بما في ذلك Perl و Python و Tcl و JavaScript (PL/V8) وC. [ 41 ]

البدائل

ينبغي التمييز بين بدائل لغة SQL، وبدائل النموذج العلائقي نفسه. فيما يلي بدائل علائقية مقترحة للغة SQL. للاطلاع على بدائل النموذج العلائقي، انظر قواعد البيانات الملاحية وقواعد بيانات NoSQL .

معالجة SQL الموزعة

تم تصميم بنية قواعد البيانات العلائقية الموزعة (DRDA) من قبل فريق عمل داخل شركة IBM في الفترة من 1988 إلى 1994. تُمكّن DRDA قواعد البيانات العلائقية المتصلة بالشبكة من التعاون لتلبية طلبات SQL. [ 43 ] [ 44 ]

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

تُحدد بنية إدارة البيانات الموزعة ( DRDA) الرسائل والبروتوكولات والمكونات الهيكلية لـ DRDA . وتتميز معالجة SQL الموزعة وفقًا لـ DRDA عن قواعد بيانات SQL الموزعة المعاصرة .

الانتقادات

تصميم

تختلف لغة SQL في عدة جوانب عن أساسها النظري، وهو النموذج العلائقي وحساب الصفوف. ففي هذا النموذج، يُمثل الجدول مجموعة من الصفوف، بينما في SQL، تُمثل الجداول ونتائج الاستعلام قوائم من الصفوف؛ وقد يتكرر الصف نفسه عدة مرات، ويمكن استخدام ترتيب الصفوف في الاستعلامات (مثلاً، في LIMITعبارة `SELECT`). ويرى النقاد أنه ينبغي استبدال SQL بلغة تعود بدقة إلى أساسها الأصلي: على سبيل المثال، انظر كتاب "البيان الثالث" لهيو داروين وسي جيه ديت (2006، ISBN 1000) . 0-321-39942-0).

التعامد والاكتمال

لم تدعم المواصفات المبكرة ميزات رئيسية، مثل المفاتيح الأساسية. لم يكن من الممكن تسمية مجموعات النتائج، ولم تكن الاستعلامات الفرعية مُعرّفة. أُضيفت هذه الميزات في عام 1992. [ 13 ]

وُصِفَ غياب أنواع الجمع بأنه عائق أمام الاستخدام الكامل لأنواع SQL المُعرَّفة من قِبَل المستخدم. فعلى سبيل المثال، كان من الضروري إضافة دعم JSON بموجب معيار جديد في عام 2016. [ 45 ]

باطل

يُعدّ مفهوم القيمة الفارغة (Null) موضوعًا لبعض النقاش . تشير علامة القيمة الفارغة إلى غياب قيمة، وهي تختلف عن القيمة 0 لعمود الأعداد الصحيحة أو السلسلة النصية الفارغة لعمود النصوص. يُطبّق مفهوم القيم الفارغة منطق القيم الثلاثية في لغة SQL ، وهو تطبيق عملي لمنطق القيم الثلاثية العام . [ 13 ]

نسخ مكررة

من الانتقادات الشائعة الأخرى أنها تسمح بتكرار الصفوف، مما يُصعّب التكامل مع لغات مثل بايثون ، التي قد تجعل أنواع بياناتها تمثيل البيانات بدقة أمرًا صعبًا [ 13 ] من حيث التحليل، فضلًا عن غياب النمطية. ويُتجنب هذا عادةً بتحديد مفتاح أساسي، أو قيد فريد، مع عمود واحد أو أكثر يُعرّف كل صف في الجدول بشكل فريد.

عدم تطابق المعاوقة

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

أنواع بيانات SQL

يحدد معيار SQL ثلاثة أنواع من أنواع البيانات (الفصل 4.1.1 من SQL/Foundation):

  • أنواع البيانات المحددة مسبقًا
  • أنواع مُنشأة
  • أنواع مُعرَّفة من قِبل المستخدم.

الأنواع المُنشأة هي إما ARRAY` <type>` MULTISETأو REF`<type>` أو `<type>` (مرجع) أو `<type> ROW`. أما الأنواع المُعرّفة من قِبل المستخدم فهي تُشبه الأصناف في لغات البرمجة كائنية التوجه، حيث تمتلك مُنشئاتها ومراقبيها ومُعدِّلاتها وأساليبها ووراثها وتحميلها الزائد وتجاوزها وواجهاتها وما إلى ذلك. بينما تدعم التطبيقات أنواع البيانات المُعرّفة مُسبقًا بشكلٍ أساسي.

أنواع البيانات المحددة مسبقًا

  • أنواع الشخصيات
    • شخصية ( CHAR)
    • تختلف الشخصية ( VARCHAR)
    • كائن حرفي كبير ( CLOB)
  • أنواع الشخصيات الوطنية
    • الشخصية الوطنية ( NCHAR)
    • الشخصية الوطنية المتغيرة ( NCHAR VARYING)
    • رمز وطني كبير ( NCLOB)
  • الأنواع الثنائية
    • ثنائي ( BINARY)
    • متغير ثنائي ( VARBINARY)
    • كائن ثنائي كبير ( BLOB)
  • الأنواع الرقمية
    • الأنواع العددية الدقيقة ( NUMERIC, DECIMAL, SMALLINT, INTEGER, BIGINT)
    • الأنواع العددية التقريبية ( FLOAT, REAL, DOUBLE PRECISION)
    • نوع الفاصلة العائمة العشرية ( DECFLOAT)
  • أنواع التاريخ والوقت ( DATE, TIME, TIMESTAMP)
  • نوع الفاصل الزمني ( INTERVAL)
  • منطقي
  • XML (انظر SQL/XML ) [ 47 ]
  • JSON

انظر أيضاً

مراجع

  1. بول، رايان (24 أكتوبر 2005). "جولة تعريفية في واجهة أوامر مايكروسوفت" . آرس تكنيكا . تم الاطلاع عليه بتاريخ 10 أبريل 2011 .
  2. "تسجيل نوع الوسائط لتطبيق/SQL" . هيئة أرقام الإنترنت المخصصة . 10 أبريل 2013. مؤرشف من الأصل في 7 مايو 2013. تم الاطلاع عليه في 10 أبريل 2013 .
  3. شافرانوفيتش، ي. (أبريل 2013). "نوع الوسائط application/sql، RFC 6922" . فريق عمل هندسة الإنترنت . ص 3. doi : 10.17487/RFC6922 . مؤرشف من الأصل في 13 أكتوبر 2014. تم الاطلاع عليه في 10 أبريل 2013 . 
  4. بيوليو، آلان (أبريل 2009). ماري إي تريسلر (محررة). تعلم لغة SQL ( الطبعة الثانية). سيباستوبول، كاليفورنيا، الولايات المتحدة الأمريكية: أورايلي. ISBN  978-0-596-52083-0.
  5. تشامبرلين، دونالد د.؛ فرانا، فيليب ل. (3 أكتوبر 2001). "مقابلة تاريخية شفهية مع دونالد د. تشامبرلين" . المحفوظات الرقمية للجامعة . hdl : 11299/107215 . مؤرشف من الأصل في 24 فبراير 2020. تم الاطلاع عليه في 14 يناير 2020. قمنا بتغيير الاسم الأصلي "SEQUEL" إلى SQL لأننا تلقينا رسالة من محامي أحدهم تفيد بأن اسم "SEQUEL" ملكٌ له . اختصرناه إلى SQL، اختصارًا لـ Structured Query Language (لغة الاستعلامات المهيكلة)، وأصبح المنتج يُعرف باسم SQL/DS.
  6. جونكر، ألكسندرا؛ موتشي، تيم. "ما هي لغة الاستعلامات المهيكلة (SQL)؟ | آي بي إم" . www.ibm.com . تاريخ الاسترجاع: 2 يوليو 2026 .
  7. SQL-92 ، 4.22 عبارات SQL، 4.22.1 فئات عبارات SQL "هناك خمس طرق على الأقل لتصنيف عبارات SQL:"، 4.22.2، عبارات SQL مصنفة حسب الوظيفة "فيما يلي الفئات الرئيسية لعبارات SQL:"؛ SQL:2003 4.11 عبارات SQL، والمراجعات اللاحقة.
  8. تشاتام، مارك (2012). لغة الاستعلامات المهيكلة بالأمثلة - المجلد الأول: لغة استعلام البيانات . Lulu.com. ص 8. ISBN  978-1-291-19951-2.
  9. كود، إدغار ف. (يونيو 1970). "نموذج علائقي للبيانات لبنوك البيانات المشتركة الكبيرة". اتصالات رابطة مكائن ​​الحوسبة . 13 (6): 377-387 . CiteSeerX 10.1.1.88.646 . doi : 10.1145/362384.362685 . S2CID 207549016 .  
  10. 1 2 تشابل، مايك. "أساسيات لغة SQL" . قواعد البيانات . About.com. مؤرشف من الأصل في 22 فبراير 2009. تم الاطلاع عليه في 28 يناير 2009 .
  11. "لغة الاستعلامات المهيكلة (SQL)" . شركة آي بي إم. 27 أكتوبر 2006. تم الاطلاع عليه بتاريخ 10 يونيو 2007 .
  12. 1 2 "ISO 9075:1987: تكنولوجيا المعلومات - لغات قواعد البيانات - SQL - الجزء 1: الإطار (SQL/Framework)" . 1 يونيو 2023. تم الاطلاع عليه في 24 يونيو 2025 .   
  13. 1 2 3 4 5 6 تشامبرلين، دونالد (2012). "التاريخ المبكر للغة SQL". حوليات IEEE لتاريخ الحوسبة . 34 (4): 78-82 . Bibcode : 2012IAHC...34d..78C . doi : 10.1109/MAHC.2012.61 . S2CID 1322572 . 
  14. 1 2 3 تشامبرلين، دونالد د؛ بويس، ريموند ف (1974). "SEQUEL: لغة استعلام إنجليزية مُهيكلة" (ملف PDF) . وقائع ورشة عمل ACM SIGFIDET لعام 1974 حول وصف البيانات والوصول إليها والتحكم فيها . رابطة آلات الحوسبة: 249-264 . مؤرشف من الأصل (ملف PDF) في 26 سبتمبر 2007. تم الاطلاع عليه في 9 يونيو 2007 .
  15. ستاركي، جيم. "قواعد البيانات الديناميكية، والبنية التحتية، وواجهة برمجة التطبيقات الداخلية" . www.ibphoenix.com . مؤرشف من الأصل في 19 يناير 2023. تم الاطلاع عليه في 19 يناير 2023 .
  16. 1 2 أوبل، آندي (27 فبراير 2004). تبسيط قواعد البيانات . سان فرانسيسكو، كاليفورنيا : ماكجرو هيل أوزبورن ميديا. ص 90-91 . ISBN  978-0-07-146960-9أُرشف من الأصل في 14 يناير 2012. تم الاطلاع عليه في 12 مايو 2011 .
  17. ياسر، كينزا؛ لوشين، بيتر؛ سيركين، جيسيكا. "ما هي لغة الاستعلامات المهيكلة (SQL)؟ | تعريف من TechTarget" . إدارة بيانات البحث . Informa TechTarget . مؤرشف من الأصل في 10 مارس 2025. تم الاسترجاع في 25 مارس 2025 .
  18. "تاريخ شركة آي بي إم، 1978" . أرشيفات آي بي إم . آي بي إم. 23 يناير 2003. مؤرشف من الأصل في 17 يناير 2005. تم الاطلاع عليه في 9 يونيو 2007 .
  19. مورغنثالر، غاري (8 ديسمبر 2005). "التاريخ الشفوي لغاري مورغنثالر" (ملف PDF) (مقابلة). أجرت المقابلة لوان جونسون. متحف تاريخ الحاسوب. ص 18. تاريخ الاطلاع: 30 مايو 2025 . 
  20. "ISO - ISO/IEC JTC 1/SC 32 - إدارة البيانات وتبادلها" . www.iso.org . مؤرشف من الأصل بتاريخ 16 مارس 2017. تم الاطلاع عليه بتاريخ 2 يناير 2021 .
  21. "نبذة عن PostgreSQL" . الموقع الرسمي لـ PostgreSQL 9.1 . مجموعة تطوير PostgreSQL العالمية. 2012. مؤرشف من الأصل في 9 مارس 2012. تم الاطلاع عليه في 9 مارس 2012. تفخر PostgreSQL بالتزامها بالمعايير. يتوافق تطبيق SQL الخاص بها بشكل كبير مع معيار ANSI-SQL:2008 .
  22. "Mimer SQL، مبني على المعايير" . الموقع الرسمي لـ Mimer SQL . شركة Mimer لتكنولوجيا المعلومات. 2009. مؤرشف من الأصل في 3 مايو 2016. تم الاطلاع عليه في 11 ديسمبر 2018 .
  23. "4.1. البنية المعجمية" . وثائق PostgreSQL . 2018. مؤرشف من الأصل في 5 أكتوبر 2018. تم الاطلاع عليه في 11 ديسمبر 2018 .
  24. "(مسودة المراجعة غير الرسمية الثانية) ISO/IEC 9075:1992، لغة قواعد البيانات SQL، القسم 5.2، قاعدة بناء الجملة 11" . 30 يوليو 1992. مؤرشف من الأصل في 21 يونيو 2006. تم الاطلاع عليه في 8 أكتوبر 2009 .
  25. لورنتز، ديانا؛ روزر، ماري بيث؛ أبراهام، سانديب؛ أمور، أنجيلا؛ أرورا، جيتا؛ أرورا، فيكاس؛ أشدون، لانس؛ باير، هيرمان؛ بيلامكوندا، شريكانث (أكتوبر 2010) [1996]. "العناصر الأساسية للغة SQL في أوراكل: أنواع البيانات" . مرجع لغة SQL لقاعدة بيانات أوراكل 11g الإصدار 2 (11.2) . مكتبة توثيق قاعدة بيانات أوراكل. ريدوود سيتي، كاليفورنيا: أوراكل الولايات المتحدة الأمريكية. مؤرشف من الأصل في 20 نوفمبر 2010. تم الاسترجاع في 29 ديسمبر 2010. لكل قيمة، تخزن أوراكل المعلومات التالية: القرن، السنة، الشهر، اليوم، الساعة، الدقيقة، والثانية .DATE
  26. لورنتز، ديانا؛ روزر، ماري بيث؛ أبراهام، سانديب؛ أمور، أنجيلا؛ أرورا، جيتا؛ أرورا، فيكاس؛ أشدون، لانس؛ باير، هيرمان؛ بيلامكوندا، شريكانث (أكتوبر 2010) [1996]. "العناصر الأساسية للغة SQL في أوراكل: أنواع البيانات" . مرجع لغة SQL لقاعدة بيانات أوراكل 11g الإصدار 2 (11.2) . مكتبة توثيق قاعدة بيانات أوراكل. ريدوود سيتي، كاليفورنيا: أوراكل الولايات المتحدة الأمريكية. مؤرشف من الأصل في 20 نوفمبر 2010. تم الاسترجاع في 29 ديسمبر 2010. أنواع بيانات التاريخ والوقت هي ...DATE
  27. لورنتز، ديانا؛ روزر، ماري بيث؛ أبراهام، سانديب؛ أمور، أنجيلا؛ أرورا، جيتا؛ أرورا، فيكاس؛ أشدون، لانس؛ باير، هيرمان؛ بيلامكوندا، شريكانث (أكتوبر 2010) [1996]. "العناصر الأساسية للغة SQL في أوراكل: أنواع البيانات" . مرجع لغة SQL لقاعدة بيانات أوراكل 11g الإصدار 2 (11.2) . مكتبة توثيق قاعدة بيانات أوراكل. ريدوود سيتي، كاليفورنيا: أوراكل الولايات المتحدة الأمريكية. مؤرشف من الأصل في 20 نوفمبر 2010. تم الاسترجاع في 29 ديسمبر 2010. لا تُعرّف أعمدة بأنواع البيانات التالية في SQL/DS وDB2، لأنها لا تملك نوع بيانات مطابقًا في أوراكل:...TIME
  28. ديت، كريس ج. (2013). نظرية العلاقات لمحترفي الحاسوب: ما هي قواعد البيانات العلائقية حقًا ( الطبعة الأولى). سيباستوبول، كاليفورنيا: أورايلي ميديا. ISBN  978-1-449-36943-9.
  29. "دليل البحث" . سجلات X3H2، 1978-1995 . المعهد الوطني الأمريكي للمعايير. مؤرشف من الأصل في 19 يونيو 2010. تم الاطلاع عليه في 26 أبريل 2008 .
  30. دول، شيلي (19 يونيو 2002). "هل ما زالت لغة SQL معيارًا؟" . موقع TechRepublic's Builder.com . TechRepublic. مؤرشف من الأصل في 5 يوليو 2012. تم الاطلاع عليه في 12 أبريل 2016 .
  31. 1 2 جيليسبي، باتريك. "نطق SQL: SQL أم Sequel؟" . مؤرشف من الأصل في 27 مايو 2012. تم الاسترجاع في 12 فبراير 2012 .
  32. ↑ ميلتون ، جيم؛ آلان ر. سيمون (1993). "1.2. ما هي لغة SQL؟" . فهم لغة SQL الجديدة: دليل شامل . مورغان كوفمان. ص 536. ISBN  978-1-55860-245-8SQL (يُنطق بشكل صحيح "إس سيكويل"، بدلاً من النطق الشائع "سيكويل")...
  33. ^ فاغنر مايكل (2010). SQL/XML:2006 - تقييم التوافق القياسي لنظام بنك البيانات . دار النشر الدبلوماسية. ص. 100. ردمك  978-3-8366-9609-8.
  34. "SQL:2008 معيار دولي معتمد من ISO" . Sybase. يوليو 2008. مؤرشف من الأصل في 28 يونيو 2011.
  35. ^ كريشنا كولكارني، جان إيكي ميشيلز (سبتمبر 2012). "الميزات المؤقتة في SQL: 2011" (PDF) . سجل سيجمود . 41 (3).
  36. فريد زيمكي (2012). "ما الجديد في SQL: 2011" (ملف PDF) . شركة أوراكل.
  37. "ISO/IEC 9075" . مؤرشف من الأصل بتاريخ 12 أغسطس 2022. تم الاطلاع عليه بتاريخ 9 أغسطس 2022 .
  38. مسودة SQL:1992 (نص) ، مؤرشفة من الأصل في 21 يونيو 2006 ، تم استرجاعها في 8 أكتوبر 2009
  39. مسودة SQL:2011 ، شركة وايتمارش لأنظمة المعلومات، مؤرشفة من الأصل (ملف مضغوط) في 25 مايو 2023
  40. معيار ANSI/ISO/IEC الدولي (IS). لغة قواعد البيانات SQL - الجزء 2: الأساسيات (SQL/Foundation). 1999.
  41. "برمجة خادم PostgreSQL" . الوثائق الرسمية لـ PostgreSQL 9.1 . postgresql.org. 2011. مؤرشف من الأصل في 2 مارس 2012. تم الاطلاع عليه في 9 مارس 2012 .
  42. فرناندو ساينز-بيريز. "الوصلات الخارجية في نظام قاعدة بيانات استنتاجية" (ملف PDF) . Lbd.udc.es. مؤرشف (PDF) من الأصل في 9 أغسطس 2016. تم الاطلاع عليه في 16 يناير 2017 .
  43. رينش، ر. (1988). "قاعدة بيانات موزعة لـ SAA". مجلة أنظمة IBM . 27 (3): 362-389 . doi : 10.1147/sj.273.0362 .
  44. مرجع بنية قواعد البيانات العلائقية الموزعة . شركة IBM. SC26-4651-0. 1990.
  45. براندون، جيمي (يوليو 2021). "ضد لغة SQL" . تم الاطلاع عليه بتاريخ 2 أغسطس 2021 .
  46. ^ تيوري، توبي. لايتستون، سام؛ نادو، توم؛ جاجاديش، HV (2011). "التصميم العلائقي للكائنات" . www.sciencedirect.com . ص 139 – 160. دوى : 10.1016 / B978-0-12-382020-4.00011-2 . تم الاسترجاع في 9 يونيو 2026 . 
  47. "دعم معيار SQL 2003 في قاعدة بيانات أوراكل 10g" (ملف PDF) . أوراكل . شركة أوراكل . نوفمبر 2003. مؤرشف (ملف PDF) من الأصل في 27 مارس 2024. تم الاطلاع عليه في 27 مارس 2024 .تمت إضافة دعم XML في ANSI SQL 2003، الجزء 14.

مصادر