> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق صيغة SQLite

# SQLite

| الإدخال | الإخراج | اسم بديل |
| - | - | - |
| ✔ | ✔ | |

<h2 id="description">
  الوصف
</h2>

تتيح صيغة `SQLite` قراءة ملف قاعدة بيانات SQLite والكتابة فيه.

عند الإخراج، يكتب ClickHouse نتيجة الاستعلام في جدول واحد ضمن قاعدة بيانات SQLite. وعند الإدخال، يقرأ ClickHouse جدولًا واحدًا من قاعدة بيانات SQLite.

في حالة الملفات العادية المحلية، يفتح ClickHouse ملف قاعدة بيانات SQLite مباشرةً. أما في حالة تدفقات الإدخال والإخراج الأخرى، فيُجسِّد ClickHouse قاعدة بيانات SQLite في الذاكرة.

عند الإدخال، يقرأ ClickHouse افتراضيًا الجدول الأول من قاعدة بيانات SQLite، ويمكنك تغيير ذلك باستخدام الإعداد `input_format_sqlite_table_name`. وعند الإخراج، يكون اسم الجدول الافتراضي `table`، ويمكنك تغييره باستخدام الإعداد `output_format_sqlite_table_name`.

<h2 id="example-usage">
  مثال على الاستخدام
</h2>

```bash theme={null}
clickhouse-client --query="SELECT number, toString(number) AS s FROM numbers(10) FORMAT SQLite" > data.sqlite
clickhouse-local --input-format SQLite --structure "number UInt64, s String" --query "SELECT * FROM table" < data.sqlite
```

<h2 id="data-types-matching">
  مطابقة أنواع البيانات
</h2>

عندما يكتب ClickHouse البيانات بصيغة `SQLite`، فإنه ينشئ جدول SQLite بالأنواع المُعلنة التالية:

| نوع بيانات ClickHouse | النوع المُعلن في SQLite |
| - | - |
| `UInt64`, `Int128`, `UInt128`, `Int256`, `UInt256` | `TEXT` |
| `Bool`, `Int8`, `Int16`, `Int32`, `Int64`, `UInt8`, `UInt16`, `UInt32` | `INTEGER` |
| أنواع الفاصلة العائمة | `REAL` |
| الأنواع الأخرى | `TEXT` |

في أعمدة `Float32` و`Float64`، تُكتب القيم غير `NaN` باستخدام فئات التخزين الأصلية في SQLite، بينما تُكتب قيم `NaN` باستخدام التسلسل النصي الخاص بـ ClickHouse. وتُكتب كذلك قيم `Bool` وقيم الأعداد الصحيحة العادية باستخدام فئات التخزين الأصلية في SQLite. أما الأعداد الصحيحة الواسعة والأنواع المركبة فتُكتب باستخدام التسلسل النصي الخاص بـ ClickHouse. وتُكتب قيم `NULL` بوصفها `NULL` في SQLite.

عندما يستنتج ClickHouse المخطط من مدخلات SQLite، فإنه يعتمد المطابقة نفسها التي يعتمدها [محرك قاعدة البيانات SQLite](/engines/database-engines/sqlite#data_types-support):

| النوع المُعلن في SQLite | النوع المُستنتج في ClickHouse |
| - | - |
| اسم النوع يحتوي على `INT` | `Int64` |
| `REAL`, `FLOAT`, `DOUBLE` | `Float64` |
| الأنواع الأخرى، بما فيها `TEXT` و`BLOB` | `String` |

يغلّف ClickHouse افتراضيًا النوع المُستنتج بـ `Nullable` إذا كان عمود SQLite المقابل يقبل القيمة `NULL`؛ أما أعمدة `NOT NULL` فتبقى من غير `Nullable`. ويمكنك تغيير هذا السلوك باستخدام الإعداد [`schema_inference_make_columns_nullable`](/ar/reference/settings/formats/schema-inference#schema_inference_make_columns_nullable).

لا يحافظ استنتاج المخطط على أنواع بيانات ClickHouse الأصلية. فعلى سبيل المثال، يُكتب `Bool` بوصفه `INTEGER` في SQLite ويُستنتج على أنه `Int64`، بينما تُكتب الأنواع `Date` و`DateTime` و`Decimal` و`UUID` و`IPv4` و`IPv6` و`Enum` و`Array` و`Tuple` و`Map` بوصفها `TEXT` في SQLite وتُستنتج على أنها `String`.

عند تحديد بنية جدول ClickHouse صراحةً، تُقرأ قيم الفاصلة العائمة بوصفها قيم `REAL` في SQLite، مع اللجوء إلى النص بديلًا في حالة `NaN`. أما قيم SQLite الأخرى فتُقرأ نصًا ثم تُحلَّل إلى أنواع ClickHouse المطلوبة.

<h2 id="format-settings">
  إعدادات الصيغة
</h2>

| الإعداد | الوصف | القيمة الافتراضية |
| - | - | - |
| [`input_format_sqlite_table_name`](/ar/reference/settings/formats/input-format#input_format_sqlite_table_name) | اسم الجدول الذي تُقرأ منه البيانات في إدخال SQLite. إذا تُرك فارغًا، يُستخدم الجدول الأول. | `''` |
| [`output_format_sqlite_table_name`](/ar/reference/settings/formats/output-format#output_format_sqlite_table_name) | اسم الجدول في إخراج SQLite. | `'table'` |
