في هذا الدرس 6تصفّح المواضيع
في خادم MySQL 8.4، تُمثّل قاعدة البيانات (Database) الحاوية المنطقية العُليا التي تجمع جميع الكائنات البرمجية المرتبطة بمشروع واحد داخل نطاق اسم مستقل ومعزول على الخادم:
- الترادف التام بين الكلمتين: يتعامل محرك MySQL مع الكلمتين المفتاحيتين
DATABASEوSCHEMAبوصفهما مترادفتين بنسبة 100% في جميع أوامر لغة تعريف البيانات. - عزل المشاريع والصلاحيات: يتيح إنشاء قاعدة مستقلة لكل مشروع فصل البيانات والصلاحيات بدقة تامة على نفس الخادم.
-- In MySQL 8.4, DATABASE and SCHEMA are 100% synonymous
CREATE DATABASE IF NOT EXISTS closetag_store;
CREATE SCHEMA IF NOT EXISTS closetag_analytics;
يُستخدم الأمر CREATE DATABASE لإنشاء قاعدة بيانات جديدة على الخادم، ويُنصح دائماً باتباع قواعد التسمية القياسية لضمان توافق القاعدة مع جميع أنظمة التشغيل:
- الأحرف الصغيرة مع الشرطة السفلية (
snake_case): التزم بالأحرف الإنجليزية الصغيرة والأرقام والشرطة السفلية مثلclosetag_academy. - تجنب المسافات والشرطة الوسطية: لا تستخدم المسافات أو الشرطة الوسطية في اسم القاعدة حتى لا تضطر لإحاطة الاسم بعلامات Backticks في كل استعلام.
-- Create a new database with a clean snake_case name
CREATE DATABASE closetag_academy;
-- Inspect the server-generated CREATE DATABASE definition
SHOW CREATE DATABASE closetag_academy;
عند تنفيذ أمر CREATE DATABASE لاسم قاعدة موجودة مسبقاً على الخادم، يتوقف التنفيذ فوراً ويُرجع الخادم الخطأ القاتل رقم 1007 (HY000):
- التشغيل الآمن المتكرر (Idempotency): تمنع إضافة العبارة
IF NOT EXISTSتوقف ملفات التهيئة الآلية إذا كانت القاعدة موجودة بالفعل. - استعراض التنبيهات عبر
SHOW WARNINGS;: يسجل الخادم ملاحظة غير قاتلة برقم 1007 دون المساس بالقاعدة القائمة أو بياناتها.
-- Safe idempotent creation that never aborts if present
CREATE DATABASE IF NOT EXISTS closetag_academy;
-- View the non-fatal Note 1007 logged by the server
SHOW WARNINGS;
لعرض قائمة قواعد البيانات المتاحة لحسابك على الخادم، نستخدم الأمر SHOW DATABASES; (أو المرادف SHOW SCHEMAS;):
- قواعد النظام الأربع المدمجة: يضم كل خادم MySQL 8.4 أربع قواعد داخلية للنظام هي:
mysqlوinformation_schemaوperformance_schemaوsys. - الارتباط بالصلاحيات: لا يعرض الأمر إلا القواعد التي يمتلك حسابك صلاحية الوصول إليها أو رؤيتها.
-- List all databases visible to your connected session
SHOW DATABASES;
-- Synonym command that returns the exact same list
SHOW SCHEMAS;
إنشاء قاعدة البيانات لا يجعلها نشطة تلقائياً داخل جلسة الاتصال الحالية، بل يجب تحديد القاعدة التي تود العمل بداخلها صراحةً باستخدام الأمر USE database_name;:
- فحص القاعدة النشطة (
SELECT DATABASE();): تعيد هذه الدالة اسم القاعدة المختارة حالياً، أو تعيد القيمةNULLإذا لم يتم اختيار أي قاعدة بعد. - نطاق الجلسة: تظل القاعدة المختارة هي الافتراضية طوال جلسة الاتصال الحالية أو حتى تنفذ أمر
USEلقاعدة أخرى.
-- Check active database before selection (returns NULL)
SELECT DATABASE();
-- Switch session context to closetag_store and verify
USE closetag_store;
SELECT DATABASE(), SCHEMA();
يلخص الجدول المرجعي التالي أوامر ودوال إنشاء قواعد البيانات واستعراضها وتفعيلها في MySQL 8.4:
| الأمر / الدالة البرمجية | الوظيفة الأساسية | السلوك عند التكرار أو عدم الوجود |
|---|---|---|
CREATE DATABASE db; | إنشاء قاعدة بيانات جديدة | يتوقف بخطأ ERROR 1007 إذا كانت موجودة مسبقاً |
CREATE DATABASE IF NOT EXISTS db; | إنشاء آمن قابل للتكرار دون توقف | يكمل التنفيذ ويسجل ملاحظة غير قاتلة Note 1007 |
SHOW DATABASES; | عرض قائمة قواعد البيانات المتاحة | يعرض قواعد النظام والقواعد المصرح للمستخدم برؤيتها |
SHOW CREATE DATABASE db; | عرض جملة الإنشاء والترميز الافتراضي | يرجع خطأ ERROR 1049 إذا كانت القاعدة غير موجودة |
USE db; | تعيين القاعدة النشطة للجلسة الحالية | يربط الاستعلامات التالية بهذه القاعدة حتى تغييرها |
SELECT DATABASE(); | استعلام اسم القاعدة النشطة حالياً | يرجع القيمة NULL قبل اختيار أي قاعدة |
-- Complete workflow: create safely, select, and verify
CREATE DATABASE IF NOT EXISTS closetag_store;
USE closetag_store;
SELECT DATABASE(), VERSION();
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تعرفت في هذا الدرس على الترادف التام بين DATABASE وSCHEMA في MySQL، وكيفية إنشاء قواعد البيانات بأمان عبر CREATE DATABASE IF NOT EXISTS، واستعراض القواعد بأمر SHOW DATABASES، وتفعيل القاعدة النشطة بأمر USE والدالة SELECT DATABASE().
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس السادس «ترميز الأحرف والمقارنات النصية UTF8MB4 في MySQL» لإتقان إعدادات الترميز لدعم اللغة العربية والرموز العالمية.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Creating Databases إنشاء القواعد
- تعلّم إنشاء قواعد البيانات وعرضها واختيارها في MySQL 8 الحديث باستخدام أوامر CREATE DATABASE و IF NOT EXISTS و SHOW DATABASES و USE.
- للمراجعة
- 02 Database vs Schema in MySQL مفهوم قاعدة البيانات والمخطط
- المفهوم الهندسي والتطبيق العملي المباشر لقسم مفهوم قاعدة البيانات والمخطط في MySQL 8.4.
- للمراجعة
- 03 CREATE DATABASE Statement إنشاء القاعدة بأمر CREATE
- المفهوم الهندسي والتطبيق العملي المباشر لقسم إنشاء القاعدة بأمر CREATE في MySQL 8.4.
- للمراجعة
- 04 IF NOT EXISTS Safety Clause شرط الوقاية IF NOT EXISTS
- المفهوم الهندسي والتطبيق العملي المباشر لقسم شرط الوقاية IF NOT EXISTS في MySQL 8.4.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 DDL DDL
- Data Definition Language
- لغة تعريف البيانات التي تضم أوامر إنشاء وهيكلة قواعد البيانات مثل CREATE DATABASE.
- للمراجعة
- 02 CI/CD CI/CD
- Continuous Integration / Continuous Deployment
- أنابيب التكامل والنشر المستمر التي تعتمد على أوامر الإنشاء الآمنة المتكررة دون توقف.
- للمراجعة
- 03 NULL NULL
- Null Marker (No Active Value)
- علامة عدم وجود قيمة التي تعيدها الدالة SELECT DATABASE() قبل اختيار أي قاعدة نشطة.
- للمراجعة
- 04 RDBMS RDBMS
- Relational Database Management System
- نظام إدارة قواعد البيانات العلائقية الذي يعزل قواعد المشاريع المتعددة على نفس الخادم.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
نفّذ أمثلة SQL المشروحة في قسم مفهوم قاعدة البيانات والمخطط على خادم MySQL 8 المحلي وتحقق من النتيجة.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم إنشاء القاعدة بأمر CREATE وقارن مخرجات خادم MySQL.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي7 أسئلة تنتظرك +
في خادم MySQL 8.4، يُعد الأمران CREATE SCHEMA و CREATE DATABASE مترادفين تماماً في الوظيفة والنتيجة.
صواب؛ يتعامل محرك MySQL مع كلمتي SCHEMA و DATABASE بوصفهما مترادفتين تماماً.
ما أسلوب التسمية القياسي الموصى به لقواعد بيانات MySQL لتجنب مشاكل حساسية الأحرف بين Linux و Windows؟
الأحرف الإنجليزية الصغيرة مع الشرطة السفلية (lowercase snake_case) تضمن عمل القاعدة على جميع الأنظمة دون أخطاء.
ماذا يحدث عند تنفيذ CREATE DATABASE IF NOT EXISTS closetag_store; إذا كانت القاعدة موجودة مسبقاً؟
يتجاوز الخادم الإنشاء بأمان دون إيقاف السكربت ويسجل ملاحظة غير قاتلة (Note 1007) تُعرض بأمر SHOW WARNINGS.
أي من قواعد البيانات التالية تُعد من قواعد النظام المدمجة افتراضياً في خادم MySQL 8.4؟ (اختر كل ما ينطبق)
تضم قواعد النظام المدمجة كلاً من mysql و information_schema و performance_schema و sys.
أي أمر في لغة SQL يفعّل قاعدة البيانات closetag_store لتكون هي القاعدة النشطة للجلسة الحالية؟
يعيّن الأمر USE closetag_store; قاعدة البيانات المحددة كقاعدة افتراضية للجلسة الحالية.
ماذا تُرجع الدالة SELECT DATABASE(); فور الاتصال بخادم MySQL وقبل تنفيذ أي أمر USE؟
تُرجع الدالة SELECT DATABASE() القيمة NULL عندما لا تكون هناك أي قاعدة بيانات مختارة بعد.
أي جملة SQL تعرض نص أمر الإنشاء الكامل والترميز الافتراضي المخصص لقاعدة البيانات closetag_store؟
يعرض الأمر SHOW CREATE DATABASE closetag_store; جملة الإنشاء الكاملة مع إعدادات الترميز والمقارنة.