كيفية إنشاء قاعدة بيانات في MySQL (إنشاء MySQL الجداول)

⚡ ملخص ذكي

إنشاء قاعدة بيانات في MySQL يتبع مسارين مثبتين: تنفيذ عبارة CREATE DATABASE، أو إنشاء مخططات مادية من نموذج ER من خلال MySQL هندسة Workbench الأمامية. كلا النهجين ينتجان جداول متطابقة وجاهزة للإنتاج.

  • 🗄️ إنشاء قاعدة البيانات: قم بتشغيل الأمر CREATE DATABASE movies؛ أو الأمر CREATE SCHEMA، الذي MySQL يعامل كمرادف.
  • 🛡️ إعادة عرض آمنة: أضف IF NOT EXISTS حتى يتخطى البرنامج النصي المتكرر عملية الإنشاء بدلاً من إظهار خطأ الاسم المكرر.
  • 🌐 مجموعة الأحرف: اختر utf8mb4 مع utf8mb4_0900_ai_ci للبيانات متعددة اللغات؛ وlatin1 مع latin1_swedish_ci يناسب المخططات القديمة التي تدعم اللغة الإنجليزية فقط.
  • 🧱 إنشاء الجدول: يحدد الأمر CREATE TABLE اسم كل حقل ونوع البيانات والمفتاح الأساسي ومحرك التخزين، وعادةً ما يكون InnoDB.
  • 🔢 أنواع البيانات: تندرج أنواع الأعمدة ضمن عائلات الأرقام والنصوص والتاريخ أو الوقت، بالإضافة إلى متغيرات ENUM وSET وBOOL والثنائية.
  • ⚙️ الهندسة المتقدمة: MySQL يقوم برنامج Workbench بتحويل نموذج ER المعتمد إلى نصوص SQL قابلة للتنفيذ ويقوم بتثبيتها على خادم مباشر.

خطوات إنشاء قاعدة بيانات في MySQL

قاعدة بيانات في MySQL هو حاوية مُسماة للجداول، والعروض، والكائنات ذات الصلة. يمكنك إنشاء واحدة بطريقتين:

1) عن طريق تنفيذ استعلام SQL بسيط

2) باستخدام الهندسة المتقدمة في MySQL طاولة العمل

As مبتدئ SQLفلننظر إلى طريقة الاستعلام أولاً.

كيفية إنشاء قاعدة بيانات في MySQL

إليك كيفية إنشاء قاعدة بيانات في MySQL:

إنشاء قاعدة بيانات هو أمر SQL المستخدم لإنشاء قاعدة بيانات في MySQL.

تخيل أنك بحاجة إلى إنشاء قاعدة بيانات باسم "أفلام". يمكنك إنشاء قاعدة بيانات في MySQL عن طريق تنفيذ أمر SQL التالي.

CREATE DATABASE movies;

ملاحظة: يمكنك أيضًا استخدام الأمر CREATE SCHEMA بدلاً من CREATE DATABASE.

لا يعمل هذا البيان إلا مرة واحدة. إعادة تشغيله تؤدي إلى ظهور خطأ، لذا دعونا نحسن الاستعلام بإضافة المزيد من المعاملات.

إذا لم يكن خارج

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

إذا لم يكن خارج يوجه MySQL يتحقق الخادم من وجود قاعدة بيانات بنفس الاسم قبل إنشائها. تُنشأ قاعدة البيانات فقط إذا كان الاسم متاحًا؛ بدون هذا الشرط، MySQL يلقي خطأ.

CREATE DATABASE IF NOT EXISTS movies;

بمجرد التأكد من أمان اسم قاعدة البيانات، يكون القرار التالي هو كيفية MySQL ينبغي تخزين النص الموجود بداخله ومقارنته.

الترتيب ومجموعة الأحرف

A مجموعة الأحرف يحدد نوع الأحرف التي يمكن تخزينها في عمود، بينما يحدد نوع البيانات الأخرى الأحرف التي يمكن تخزينها في عمود. الترتيب هي مجموعة من القواعد المستخدمة في المقارنة والفرز. يمكن تعريف كليهما على أربعة مستويات: الخادم، وقاعدة البيانات، والجدول، والعمود.

يعتمد الترتيب الذي تختاره على مجموعة الأحرف. على سبيل المثال، تستخدم مجموعة الأحرف latin1 latin1_swedish_ci الترتيب، وهو الترتيب السويدي غير الحساس لحالة الأحرف.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

بالنسبة للغات المحلية مثل العربية أو الصينية، حدد يونيكود utf8mb4 مجموعة الأحرف، التي تخزن جميع أحرف يونيكود، بما في ذلك الرموز التعبيرية. MySQL 8.0 utf8mb4 هي مجموعة الأحرف الافتراضية و utf8mb4_0900_ai_ci الترتيب الافتراضي.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

يمكنك العثور على قائمة بجميع الترتيبات ومجموعات الأحرف اضغط هنا.

يمكنك الاطلاع على قائمة قواعد البيانات الموجودة عن طريق تشغيل أمر SQL التالي.

SHOW DATABASES;

بعد إنشاء قاعدة البيانات، يمكنك الآن إضافة الجداول التي ستحتوي فعليًا على السجلات.

كيفية إنشاء جدول في MySQL

يُستخدم أمر CREATE TABLE لإنشاء الجداول في قاعدة البيانات.

إنشاء جدول في MySQL

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

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

هنا

  • "CREATE TABLE" مسؤول عن إنشاء الجدول في قاعدة البيانات.
  • "[IF NOT EXISTS]" اختياري ولا يقوم بإنشاء الجدول إلا إذا لم يتم العثور على اسم جدول مطابق.
  • "`fieldName`" هو اسم الحقل، و"data Type" يحدد طبيعة البيانات المخزنة فيه.
  • "[المعلمات الاختيارية]" هي معلومات إضافية حول حقل ما، مثل "AUTO_INCREMENT" أو NOT NULL.
  • "محرك التخزين" يدير الجدول، وعادة ما يكون InnoDB، والذي يدعم المعاملات والمفاتيح الخارجية.

MySQL إنشاء مثال للجدول

وفيما يلي MySQL مثال لإنشاء جدول في قاعدة بيانات:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

ملاحظة: الصحيح MySQL الكلمة الرئيسية هي AUTO_INCREMENT مع وضع شرطة سفلية. AUTOINCREMENT ينتمي إلى SQLite ويؤدي إلى ظهور خطأ في بناء الجملة في MySQL.

يحمل كل عمود نوع بيانات، لذا اختر بعناية: لا تقلل من تقدير نطاق البيانات التي تتوقعها ولا تبالغ فيه.

MySQL أنواع البيانات

تحدد أنواع البيانات طبيعة البيانات التي يمكن تخزينها في عمود معين من الجدول.

MySQL لديها 3 الفئات الرئيسية لأنواع البيانات، وهي:

  1. رقمية
  2. نص
  3. التاريخ/الوقت

أنواع البيانات الرقمية

تُستخدم أنواع البيانات الرقمية لتخزين القيم الرقمية. من المهم جدًا التأكد من أن نطاق بياناتك يقع بين الحدين الأدنى والأعلى لنوع البيانات الرقمية الذي تختاره.

تينينت () -128 إلى 127 عادي
0 إلى 255 غير موقعة.
سمالينت () -32768 إلى 32767 عادي
0 إلى 65535 غير موقعة.
متوسط ​​() -8388608 إلى 8388607 عادي
0 إلى 16777215 غير موقعة.
ذكاء () -2147483648 إلى 2147483647 عادي
0 إلى 4294967295 غير موقعة.
بيجينت () -9223372036854775808 إلى 9223372036854775807 عادي
0 إلى 18446744073709551615 غير موقعة.
تطفو رقم تقريبي صغير بفاصلة عشرية عائمة.
مزدوج( , ) رقم كبير بفاصلة عشرية عائمة.
عدد عشري( ، ) يتم تخزين قيمة من نوع DOUBLE كسلسلة نصية، مما يسمح بفاصلة عشرية ثابتة. يُعد هذا خيارًا مناسبًا لتخزين قيم العملات.

أنواع البيانات النصية

كما يوحي اسم فئة نوع البيانات، تُستخدم هذه الفئات لتخزين القيم النصية. تأكد دائمًا من أن طول بياناتك النصية لا يتجاوز الحد الأقصى لطول العمود.

شار () قسم ثابت يتراوح طوله من 0 إلى 255 حرفًا.
فارشار () قسم متغير من 0 إلى 255 حرفًا.
نص صغير سلسلة يبلغ الحد الأقصى لطولها 255 حرفًا.
TEXT سلسلة يبلغ الحد الأقصى لطولها 65535 حرفًا.
BLOB سلسلة يبلغ الحد الأقصى لطولها 65535 حرفًا.
نص متوسط سلسلة يبلغ الحد الأقصى لطولها 16777215 حرفًا.
الكتلة المتوسطة سلسلة يبلغ الحد الأقصى لطولها 16777215 حرفًا.
طويل سلسلة يبلغ الحد الأقصى لطولها 4294967295 حرفًا.
لونجبلوب سلسلة يبلغ الحد الأقصى لطولها 4294967295 حرفًا.

أنواع بيانات التاريخ والوقت

تقوم أنواع بيانات التاريخ والوقت بتخزين قيم التقويم والساعة بتنسيق ثابت، مما يحافظ على موثوقية الفرز والمقارنة.

تاريخ YYYY-MM-DD
التاريخ والوقت YYYY-MM-DD HH: MM: SS
الطابع الزمني YYYYMMDDHHMMSS
الوقت HH: MM: SS

أنواع البيانات الأخرى

إلى جانب ما سبق، توجد بعض أنواع البيانات الأخرى في MySQL.

تعداد لتخزين قيمة نصية مختارة من قائمة قيم نصية محددة مسبقًا
طقم يُستخدم هذا أيضًا لتخزين القيم النصية المختارة من قائمة القيم النصية المحددة مسبقًا. يمكن أن يكون لها قيم متعددة.
BOOL مرادف لـ TINYINT(1)، يُستخدم لتخزين القيم المنطقية
الثنائية يشبه CHAR؛ الفرق هو أن النصوص تُخزن بتنسيق ثنائي.
فاربيناري يشبه VARCHAR؛ الفرق هو أن النصوص يتم تخزينها بتنسيق ثنائي.

والآن، دعونا نرى استعلامًا لإنشاء جدول يستخدم جميع أنواع البيانات. ادرسه وحدد كيفية تعريف كل نوع بيانات في استعلام إنشاء الجدول أدناه. MySQL مثال.

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

أفضل الممارسات لإنشاء ملف MySQL قاعدة البيانات

بعض القواعد تجعل نصوصك قابلة للقراءة:

  • استخدم الأحرف الكبيرة للكلمات الرئيسية في لغة SQL، على سبيل المثال "DROP SCHEMA IF EXISTS `MyFlixDB`;"
  • أنهِ جميع أوامر SQL الخاصة بك باستخدام الفاصلة المنقوطة.
  • تجنب استخدام المسافات في أسماء المخططات والجداول والحقول. استخدم الشرطات السفلية بدلاً من ذلك لفصل أسماء المخططات والجداول والحقول.
  • يفضل استخدام InnoDB بدلاً من MyISAM للجداول الجديدة، لأن InnoDB يدعم المعاملات، وقفل مستوى الصف، والمفاتيح الخارجية.

اكتملت طريقة الاستعلام. يصل المسار الثاني إلى قاعدة البيانات نفسها من خلال نموذج مرئي بدلاً من استخدام لغة SQL المكتوبة يدويًا.

كيف تنشأ MySQL مخطط ER لمنصة العمل - الهندسة الأمامية

MySQL طاولة العمل لديه المرافق التي تدعم الهندسة المتقدمة. الهندسة إلى الأمام هو المصطلح التقني الذي يصف عملية ترجمة النموذج المنطقي إلى تطبيق مادي تلقائياً.

أنشأنا مخطط ER في منطقتنا نمذجة ER الدرس. سنستخدم الآن نموذج الكيانات والعلاقات هذا لإنشاء نصوص SQL التي ستنشئ قاعدة البيانات الخاصة بنا.

إنشاء قاعدة بيانات MyFlix من نموذج MyFlix ER

الخطوة 1) افتح نموذج الكيانات والعلاقات لقاعدة بيانات MyFlix التي قمت بإنشائها في وقت سابق.

الخطوة 2) حدد المهندس الأمامي

انقر على قائمة قاعدة البيانات وحدد مهندس التوجيه.

اختر مهندسًا متقدمًا في MySQL طاولة العمل

الخطوة 3) خيارات الاتصال

تتيح لك النافذة التالية الاتصال بمثيل من MySQL الخادم. انقر على القائمة المنسدلة للاتصال المحفوظ وحدد المضيف المحلي. انقر فوق تنفيذ.

خيارات الاتصال في معالج مهندس التوجيه

الخطوة 4) حدد الخيارات الموضحة أدناه

حدد الخيارات الموضحة أدناه في المعالج الذي يظهر. انقر فوق التالي.

خيارات هندسة التوجيه لقاعدة بيانات MyFlix

الخطوة 5) احتفظ بالاختيارات الافتراضية وانقر على التالي

تعرض الشاشة التالية ملخصًا للكائنات في مخطط EER الخاص بنا. تحتوي قاعدة بيانات MyFlix على 5 جداول. اترك التحديدات على الوضع الافتراضي وانقر على "التالي".

ملخص العناصر في مخطط MyFlix EER

الخطوة 6) Revعرض البرنامج النصي SQL

تعرض النافذة أدناه معاينة لنص SQL البرمجي الذي يُنشئ قاعدة البيانات. احفظ النص البرمجي في ملف *.sql أو انسخه إلى الحافظة، ثم انقر فوق "التالي".

معاينة نص SQL المُنشأ

الخطوة 7) حفظ التقدم

تظهر النافذة أدناه بمجرد إنشاء قاعدة البيانات على الموقع المحدد MySQL مثيل الخادم. الجداول من نموذج الكيانات والعلاقات موجودة الآن فعليًا على الخادم.

نافذة تقدم عملية الالتزام بالهندسة الأمامية

قاعدة البيانات مرفقة مع بيانات تجريبية. سنستخدم قاعدة البيانات هذه في الدروس اللاحقة. ما عليك سوى استيرادها إلى MySQL ورشة عمل للبدء.

انقر هنا لتحميل MyFlixDB

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

لا يوجد فرق في MySQLيُعدّ الأمر CREATE SCHEMA اسمًا بديلًا للأمر CREATE DATABASE، وكلاهما يُنشئ نفس الكائن. في أنظمة أخرى، مثل Oracle، يبقى المخطط وقاعدة البيانات مفهومين منفصلين.

قم بتشغيل الأمر DROP DATABASE IF EXISTS movies؛ من العميل أو من MySQL طاولة العمل. يقوم هذا الأمر بحذف قاعدة البيانات وكل جدول بداخلها بشكل دائم، لذا خذ نسخة احتياطية أولاً.

يحتاج الحساب إلى صلاحية الإنشاء على مستوى النظام. يمنحها المسؤولون باستخدام الأمر GRANT CREATE ON *.* TO 'user'@'localhost';. بدون هذه الصلاحية، يُعيد الخادم خطأ رفض الوصول.

نعم. تُحوّل مساعدات الذكاء الاصطناعي وصفًا بسيطًا لكياناتك إلى نصوص برمجية لإنشاء الجداول مع المفاتيح وأنواع البيانات. راجع دائمًا الأنواع والأطوال والقيود المُنشأة قبل تشغيل النص البرمجي على خادم الإنتاج.

تقرأ ميزات الذكاء الاصطناعي في عملاء قواعد البيانات الحديثة بياناتك مخطط ER أو الاستعلام عن السجل واقتراح إصلاحات للتطبيع، ومرشحين للفهرسة، وتصحيحات لأنواع البيانات. تُسرّع هذه الاقتراحات مراجعات التصميم، ولكن يبقى هناك شخصٌ يُوافق على كل تغيير.

تلخيص هذه التدوينة بـ: