انتقل إلى محتوى الدرس
الدرس 07
دورة MySQL

تعديل خصائص قواعد البيانات وحذفها بأمان في MySQLMySQL Altering and Dropping Databases

تعلّم تعديل خصائص قواعد البيانات وحذفها بأمان في MySQL 8 الحديث عبر ALTER DATABASE ووضع READ ONLY وجدول INFORMATION_SCHEMA.SCHEMATA و DROP DATABASE IF EXISTS.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
8
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

قبل إجراء أي تعديل أو حذف على قاعدة بيانات في خادم MySQL 8.4، ابدأ دائماً بفحص تعريفها الحالي وإعدادات الترميز والمقارنة والتشفير الخاصة بها عبر الأمر SHOW CREATE DATABASE db_name;:

  • استعراض جملة الإنشاء الفعلية: يعرض النص الدقيق المسجل للقاعدة داخل قاموس بيانات InnoDB.
  • التدقيق قبل التعديل: يتيح التأكد من الترميز الحالي للقاعدة قبل تنفيذ أمر ALTER DATABASE.
مخطط دورة حياة تعديل خصائص قاعدة البيانات وقفلها بوضع القراءة فقط وفحص بياناتها وحذفها بأمان في MySQL 8.4
SQL
-- Inspect the current definition of an existing database
SHOW CREATE DATABASE closetag_store;
SHOW CREATE SCHEMA closetag_analytics;

يُستخدم الأمر ALTER DATABASE (أو مرادفه ALTER SCHEMA) لتحديث الخصائص العامة لقاعدة بيانات قائمة دون مسحها:

  • تحديث الترميز والمقارنة الافتراضية: يغير الإعدادات الافتراضية التي سترثها الجداول والكائنات الجديدة التي ستُنشأ لاحقاً داخل القاعدة.
  • قفل القاعدة للقراءة فقط (READ ONLY = 1): ميزة حديثة في MySQL 8 تمنع أي تعديل أو حذف للقاعدة (وترجع الخطأ ERROR 3989) لحمايتها أثناء الصيانة أو النسخ الاحتياطي، ويُلغى القفل عبر READ ONLY = 0.
SQL
-- Update default collation and test READ ONLY protection lock
ALTER DATABASE closetag_store
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_0900_as_cs;

ALTER DATABASE closetag_store READ ONLY = 1;
ALTER DATABASE closetag_store READ ONLY = 0;

بينما يعرض الأمر SHOW DATABASES; قائمة بأسماء القواعد فقط، يتيح لك جدول النظام القياسي INFORMATION_SCHEMA.SCHEMATA استعلام البيانات الوصفية الكاملة لجميع قواعد البيانات دفعة واحدة:

  • العمود SCHEMA_NAME: يعرض اسم قاعدة البيانات.
  • عمودا الترميز والمقارنة: DEFAULT_CHARACTER_SET_NAME وDEFAULT_COLLATION_NAME لتدقيق التزام القواعد بمعيار utf8mb4.
  • جدول SCHEMATA_EXTENSIONS: يعرض الخيارات الإضافية مثل حالة القفل READ ONLY=1.
SQL
-- Audit database character sets and collations via SCHEMATA
SELECT
  SCHEMA_NAME,
  DEFAULT_CHARACTER_SET_NAME,
  DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA;

يُستخدم الأمر DROP DATABASE (أو المرادف DROP SCHEMA) لحذف قاعدة البيانات بالكامل مع جميع الكائنات والملفات التابعة لها نهائياً من القرص الصلب:

  • عملية نهائية غير قابلة للتراجع: يُنفذ أمر DROP DATABASE بشكل فوري ونهائي، ولا يمكن التراجع عنه بأوامر التراجع البرمجية.
  • إعادة ضبط الجلسة النشطة: إذا حذفت القاعدة التي كانت مفعلة بأمر USE في جلستك، تعود قيمة SELECT DATABASE(); تلقائياً إلى NULL.
SQL
-- Create a disposable sandbox database and drop it cleanly
CREATE DATABASE closetag_temp_sandbox;
DROP DATABASE closetag_temp_sandbox;

عند محاولة تنفيذ DROP DATABASE لقاعدة غير موجودة على الخادم، يتوقف التنفيذ بالخطأ رقم 1008 (HY000):

  • تنظيف بيئات الاختبار بأمان (IF EXISTS): تمنع إضافة العبارة IF EXISTS توقف سكربتات تنظيف بيئات الاختبار إذا كانت القاعدة محذوفة مسبقاً، وتسجل بدلاً من الخطأ ملاحظة خفيفة Note 1008.
SQL
-- Safely drop a temporary database without failing if absent
DROP DATABASE IF EXISTS closetag_temp_sandbox;

-- Inspect the non-fatal Note 1008 logged by the server
SHOW WARNINGS;

يلخص الجدول المرجعي التالي أوامر إدارة دورة حياة قواعد البيانات الكاملة في MySQL 8.4:

جملة SQL القياسيةالصلاحية المطلوبةالدور في دورة الحياةمستوى الأمان والسلوك عند الخطأ
CREATE DATABASE IF NOT EXISTS db;CREATEإنشاء قاعدة بيانات جديدةآمن تماماً؛ يسجل Note 1007 إذا كانت موجودة
SHOW CREATE DATABASE db;صلاحية الرؤيةفحص جملة الإنشاء والترميزقراءة فقط للتدقيق قبل التعديل
ALTER DATABASE db CHARACTER SET ...;ALTERتحديث الترميز والمقارنة الافتراضيةيسري على الكائنات الجديدة التي ستُنشأ لاحقاً
ALTER DATABASE db READ ONLY = 1;ALTERقفل القاعدة في وضع القراءة فقطيمنع الكتابة والحذف بالخطأ ERROR 3989
SELECT ... FROM INFORMATION_SCHEMA.SCHEMATA;صلاحية الرؤيةتدقيق جميع القواعداستعلام وصفي آمن للقراءة فقط
DROP DATABASE IF EXISTS db;DROPالإزالة النهائية للقاعدة من القرصحذف نهائي غير قابل للتراجع؛ يسجل Note 1008 إن لم توجد
SQL
-- Final audit of active database and server hostname
SELECT
  DATABASE(),
  @@hostname,
  @@character_set_server;
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتممت في هذا الدرس الموديول الثاني بإتقان فحص تعريف القاعدة، وتعديل إعداداتها عبر ALTER DATABASE، وحمايتها من التعديل أو الحذف بوضع READ ONLY = 1، واستعلام بيانات النظام عبر INFORMATION_SCHEMA.SCHEMATA، وضوابط الحذف الآمن عبر DROP DATABASE IF EXISTS.

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

انتقل الآن إلى الموديول الثالث والدرس الثامن «أنواع البيانات الرقمية الصحيحة والعشرية في MySQL» لدراسة الأنواع الرقمية الدقيقة قبل بناء الجداول.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Dropping Databases حذف القواعد
تعلّم تعديل خصائص قواعد البيانات وحذفها بأمان في MySQL 8 الحديث عبر ALTER DATABASE ووضع READ ONLY وجدول INFORMATION_SCHEMA.SCHEMATA و DROP DATABASE IF EXISTS.
للمراجعة
02 Inspecting Database Definition فحص تعريف القاعدة المنشأة
المفهوم الهندسي والتطبيق العملي المباشر لقسم فحص تعريف القاعدة المنشأة في MySQL 8.4.
للمراجعة
03 ALTER DATABASE Charset Settings تعديل ترميز القاعدة بـ ALTER
المفهوم الهندسي والتطبيق العملي المباشر لقسم تعديل ترميز القاعدة بـ ALTER في MySQL 8.4.
للمراجعة
04 Querying Information Schema استعلام بيانات القواعد بالنظام
المفهوم الهندسي والتطبيق العملي المباشر لقسم استعلام بيانات القواعد بالنظام في MySQL 8.4.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 DDL DDL
Data Definition Language
أوامر تعريف البيانات (CREATE و ALTER و DROP) التي تدير هياكل القواعد وتُنفذ فوراً.
للمراجعة
02 RO RO
Read-Only Schema Mode (READ ONLY = 1)
وضع القراءة فقط للقاعدة في MySQL 8 الذي يسمح بالقراءة ويمنع أي تعديل أو حذف.
للمراجعة
03 ISO ISO
International Organization for Standardization
المنظمة الدولية للمعايير التي وضعت مواصفات جداول البيانات الوصفية INFORMATION_SCHEMA.
للمراجعة
04 DBA DBA
Database Administrator
مسؤول قواعد البيانات المختص بإدارة دورة حياة القواعد والنسخ الاحتياطي والصلاحيات.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. نفّذ أمثلة SQL المشروحة في قسم فحص تعريف القاعدة المنشأة على خادم MySQL 8 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم تعديل ترميز القاعدة بـ ALTER وقارن مخرجات خادم MySQL.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

7أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي7 أسئلة تنتظرك
01

لماذا لا يتضمن خادم MySQL 8.4 أمراً مباشراً باسم RENAME DATABASE لإعادة تسمية قاعدة البيانات؟

لأن تغيير اسم القاعدة مباشرة قد يخل بسلامة قاموس البيانات والصلاحيات والعروض، لذا يتم إنشاء قاعدة جديدة ونقل الكائنات إليها.

02

أي أمر في MySQL 8.4 يقفل قاعدة البيانات closetag_store بحيث يُسمح بالقراءة فقط وتُمنع جميع عمليات التعديل أو الحذف بالخطأ ERROR 3989؟

يفعّل الأمر ALTER DATABASE closetag_store READ ONLY = 1; وضع القراءة فقط لحماية القاعدة من التعديل أو الحذف.

03

يؤدي تنفيذ ALTER DATABASE closetag_store CHARACTER SET ... إلى تحديث الترميز والمقارنة الافتراضية للجداول الجديدة التي ستُنشأ لاحقاً في القاعدة.

صواب؛ يحدّث الأمر الإعدادات الافتراضية للقاعدة والتي ترثها الكائنات الجديدة عند إنشائها.

04

أي جدول نظام قياسي يتيح استعلام اسم القاعدة والترميز الافتراضي والمقارنة الافتراضية لجميع قواعد البيانات على الخادم؟

يوفر الجدول INFORMATION_SCHEMA.SCHEMATA البيانات الوصفية الكاملة لجميع قواعد البيانات في الخادم.

05

بعد تنفيذ الأمر DROP DATABASE closetag_temp_sandbox;، يمكنك استرجاع القاعدة المحذوفة فوراً عبر تشغيل أمر ROLLBACK;.

خطأ؛ أمر DROP DATABASE عملية هدم نهائية غير قابلة للتراجع ولا يمكن استردادها إلا من نسخة احتياطية خارجية.

06

ما الفائدة الهندسية من إضافة الشرط IF EXISTS في جملة DROP DATABASE IF EXISTS closetag_temp_sandbox;؟

يمنع توقف السكربت بالخطأ ERROR 1008 إذا لم تكن القاعدة موجودة، ويسجل بدلاً منه ملاحظة غير قاتلة Note 1008.

07

ما إجراءات الأمان التي يجب التحقق منها قبل تنفيذ أمر DROP DATABASE؟ (اختر كل ما ينطبق)

التحقق من القاعدة النشطة واسم المضيف عبر SELECT DATABASE(), @@hostname، والتأكد من وجود نسخة احتياطية، وحماية القواعد الحساسة بـ READ ONLY = 1.