أنواع البيانات SQL
للاطلاع على القواعد التي تحكم كيفية حل التعارضات بين أنواع البيانات، راجع SQL قواعد نوع البيانات (Databricks SQL).
أنواع البيانات المدعومة
يدعم Databricks SQL أنواع البيانات التالية:
نوع البيانات | الوصف |
---|---|
بيجينت | يمثل أرقاما صحيحة موقعة بحجم 8 بايت. |
ثنائي | يمثل قيم تسلسل البايت. |
منطقيه | يمثل القيم المنطقية. |
تاريخ | تمثل القيم التي تتضمن قيم الحقول السنة والشهر واليوم، بدون منطقة زمنية. |
عشري (ع ، ق) | يمثل الأرقام بأقصى قدر من الدقة p والمقياس s الثابت . |
مزدوج | يمثل أرقام النقاط العائمة مزدوجة الدقة 8 بايت. |
طفا | يمثل أرقام النقاط العائمة أحادية الدقة سعة 4 بايت. |
الباحث | يمثل أرقاما صحيحة موقعة بحجم 4 بايت. |
الفاصل الزمنيالكواليفالكوالين | يمثل فترات زمنية إما على مقياس من الثواني أو الأشهر. |
صِفْر | يمثل NULL غير المكتوب. |
سمولينت | يمثل أرقاما صحيحة موقعة بحجم 2 بايت. |
خيط | يمثل قيم سلسلة الأحرف. |
الطابع الزمني | يمثل القيم التي تضم قيم الحقول السنة والشهر واليوم والساعة والدقيقة والثانية، مع المنطقة الزمنية المحلية للجلسة. |
تينينت | يمثل أرقام الأعداد الصحيحة الموقعة 1 بايت. |
صفيف | يمثل القيم التي تتكون من سلسلة من العناصر مع نوع elementType . |
MAPKeyType,valueType> | يمثل القيم التي تضم مجموعة من أزواج القيم الرئيسية. |
STRUCT[اسم الحقل:نوع الحقل [ليس فارغا] [تعليق str][, ...]]> | يمثل القيم ذات البنية الموضحة بواسطة سلسلة من الحقول. |
تصنيف نوع البيانات
يتم تجميع أنواع البيانات في الفئات التالية:
- تمثل الأنواع الرقمية المتكاملة الأعداد الصحيحة:
- تمثل الأنواع الرقمية الدقيقة أرقام الأساس 10:
- رقمي متكامل
- عشري
- تستخدم أنواع النقاط العائمة الثنائية الأسس والتمثيل الثنائي لتغطية مجموعة كبيرة من الأرقام:
- تمثل الأنواع الرقمية جميع أنواع البيانات الرقمية:
- الأنواع الرقمية الدقيقة
- أنواع النقاط العائمة الثنائية
- تمثل أنواع التاريخ والوقت مكونات التاريخ والوقت:
- أنواع البيانات البسيطة هي أنواع يتم تعريفها عن طريق الاحتفاظ بقيم مفردة:
- الأنواع المعقدة هي أنواع تتكون من مكونات متعددة من أنواع معقدة أو بسيطة:
قيم النقطة العائمة الخاصة
يتم التعامل مع العديد من قيم النقاط العائمة الخاصة بطريقة غير حساسة لحالة الأحرف:
- Inf، +Inf، Infinity، +Infinity: ما لا نهاية موجبة
- -Inf، -Infinity: سالب اللانهاية
- NaN: ليس رقما
الدلالات اللانهائية الموجبة والسلبية
اللانهاية الموجبة والسلبية لها الدلالات التالية:
- اللانهاية الموجبة مضروبة في أي قيمة موجبة تعود باللانهاية الموجبة.
- سالب اللانهاية مضروبا في أي قيمة موجبة يعود سالب اللانهاية.
- اللانهاية الموجبة مضروبة في أي قيمة سالبة ترجع سالبة اللانهاية.
- اللانهاية السالبة مضروبة في أي قيمة سالبة ترجع اللانهاية الموجبة.
- موجب أو سالب اللانهاية مضروبا في 0 يعود NaN.
- اللانهاية الموجبة أو السلبية تساوي نفسها.
- في التجميعات ، يتم تجميع جميع قيم اللانهاية الموجبة معا. وبالمثل ، يتم تجميع جميع قيم اللانهاية السالبة معا.
- يتم التعامل مع اللانهاية الموجبة واللانهاية السالبة كقيم طبيعية في مفاتيح الانضمام.
- تفرز اللانهاية الموجبة أقل من NaN وأعلى من أي قيم أخرى.
- تفرز اللانهاية السالبة أقل من أي قيم أخرى.
دلالات NaN
عند التعامل مع float
أو double
الأنواع التي لا تتطابق تماما مع دلالات النقطة العائمة القياسية ، فإن NaN لديها الدلالات التالية:
- NaN = NaN ترجع true.
- في التجميعات، يتم تجميع كافة قيم NaN معا.
- يتم التعامل مع NaN كقيمة عادية في مفاتيح الانضمام.
- تذهب قيم NaN إلى آخر مرة عندما تكون بترتيب تصاعدي ، أكبر من أي قيمة رقمية أخرى.
أمثلة
> SELECT double('infinity');
Infinity
> SELECT float('-inf');
-Infinity
> SELECT float('NaN');
NaN
> SELECT double('infinity') * 0;
NaN
> SELECT double('-infinity') * (-1234567);
Infinity
> SELECT double('infinity') < double('NaN');
true
> SELECT double('NaN') = double('NaN');
true
> SELECT double('inf') = double('infinity');
true
> SELECT COUNT(*), c2
FROM VALUES (1, double('infinity')),
(2, double('infinity')),
(3, double('inf')),
(4, double('-inf')),
(5, double('NaN')),
(6, double('NaN')),
(7, double('-infinity'))
AS test(c1, c2)
GROUP BY c2;
2 NaN
2 -Infinity
3 Infinity