> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> يتيح هذا المحرك استيراد البيانات وتصديرها إلى SQLite، ويدعم إجراء استعلامات على جداول SQLite مباشرةً من ClickHouse.

# محرك جدول SQLite

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

يتيح هذا المحرك استيراد البيانات إلى SQLite وتصديرها منه، كما يدعم الاستعلام عن جداول SQLite مباشرةً من ClickHouse.

<div id="creating-a-table">
  ## إنشاء جدول
</div>

```sql theme={null}
    CREATE TABLE [IF NOT EXISTS] [db.]table_name
    (
        name1 [type1],
        name2 [type2], ...
    ) ENGINE = SQLite('db_path', 'table')
```

**معلمات المحرّك**

* `db_path` — مسار ملف SQLite الذي يحتوي على قاعدة البيانات.
* `table` — اسم جدول في قاعدة بيانات SQLite، أو استعلام يُمرَّر إلى SQLite كما هو (انظر [تمرير استعلام بدلًا من اسم جدول](#passing-a-query)).

<div id="passing-a-query">
  ## تمرير استعلام بدلًا من اسم جدول
</div>

بدلًا من اسم الجدول، يمكن أن تكون قيمة الوسيطة `table` استعلام `SELECT` يُمرَّر إلى SQLite كما هو. ويُستدل على بنية الجدول من نتيجة الاستعلام. ويمكن كتابة الاستعلام إما كاستعلام فرعي أو بتغليفه داخل الدالة `query`:

```sql theme={null}
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', (SELECT col1, col2 FROM table1 WHERE col2 > 1));
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', query('SELECT col1, col2 FROM table1 WHERE col2 > 1'));
```

مثل هذا الجدول للقراءة فقط: لا يُسمح بتنفيذ `INSERT` فيه. وتدعم دالة الجدول [`sqlite`](/docs/ar/reference/functions/table-functions/sqlite) الصياغة نفسها.

<Note>
  يُحلَّل شكل الاستعلام الفرعي `(SELECT ...)` بواسطة ClickHouse، ثم يُعاد تسلسله قبل إرساله إلى SQLite. لذلك يجب أن يكون صالحًا في ClickHouse SQL. ولتمرير صياغة خاصة بـ SQLite لا يحلّلها ClickHouse، استخدم صيغة `query('...')`، إذ يُرسَل نصها إلى SQLite كما هو.

  أي `WHERE` أو `LIMIT` أو aggregation أو غير ذلك من عناصر استعلام ClickHouse المحيط **لا** يُدفَع إلى داخل الاستعلام المُمرَّر — بل يُطبَّق في ClickHouse بعد جلب نتيجة الاستعلام كاملةً. ولتقييد البيانات المقروءة من SQLite، ضع filter داخل الاستعلام المُمرَّر. ومع [`external_table_strict_query = 1`](/docs/ar/reference/settings/session-settings#external_table_strict_query)، يُرفَض أي filter خارجي لا يمكن دفعه إلى المصدر عبر exception بدلًا من تطبيقه محليًا.
</Note>

<div id="data-types-support">
  ## دعم أنواع البيانات
</div>

عند تحديد أنواع أعمدة ClickHouse صراحةً في تعريف الجدول، يمكن تحليل أنواع ClickHouse التالية من أعمدة TEXT في SQLite:

* [Date](/docs/ar/reference/data-types/date), [Date32](/docs/ar/reference/data-types/date32)
* [DateTime](/docs/ar/reference/data-types/datetime), [DateTime64](/docs/ar/reference/data-types/datetime64)
* [UUID](/docs/ar/reference/data-types/uuid)
* [Enum8, Enum16](/docs/ar/reference/data-types/enum)
* [Decimal32, Decimal64, Decimal128, Decimal256](/docs/ar/reference/data-types/decimal)
* [FixedString](/docs/ar/reference/data-types/fixedstring)
* جميع أنواع الأعداد الصحيحة ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/docs/ar/reference/data-types/int-uint))
* [Float32, Float64](/docs/ar/reference/data-types/float)

راجع [محرك قاعدة بيانات SQLite](/docs/ar/reference/engines/database-engines/sqlite#data_types-support) للاطّلاع على مطابقة الأنواع الافتراضية.

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

يعرض استعلامًا لإنشاء جدول SQLite:

```sql theme={null}
SHOW CREATE TABLE sqlite_db.table2;
```

```text theme={null}
CREATE TABLE SQLite.table2
(
    `col1` Nullable(Int32),
    `col2` Nullable(String)
)
ENGINE = SQLite('sqlite.db','table2');
```

يُرجِع البيانات من الجدول:

```sql theme={null}
SELECT * FROM sqlite_db.table2 ORDER BY col1;
```

```text theme={null}
┌─col1─┬─col2──┐
│    1 │ text1 │
│    2 │ text2 │
│    3 │ text3 │
└──────┴───────┘
```

**راجع أيضًا**

* محرك [SQLite](/docs/ar/reference/engines/database-engines/sqlite)
* دالة الجدول [sqlite](/docs/ar/reference/functions/table-functions/sqlite)
