محوّل CSV إلى SQL

عادةً ما يعني الحصول على بيانات CSV في قاعدة البيانات إما تشغيل أداة التحميل أو كتابة أوامر COPY / LOAD DATA INFILE التي تعمل فقط على الملفات المحلية. بالنسبة لمجموعات البيانات الصغيرة - العشرات والمئات وبضعة آلاف من الصفوف - غالبًا ما تكون عبارات INSERT البسيطة التي يمكنك لصقها في أي وحدة تحكم SQL أسرع. تأخذ هذه الأداة ملف CSV الخاص بك، وتأخذ اسم جدول، وتنتج INSERT واحد لكل صف مع معرفات ذات علامات اقتباس خلفية وقيم ذات علامات اقتباس مفردة آمنة للتشغيل.

كيف يتم تجميع SQL

  1. 1

    الصق ملف CSV

    ملف CSV قياسي مع صف رأس اختياري. يتعامل المحلل مع الخلايا المقتبسة التي تحتوي على فواصل مدمجة.

  2. 2

    قم بتعيين اسم الجدول

    يتم استبدال الأحرف غير الأبجدية الرقمية في اسم الجدول بشرطات سفلية؛ يعود إلى `my_table` إذا كان فارغًا.

  3. 3

    الأعمدة تأتي من الرأس

    إذا كان وضع الرأس قيد التشغيل، يصبح الصف 1 هو قائمة الأعمدة. بخلاف ذلك، تتم تسمية الأعمدة باسم `column_1`، و`column_2`، وما إلى ذلك.

  4. 4

    إدراج واحد لكل صف بيانات

    يصبح كل صف `INSERT INTO table (cols) VALUES (...)`. القيم مقتبسة بشكل فردي ويتم مضاعفة علامات الاقتباس الداخلية.

اللهجة والاقتباس ومتى يجب الوصول إلى شيء آخر

يستهدف المولد لغة SQL ذات نكهة MySQL مع علامات الاقتباس الخلفية حول المعرفات وعلامات الاقتباس المفردة حول القيم. ستقبلها معظم قواعد البيانات مع تعديلات طفيفة.

ورقة مرجعية سريعة للهجات

قاعدة البيانات اقتباس المعرّفات ملاحظات
MySQL علامات اقتباس خلفية يعمل دون تغيير.
MariaDB علامات اقتباس خلفية يعمل دون تغيير.
PostgreSQL علامات اقتباس مزدوجة استبدل ` بـ " قبل التشغيل.
SQLite علامات اقتباس مزدوجة استبدل ` بـ " أو احذف اقتباس المعرّف.
SQL Server أقواس مربعة استبدل ` بـ []؛ وانتبه إلى N'...' لدعم Unicode.

كيف يتم الهروب من القيم

جميع القيم هي علامات اقتباس مفردة ويتم مضاعفة أي علامات اقتباس مفردة مضمنة (O'Brien تصبح 'O''Brien'). هذه هي طريقة SQL-92 وتعمل في كل قاعدة بيانات رئيسية. لا يقوم المحول بالتحويل - يتم إصدار كل شيء كسلسلة حرفية، وبالتالي فإن التحويل الضمني لقاعدة البيانات سيحول '42' إلى عدد صحيح عندما يكون العمود INT.

نصائح للواردات النظيفة

  • قم بإنشاء الجدول أولاً. يقوم المحول بإصدار عبارات INSERT فقط، وليس CREATE TABLE. قم بالاقتران بمخطط تحدده يدويًا أو تنشئه من ORM الخاص بك.
  • قم بتقطيع الملفات الكبيرة. الصق ما بين 500 إلى 1000 صف في المرة الواحدة إذا كان لدى عميل SQL الخاص بك حد لحجم البيان.
  • إدراج معاملة. بالنسبة إلى أي شيء يزيد عن بضع مئات من الصفوف، ضع اللصق بين قوسين مع BEGIN; وCOMMIT; (أو START TRANSACTION; / COMMIT;). أسرع بكثير من التنفيذ التلقائي لكل عبارة.

متى يجب تخطي إنشاء SQL

إذا كان ملفك يحتوي على أكثر من 50000 صف تقريبًا، فإن أدوات التحميل المجمعة الأصلية (COPY في Postgres، وLOAD DATA INFILE في MySQL، وbcp في SQL Server) تكون أسرع من حيث الحجم من INSERTs المكتوبة. هذه الأداة مخصصة لعمليات الاستيراد السريعة، وبذر بيانات الاختبار، وعمليات الترحيل لمرة واحدة.

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

لا، فهو يصدر بيانات INSERT فقط. قم بتعريف المخطط بنفسك باستخدام CREATE TABLE مسبقًا - وبهذه الطريقة يمكنك التحكم في أنواع الأعمدة وأطوالها وقيودها بدلاً من السماح للمحول بالتخمين.

مع تغيير واحد: استبدل علامات الاقتباس الخاصة بمعرف العلامة الخلفية حول أسماء الجداول والأعمدة بعلامات اقتباس مزدوجة. القيم مقتبسة بشكل مفرد وسيتم تشغيلها دون تغيير على أي لهجة SQL-92.

تتم مضاعفة علامات الاقتباس المفردة داخل القيم (O''Brien)، وهو هروب SQL القياسي. تمر الخطوط المائلة العكسية وعلامات النسبة المئوية والشرطات السفلية حرفيًا - وتصبح مميزة فقط في أنماط LIKE.

نعم، يتم إرسال ملف CSV إلى خادمنا لتوليد SQL. لا يتم تخزينه ولا يُضاف إلى رابط الصفحة.

أدوات ذات صلة

الأداة متاحة بلغات أخرى