English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الفصل، سنقدم لك بعض الأوامر البسيطة لاستيراد البيانات في MySQL.
نموذج استيراد البيانات باستخدام أمر mysql هو:
mysql-uاسم المستخدم-pكلمة المرور<ملف البيانات التي سيتم استيراده(w3codebox.sql)
مثال:
#mysql-uroot-p123456<w3codebox.sql
أمر الأعلى سيقوم باستيراد قاعدة البيانات بأكملها w3codebox.sql.
يحتاج الأمر إلى تسجيل الدخول إلى واجهة التشغيل للقاعدة البيانات لاستيراد قاعدة البيانات باستخدام أمر source:
mysql>createdatabaseabc;#إنشاء قاعدة البيانات mysql>useabc;#استخدام قاعدة البيانات المكتسبة mysql>setnamesutf8;#تعيين الترميز mysql>source/home/abc/abc.sql#استيراد قاعدة البيانات الاحتياطية
يقدم MySQL جملة LOAD DATA INFILE لاستيراد البيانات. في الأمثلة التالية، سيتم قراءة الملف dump.txt من الدليل الحالي، وسيتم إدراج البيانات الموجودة في هذا الملف في جدول mytbl في قاعدة البيانات الحالية.
mysql>LOADLOCALINFILE'dump.txt'INTOTABLEmytbl;
إذا تم تشير كلمة LOCAL، فإن ذلك يعني قراءة الملف عبر مسار على جهاز المستخدم. إذا لم يتم تشيرها، فإن الملف سيتم قراءته عبر مسار على الخادم.
يمكنك تحديد واضحًا مسافات الفصل بين قيم الأعمدة وأي علامة إتمام سطر في جملة LOAD DATA، ولكن العلامة الإفتراضية هي الرمز الدالة والسطر المطلق.
نفس الجملة FIELDS و LINES الخاصة بكلتا الأمرتين لهما نفس النحو. كلاهما اختياريتان، ولكن إذا تم تشيرهما معًا، يجب أن يظهر جملة FIELDS قبل جملة LINES.
إذا كان المستخدم يشير إلى جملة FIELDS، فإن جملة فرعية الخاصة بها (TERMINATED BY،[OPTIONALLY] ENCLOSED BY و ESCAPED BY) هي اختيارية أيضًا، ولكن يجب على المستخدم أن يشير إلى واحد منها على الأقل.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl -> FIELDS TERMINATED BY ':' -> LINES TERMINATED BY '\r\n';
يتم إدراج البيانات بشكل افتراضي بناءً على ترتيب الأعمدة في ملف البيانات، إذا لم تكن الأعمدة في ملف البيانات متطابقة مع الأعمدة في جدول الإدراج، فيجب تحديد ترتيب الأعمدة.
على سبيل المثال، إذا كان ترتيب الأعمدة في ملف البيانات هو a,b,c، لكن ترتيب الأعمدة في جدول الإدراج هو b,c,a، فإن جملة إدراج البيانات ستكون كما يلي:
mysql> LOAD DATA LOCAL INFILE 'dump.txt' -> INTO TABLE mytbl (b, c, a);
يقدم عميل mysqlimport واجهة سطر الأوامر لجملة LOAD DATA INFILEQL. تتطابق معظم خيارات mysqlimport مع فقرة LOAD DATA INFILE.
لإدراج البيانات من ملف dump.txt إلى جدول البيانات mytbl، يمكنك استخدام الأمر التالي:
$ mysqlimport -u root -p --local mytbl dump.txt كلمة المرور *****
يمكن للإصدار mysqlimport تحديد خيارات لضبط النمط المحدد، ويكون نمط جملة الأمر كالتالي:
$ mysqlimport -u root -p --local --fields-terminated-by=":" \ --lines-terminated-by="\r\n" mytbl dump.txt كلمة المرور *****
استخدام خيار --columns في جملة mysqlimport لضبط ترتيب الأعمدة:
$ mysqlimport -u root -p --local --columns=b,c,a \ mytbl dump.txt كلمة المرور *****
الخيارات | الميزات |
---|---|
-d أو --delete | سيتم حذف جميع المعلومات من جدول البيانات قبل إدراج البيانات الجديدة في جدول البيانات. |
-f أو --force | سيستمر mysqlimport في إدراج البيانات مهما كانت الأخطاء التي يواجهها. |
-i أو --ignore | mysqlimport يفوت أو يتجاهل تلك التي تحتوي على نفس القيمة الفريدة سطر الكلمات المفتاحية، سيتم تجاهل البيانات الموجودة في ملف الاستيراد. |
-l أو -lock-tables | يتم قفل الجدول قبل إدخال البيانات، مما يمنع، في عملية تحديث قاعدة البيانات، يؤثر على استعلامات المستخدمين والتحديثات. |
-r أو -replace | هذا الخيار يعمل عكسًا للأمر -i؛ هذا الخيار سيستبدل هناك سجلات في الجدول لها نفس المفتاح الفريد. |
--fields-enclosed-by= char | يحدد هذا الخيار كيفية حواف البيانات في سجلات النص. البيانات محاطة بأقواس مزدوجة. بشكل افتراضي، ليست البيانات محاطة بأقواس. |
--fields-terminated-by=char | يحدد هذا الخيار وحدات الفصل بين القيم في البيانات، في ملفات الفواصل النقاط، الوحدات الفاصلة هي النقاط. يمكنك استخدام هذا الخيار لتعيين وحدات الفصل بين البيانات. الوحدات الفاصلة الافتراضية هي مسافات النسخ (Tab). |
--lines-terminated-by=str | يحدد هذا الخيار سلسلة الفصل بين البيانات في ملف النص. أو حرف. بشكل افتراضي، يستخدم mysqlimport newline كحرف فاصل للسطور. يمكنك استخدام سلسلة لتعويض حرف واحد: خط جديد أو مفتاح Enter. |
الخيارات الشائعة لأمر mysqlimport تشمل -v لعرض إصدار (الإصدار)، -p لطلب إدخال كلمة المرور (كلمة المرور) وما إلى ذلك.