| إدخال | إخراج | اسم مستعار |
|---|---|---|
| ✔ | ✔ |
الوصف
يعرض التنسيق Values كل صف بين قوسين.
- تُفصل الصفوف بفواصل، من دون فاصلة بعد الصف الأخير.
- تُفصل القيم داخل القوسين أيضًا بفواصل.
- تُخرج الأرقام بتنسيق عشري من دون علامات اقتباس.
- تُخرج المصفوفات على هيئة
[]. - تُخرج السلاسل النصية والتواريخ والتواريخ المقترنة بوقت بين علامتَي اقتباس.
- قواعد الإفلات والتحليل مماثلة لتنسيق TabSeparated.
أثناء التنسيق، لا تُدرج مسافات إضافية، ولكن أثناء التحليل يُسمح بها ويتم تجاهلها (باستثناء المسافات داخل قيم المصفوفة، إذ لا يُسمح بها).
يُمثَّل NULL بالقيمة NULL.
الحد الأدنى من المحارف التي تحتاج إلى إفلاتها عند تمرير البيانات بتنسيق Values:
- علامات الاقتباس المفردة
- الشرطات المائلة العكسية
هذا هو التنسيق المستخدم في INSERT INTO t VALUES ...، ولكن يمكنك أيضًا استخدامه لتنسيق نتائج الاستعلام.
مثال للاستخدام
إدراج البيانات
يُستخدم تنسيق Values مع INSERT، لذا فإن أي تعليمة INSERT ... VALUES
تستخدمها بالفعل. ويمكن ذكر بند FORMAT Values صراحةً، كما يمكن
توفير الصفوف من دفق بيانات أو ملف. ويكون كل صف عبارة عن tuple بين قوسين،
تفصل بين عناصره فواصل، وتفصل بين الـ tuples نفسها فواصل:
CREATE TABLE t (id UInt32, name String, values Array(UInt32)) ENGINE = Memory;
INSERT INTO t FORMAT Values (1, 'a', [10, 20]), (2, 'b', [30]);
SELECT * FROM t ORDER BY id;┌─id─┬─name─┬─values──┐
│ 1 │ a │ [10,20] │
│ 2 │ b │ [30] │
└────┴──────┴─────────┘استخدام التعبيرات في الإدخال
على عكس معظم تنسيقات الإدخال، يمكن لـ Values تقييم تعبيرات SQL في كل حقل،
بدلًا من قبول القيم الحرفية فقط. ويتحكم في ذلك
input_format_values_interpret_expressions (وهو مفعّل
افتراضيًا): فعندما يتعذر على محلّل التدفق السريع قراءة حقل ما، يلجأ ClickHouse
إلى محلل SQL ويفسر الحقل على أنه تعبير.
CREATE TABLE prices (item String, total UInt32) ENGINE = Memory;
INSERT INTO prices FORMAT Values ('apple', 3 * 4), ('pear', length('hello') + 10);
SELECT * FROM prices ORDER BY total;┌─item──┬─total─┐
│ apple │ 12 │
│ pear │ 15 │
└───────┴───────┘اختيار البيانات
يمكن أيضًا استخدام التنسيق Values لتنسيق نتائج الاستعلام. تُكتب الأرقام
من دون علامات اقتباس، وتُكتب المصفوفات داخل []، وتُكتب السلاسل النصية والتواريخ بين علامات اقتباس مفردة؛
وتُفلَت علامات الاقتباس المفردة والشرطة المائلة العكسية داخل السلاسل النصية باستخدام شرطة مائلة عكسية، كما
تُكتب NULL على هيئة NULL:
SELECT 1 AS a, 'O''Reilly' AS b, NULL::Nullable(String) AS c FORMAT Values;(1,'O\'Reilly',NULL)إعدادات التنسيق
| الإعداد | الوصف | الافتراضي |
|---|---|---|
input_format_values_interpret_expressions |
إذا تعذّر تحليل الحقل بواسطة محلّل التدفق السريع، فشغّل محلّل SQL وحاول تفسيره على أنه تعبير SQL. | true |
input_format_values_deduce_templates_of_expressions |
إذا تعذّر تحليل الحقل بواسطة محلّل التدفق السريع، فشغّل محلّل SQL، واستنتج قالب تعبير SQL، ثم حاول تحليل جميع الصفوف باستخدام القالب وبعد ذلك فسّر التعبير لجميع الصفوف. | true |
input_format_values_accurate_types_of_literals |
عند تحليل التعبيرات وتفسيرها باستخدام القالب، تحقّق من النوع الفعلي لكل قيمة حرفية لتجنّب مشكلات overflow وprecision المحتملة. | true |