الانتقال إلى المحتوى الرئيسي
إدخالإخراجاسم مستعار

الوصف

يعرض التنسيق Values كل صف بين قوسين.
  • تُفصل الصفوف بفواصل، من دون فاصلة بعد الصف الأخير.
  • تُفصل القيم داخل القوسين أيضًا بفواصل.
  • تُخرج الأرقام بتنسيق عشري من دون علامات اقتباس.
  • تُخرج المصفوفات على هيئة [].
  • تُخرج السلاسل النصية والتواريخ والتواريخ المقترنة بوقت بين علامتَي اقتباس.
  • قواعد الإفلات والتحليل مماثلة لتنسيق TabSeparated.
أثناء التنسيق، لا تُدرج مسافات إضافية، ولكن أثناء التحليل يُسمح بها ويتم تجاهلها (باستثناء المسافات داخل قيم المصفوفة، إذ لا يُسمح بها). يُمثَّل NULL بالقيمة NULL. الحد الأدنى من المحارف التي تحتاج إلى إفلاتها عند تمرير البيانات بتنسيق Values:
  • علامات الاقتباس المفردة
  • الشرطات المائلة العكسية
هذا هو التنسيق المستخدم في INSERT INTO t VALUES ...، ولكن يمكنك أيضًا استخدامه لتنسيق نتائج الاستعلام.

مثال للاستخدام

إدراج البيانات

يُستخدم تنسيق Values مع INSERT، لذا فإن أي تعليمة INSERT ... VALUES تستخدمها بالفعل. ويمكن ذكر بند FORMAT Values صراحةً، كما يمكن توفير الصفوف من دفق بيانات أو ملف. ويكون كل صف عبارة عن tuple بين قوسين، تفصل بين عناصره فواصل، وتفصل بين الـ tuples نفسها فواصل:
Query
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;
Response
┌─id─┬─name─┬─values──┐
│  1 │ a    │ [10,20] │
│  2 │ b    │ [30]    │
└────┴──────┴─────────┘

استخدام التعبيرات في الإدخال

على عكس معظم تنسيقات الإدخال، يمكن لـ Values تقييم تعبيرات SQL في كل حقل، بدلًا من قبول القيم الحرفية فقط. ويتحكم في ذلك input_format_values_interpret_expressions (وهو مفعّل افتراضيًا): فعندما يتعذر على محلّل التدفق السريع قراءة حقل ما، يلجأ ClickHouse إلى محلل SQL ويفسر الحقل على أنه تعبير.
Query
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;
Response
┌─item──┬─total─┐
│ apple │    12 │
│ pear  │    15 │
└───────┴───────┘

اختيار البيانات

يمكن أيضًا استخدام التنسيق Values لتنسيق نتائج الاستعلام. تُكتب الأرقام من دون علامات اقتباس، وتُكتب المصفوفات داخل []، وتُكتب السلاسل النصية والتواريخ بين علامات اقتباس مفردة؛ وتُفلَت علامات الاقتباس المفردة والشرطة المائلة العكسية داخل السلاسل النصية باستخدام شرطة مائلة عكسية، كما تُكتب NULL على هيئة NULL:
Query
SELECT 1 AS a, 'O''Reilly' AS b, NULL::Nullable(String) AS c FORMAT Values;
Response
(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
آخر تعديل في ٢٥ يونيو ٢٠٢٦