توفر هذه المقالة دليلاً سريعًا لترحيل أنظمة التطبيقات المستندة إلى قواعد بيانات MySQL إلى قواعد بيانات GBase (GBase 8c). للحصول على معلومات مفصلة حول جوانب محددة من قاعدتي البيانات، يمكن للقراء الرجوع إلى وثائق MySQL الرسمية (https://dev.mysql.com/doc/) ودليل مستخدم GBase 8c. نظرًا للمحتوى الشامل المتضمن في التعيين الأساسي لأنواع بيانات MySQL والجوانب الأخرى لعملية الترحيل، فلن يتم تناول ذلك بالتفصيل في هذه المقالة. إذا كنت مهتما، يرجى ترك تعليق، ويمكننا مناقشة الأمر في المرة القادمة.
في كل من MySQL وGBase 8c، يتم استخدام عبارة CREATE DATABASE لإنشاء قاعدة بيانات. الاختلافات النحوية المحددة هي كما يلي:
عملية | بيان MySQL SQL | بيان SQL GBase 8c |
---|---|---|
إنشاء قاعدة بيانات | إنشاء مثال لقاعدة البيانات، مجموعة الأحرف utf8mb4 COLLATE utf8mb4_unicode_ci; | إنشاء مثال لقاعدة بيانات المالك gbase ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8'; |
اعتبارات لترحيل عبارات SQL لإنشاء قواعد البيانات:
(1) في كل من MySQL وGBase 8c، يمكنك تحديد مجموعة الأحرف وقواعد الترتيب عند إنشاء قاعدة بيانات.
بخلاف MySQL، في GBase 8c، يتم استخدام الكلمة الأساسية ENCODING لتحديد مجموعة الأحرف، ويتم استخدام الكلمتين الأساسيتين LC_COLLATE وLC_CTYPE لتحديد قواعد الترتيب:
LC_COLLATE: تؤثر هذه المعلمة على ترتيب فرز السلاسل (على سبيل المثال، عند استخدام ORDER BY، وكذلك ترتيب الفهارس في أعمدة النص).
LC_CTYPE: تؤثر هذه المعلمة على تصنيف الأحرف، مثل الأحرف الكبيرة والصغيرة والأرقام.
(2) عند إنشاء قاعدة بيانات في GBase 8c، يمكنك أيضًا تحديد سمات إضافية فريدة. تشمل السمات الشائعة ما يلي:
المالك: تحدد هذه المعلمة مالك قاعدة البيانات. إذا لم يتم تحديده، فإن المالك هو المستخدم الحالي افتراضيًا.
حد الاتصال: تحدد هذه المعلمة عدد الاتصالات المتزامنة التي يمكن لقاعدة البيانات قبولها. لا يخضع مسؤولو النظام لهذا الحد.
(3) هيكل قاعدة البيانات
في MySQL، قاعدة البيانات والمخطط مترادفان، ويمكن أن تشير قواعد البيانات إلى بعضها البعض. في GBase 8c، تعد قاعدة البيانات والمخطط كائنين مختلفين. يمكن أن تحتوي قاعدة بيانات واحدة على مخططات متعددة، ولا يمكن لقواعد البيانات الرجوع إلى بعضها البعض، ولكن يمكن للمخططات الموجودة في نفس قاعدة البيانات أن تفعل ذلك.
مقارنة عبارات SQL المختلفة لتشغيل قاعدة البيانات:
عملية | بيان MySQL SQL | بيان SQL GBase 8c | أداة GBase 8c gsql |
---|---|---|---|
عرض قواعد البيانات | عرض قواعد البيانات؛ أو عرض مثال قاعدة البيانات؛ | اختر * من pg_database؛ | \ل أو \ل |
تبديل قاعدة البيانات | مثال للاستخدام؛ | أعد الاتصال للتبديل، هذه الوظيفة لا تستخدم SQL للتبديل | \c مثال |
حذف قاعدة البيانات | مثال لإسقاط قاعدة البيانات؛ | مثال لإسقاط قاعدة البيانات؛ | لا أحد |
يدعم كل من MySQL وGBase 8c إنشاء الجداول باستخدام عبارة CREATE TABLE. الاختلافات النحوية المحددة هي كما يلي:
عملية | بيان MySQL SQL | بيان SQL GBase 8c |
---|---|---|
إنشاء الجداول باستخدام إنشاء جدول | إنشاء جدول `my_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'id'، `user_id` int NOT NULL COMMENT 'معرف المستخدم'، `name` varchar(50) DEFAULT تعليق فارغ 'الاسم'، `العنوان' varchar(50) افتراضي تعليق فارغ 'العنوان'، `كلمة المرور` varchar(20) افتراضي 'passwd' تعليق 'كلمة المرور'، المفتاح الأساسي (`المعرف) `) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
إنشاء جدول "my_table" ( "id" SERIAL NOT NULL, "user_id" int NOT NULL, "name" varchar(50), "address" varchar(50) , "passwd" varchar(20) DEFAULT 'password', CONSTRAINT "my_table_pkey" PRIMARY KEY ("id") ); تعليق على العمود "my_table"."id " IS 'id'; التعليق على العمود "my_table"."user_id" هو "معرف المستخدم"; التعليق على العمود "my_table"."name" IS 'Name'; التعليق على العمود " my_table"."address" هو "العنوان"؛ تعليق على العمود "my_table"."passwd" هو "كلمة المرور"؛ |
إنشاء الجداول باستخدام CREATE TABLE ... مثل | إنشاء جدول `my_table_like` مثل `my_table`؛ | إنشاء جدول my_table_like (مثل my_table)؛ |
إنشاء الجداول باستخدام CREATE TABLE ... AS | إنشاء جدول `my_table_as` كما حدد * من `my_table`؛ | إنشاء جدول my_table_as كما حدد * من my_table؛ |
عند ترحيل عبارات SQL لإنشاء الجداول، يلزم إجراء تغييرات بناء الجملة التالية:
(1) قواعد التسمية وحساسية حالة الأحرف
في MySQL، يتم وضع أسماء قواعد البيانات والجداول والحقول ضمن علامات التحديد الخلفية (``) لوضع العلامات. هذا غير مسموح به في GBase 8c؛ بدلاً من ذلك، يستخدم GBase 8c إما علامات الاقتباس المزدوجة أو لا توجد علامات على الإطلاق.
في GBase 8c، إذا لم تكن أسماء الجدول والحقول محاطة بعلامات اقتباس مزدوجة، فسيتم تحويلها تلقائيًا إلى أحرف صغيرة عند إنشاء الجدول. إذا كنت بحاجة إلى تحديد أسماء بأحرف كبيرة، فيجب عليك وضع الأسماء بين علامتي اقتباس مزدوجتين.
(2) التغييرات المتعلقة بمحرك التخزين
عند الترحيل إلى GBase 8c، تحتاج إلى إزالة الجمل المتعلقة بمحرك التخزين مثل ENGINE وTYPE من عبارات MySQL.
لا يدعم GBase 8c تعيين مجموعات الأحرف على مستوى الجدول، لذلك يجب إزالة جمل CHARSET في عبارات MySQL عند الترحيل إلى GBase 8c.
(3) إنشاء جدول مثل\AS
يدعم GBase 8c أيضًا بناء جملة CREATE TABLE LIKE\AS، لكن استخدام عبارة LIKE يختلف عن MySQL. في GBase 8c، يجب تضمين جملة LIKE في "()"، ولا تقوم تلقائيًا بنسخ التعليقات التوضيحية للتعليق من أعمدة الجدول الأصلية.
يدعم كل من MySQL وGBase 8c طرق العرض، وطريقة الإنشاء الأساسية متشابهة. ومع ذلك، من المهم ملاحظة أنه في GBase 8c، بموجب القاعدة الافتراضية، لا يتم دعم تعديل البيانات مباشرة في طريقة العرض.
عملية | بيان MySQL SQL | بيان SQL GBase 8c |
---|---|---|
إنشاء طريقة عرض | إنشاء عرض v_my_table AS SELECT * FROM my_table; | إنشاء عرض v_my_table AS SELECT * FROM my_table; |
تعديل البيانات من خلال طريقة العرض | INSERT INTO v_my_table(user_id, name, title) VALUES(2222, 'bbb', 'xxxx'); | مدعم، ولكن يتطلب تعديل القاعدة الافتراضية |
إسقاط طريقة العرض | إسقاط العرض v_my_table; | إسقاط العرض v_my_table; |
يدعم كل من MySQL وGBase 8c وظيفة الفهرسة، ولكن هناك اختلافات طفيفة في عمليات الإنشاء والحذف. الاختلافات الأساسية في بناء الجملة هي كما يلي:
عملية | بيان MySQL SQL | بيان SQL GBase 8c |
---|---|---|
إنشاء الفهرس |
إنشاء فهرس i_user_id باستخدام BTREE على my_table (user_id)؛ أو إنشاء فهرس i_user_id على my_table (user_id) باستخدام BTREE؛ |
إنشاء فهرس i_user_id على my_table باستخدام BTREE (user_id)؛ |
مؤشر الانخفاض | إسقاط الفهرس i_user_id على my_table؛ | إسقاط الفهرس i_user_id; |
نقاط الاهتمام لترحيل بيانات إنشاء الفهرس وحذفه:
(1) موضع استخدام نوع الفهرس
في MySQL، يمكن أن تظهر جملة USING Index_type قبل أو بعد جملة table_name(col_name)، كما هو موضح:
... استخدام اسم_الجدول_نوع_الفهرس(col_name)...
أو
... اسم الجدول (اسم_العمود) باستخدام نوع الفهرس ...
ومع ذلك، في GBase 8c، يجب وضع جملة USING Index_type في منتصف جملة table_name(col_name):
... اسم الجدول باستخدام نوع الفهرس (اسم_العمود) ...
(2) إسقاط الفهرس على الطاولة
في GBase 8c، عند حذف كائن فهرس، لا تحتاج إلى تحديد جملة ON table. يجب إزالة هذه الجملة أثناء الترحيل.
(3) عقارات أخرى
لا يدعم GBase 8c خصائص النص الكامل والمكاني عند إنشاء كائنات الفهرس. يجب إزالة هذه الخصائص أثناء الترحيل.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3