DevToolPal
ع

محوّل CSV إلى SQL

حوّل CSV إلى عبارات CREATE TABLE وINSERT لـ MySQL أو PostgreSQL أو SQLite أو SQL Server، مع استنتاج أنواع الأعمدة تلقائيًا.

يعمل محليًا، دون أي رفع

الخيارات

الإدخال

0 حرف · 0 B

المخرجات

0 حرف · 0 B

ما الذي تفعله الأداة

يعني تحميل جدول بيانات إلى قاعدة بيانات عادةً كتابة تعريف الجدول وقائمة طويلة من عبارات INSERT يدويًا مع تهريب كل علامة اقتباس مفردة. تتولى هذه الأداة ذلك عنك: الصق CSV واحصل على نص SQL جاهز للتشغيل يتضمن عبارة CREATE TABLE وعبارات INSERT متعددة الصفوف مقسمة على دفعات.

تتبع الأداة RFC 4180، فتعالج الحقول المحاطة بعلامات اقتباس والفواصل وفواصل الأسطر داخل الخلايا وعلامات الاقتباس المضاعفة. وتُهرَّب النصوص بشكل صحيح لقاعدة البيانات المختارة، بما في ذلك الشرطات المائلة العكسية في MySQL ونصوص Unicode بصيغة N'…' في SQL Server.

طريقة الاستخدام

  1. الصق CSV، أو ارفع ملف .csv أو .tsv، أو انقر مثال.
  2. أدخل اسم الجدول. استخدم نقطة للمخطط، مثل public.orders أو dbo.orders.
  3. اختر قاعدة البيانات: MySQL / MariaDB أو PostgreSQL أو SQLite أو SQL Server.
  4. اختر عدد الصفوف في كل INSERT، وأوقف CREATE TABLE إذا كان الجدول موجودًا.
  5. انسخ SQL أو نزّله ملف .sql وشغّله في عميل قاعدة البيانات.

يُكتشف الفاصل تلقائيًا، ويمكنك أيضًا تحديد الفاصلة أو الفاصلة المنقوطة أو Tab أو الخط العمودي صراحةً. إذا كان الصف الأول بيانات وليس أسماء أعمدة، فأوقف الصف الأول ترويسة لتُسمّى الأعمدة column_1 وcolumn_2 وهكذا.

مثال

ملف CSV هذا:

id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false

يصبح هذا النص لـ PostgreSQL:

CREATE TABLE "products" (
  "id" INTEGER,
  "name" TEXT,
  "price" NUMERIC(3, 2),
  "in_stock" BOOLEAN
);

INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
  (1, 'Ada''s Tea', 4.50, TRUE),
  (2, 'Coffee', NULL, FALSE);

تُضاعَف علامة الاقتباس في Ada's، ويصبح السعر الفارغ NULL، وتُكتب الأرقام والقيم المنطقية بلا علامات اقتباس.

الأنواع واللهجات

  • MySQL / MariaDB: معرّفات بين علامتي backtick، وأنواع INT وDECIMAL وBOOLEAN وDATE وDATETIME وVARCHAR(255) أو TEXT؛ وتُهرَّب الشرطات المائلة العكسية في النصوص.
  • PostgreSQL: معرّفات بين علامتي اقتباس مزدوجتين، وأنواع INTEGER وNUMERIC وBOOLEAN وDATE وTIMESTAMP وTEXT.
  • SQLite: معرّفات بين علامتي اقتباس مزدوجتين وفئات التخزين في SQLite ‏INTEGER وREAL وTEXT؛ وتُكتب القيم المنطقية 1 و0.
  • SQL Server: معرّفات بين أقواس مربعة، وأنواع INT وDECIMAL وBIT وDATE وDATETIME2 وNVARCHAR، مع نصوص بصيغة N'…' و1000 صف كحد أقصى في كل INSERT.
  • تصبح الخلايا الفارغة NULL. أوقف الخلايا الفارغة كـ NULL للإبقاء على نصوص فارغة في الأعمدة النصية.
  • راجع الأنواع المستنتجة قبل تشغيل النص على بيانات الإنتاج: العمود الذي لا يحوي في العينة إلا أرقامًا صغيرة قد يحتاج لاحقًا إلى نوع أوسع.

الأسئلة الشائعة

› ما قواعد البيانات المدعومة؟

MySQL (وMariaDB) وPostgreSQL وSQLite وMicrosoft SQL Server. تحدد اللهجة طريقة إحاطة أسماء الجداول والأعمدة، وطريقة تهريب النصوص، وأنواع الأعمدة المستخدمة، وكيفية كتابة القيم المنطقية.

› كيف تُختار أنواع الأعمدة؟

يُفحص كل عمود: الأعداد الصحيحة تصبح INT أو BIGINT، والعشرية DECIMAL بدقة كافية، وtrue/false تصبح BOOLEAN (‏BIT في SQL Server)، وتواريخ ISO تصبح DATE أو DATETIME، وكل ما عدا ذلك نصًا. الأرقام التي تبدأ بأصفار، مثل الرموز البريدية، تبقى نصًا. أوقف اكتشاف الأنواع لتصبح كل الأعمدة نصية.

› لماذا يقتصر SQL Server على 1000 صف في كل INSERT؟

يرفض SQL Server قائمة VALUES تتجاوز 1000 صف، لذا تُقيَّد أحجام الدفعات الأكبر عند 1000 في هذه اللهجة. تقبل قواعد البيانات الأخرى دفعات أكبر، لكن من 100 إلى 1000 صف لكل عبارة توازن جيد بين السرعة والحجم.

› هل يُرفع ملف CSV الخاص بي؟

لا. يجري التحليل وتوليد SQL بالكامل في متصفحك، فلا تغادر البيانات جهازك أبدًا.