الدرس 18: إنشاء قاعدة البيانات والجداول
في الدرس السابقة ألقينا نظرة على كيفية إنشاء اتصال بمزود قاعدة البيانات، الخطوة التالية ستكون إنشاء قواعد البيانات والجداول.
سنلقي نظرة على طريقتين لإنشاء قاعدة البيانات والجداول، الأولى من خلال PHP والثانية من خلال أداة سهلة الاستخدام وهي PhpMyAdmin وهي أداة متوفرة في معظم خدمات الاستضافة وفي XAMPP.
إن كنت تملك موقعاً مستضافاً يستخدم PHP وMySQL ففي الغالب هناك قاعدة بيانات جاهزة لك ويمكنك تجاوز هذا القسم من الدرس لتبدأ مباشرة في إنشاء الجداول، مرة أخرى، اسأل مستضيف موقعك لمزيد من المعلومات.
إنشاء قواعد البيانات والجداول باستخدام PHP
وظيفة mysql_query تستخدم لإرسال استعلام لمزود قواعد البيانات MySQL، الاستعلامات تكتب بلغة تسمى Structured Query Language أو SQL، هذه اللغة هي الأكثر استخداماً في استعلامات قواعد البيانات على اختلافها وليس فقط لقواعد بيانات MySQL وهي لغة منطقية وسهلة، في هذا الدرس وفي الدرس التالي ستتعلم أهم استعلامات SQL.
عند إنشاء قاعدة بيانات يستخدام استعلام CREATE DATABASE بهذا الشكل:
CREATE DATABASE database name
منطقي وسهل، أليس كذلك؟ لنجرب وضع الاستعلام في برنامج PHP:
mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_query("CREATE DATABASE mydatabase") or die(mysql_error()); mysql_close();
في البداية اتصلنا بمزود MySQL ثم أنشأنا قاعدة بيانات باسم "mydatabase" وأخيراً أغلقنا الاتصال بمزود قاعدة البيانات. connection to the MySQL server again.
كل هذا سهل حتى الآن، لكن الأمور تصبح معقدة بعض الشيء عندما نرغب في إنشاء جداول باستخدام لغة PHP، عند إنشاء جداول نستخدم الاستعلام CREATE TABLE بهذا الشكل:
CREATE TABLE table name ( column1_name DATA_TYPE, column2_name DATA_TYPE, column3_name DATA_TYPE, ... )
table_name وcolumn_name هما بالطبع اسم الجدول وأعمدته، DATA_TYPE تستخدم لتحديد نوع البيانات التي ستوضع في كل عمود من الجدول، الأنواع الأكثر استخداماً للبيانات هي:
- INT
- للأرقام بدون كسور عشرية
- DECIMAL
- للأرقام بكسور عشرية
- CHAR
- لنص قصير بعدد حروف لا يزيد عن 255 حرفاً
- TEXT
- للنص بعدد حروف يصل إلى 65535 حرفاً
- LONGTEXT
- للنصوص الطويلة بعدد حروف يصل إلى 4,294,967,295 حرفاً
- Date
- للتواريخ بتنسيق YYYY-MM-DD
- Time
- للوقت بتنسيق HH:MM:SS
- DATETIME
- للوقت والتاريخ بتنسيق YYYY-MM-DD HH:MM:SS
بشكل عام تبدو أنواع البيانات منطقية وسهلة، لنجربها في مثال:
mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_select_db("people") or die(mysql_error()); mysql_query("CREATE TABLE MyTable ( id INT AUTO_INCREMENT, FirstName CHAR, LastName CHAR, Phone INT, BirthDate DATE PRIMARY KEY(id) )") Or die(mysql_error()); mysql_close ();
في المثال بدأنا بالاتصال بمزود قاعدة البيانات، ثم استخدمنا وظيفة mysql_select_db لنختار قاعدة البيانات "people" ثم أنشأنا جدولاً سميناه "persons" يحوي خمس أعمدة.
لاحظ في عمود "id" استخدمنا INT لنحدد أن هذا العمود سيحوي أرقاماً ثم أضفنا AUTO_INCREMENT لنزيد الأرقام بشكل تلقائي لنتأكد من أن كل سطر في الجدول يحوي رقم تعريف مميز.
في نهاية الاستعلام استخدمنا PRIMARY KEY لتحديد عمود "id" ليكون المفتاح الأساسي، المفتاح الأساسي يحدد كل سجل أو سطر في الجدول برقم خاص وهذا سيكون مفيداً لاحقاً عند تحديث قاعدة البيانات.
إنشاء قاعدة البيانات والجداول في phpMyAdmin
من المفيد أن تتمكن من إنشاء قواعد البيانات والجداول مباشرة في PHP، لكن غالباً من الأسهل استخدام phpMyAdmin - أو أي أداة مماثلة - وهي الأداة المتوفرة في معظم خدمات الايتضافة وفي XAMPP، لقطات الشاشة أدناه توضح كيفية إنشاء قواعد البيانات والجداول في phpMyAdmin.
ابدأ بتسجيل دخولك إلى phpMyAdmin، في الغالب العنوان سيكون نفس عنوان مزود قواعد البيانات MySQL (مثال "http://mysql.myhost.com") وبنفس الاسم وكلمة السر، في XAMPP العنوان هو http://localhost/phpmyadmin/.
بعد تسجيل دخولك اكتب اسماً لقاعدة البيانات ثم اضغط على الزر "Create":
في بعض شركات الاستضافة قد تجد قاعدة بيانات جاهزة ولا تستطيع أن تنشأ واحدة بنفسك، في هذه الحالة استخدم قاعدة البيانات المتوفرة.
لإنشاء جداول اضغط على "Databases" واختر قاعدة البيانات:
سيكون هناك صندوق بعنوان "Create new table in database" يمكنك أن تكتب فيه اسم الجدول وعدد الأعمدة التي سيحويها ثم اضغط على زر "Go":
بعد ذلك يمكنك تسمية الأعمدة وتحديد نوع البيانات كما في مثال SQL أعلاه.
لاحظ أننا حددنا "id" كمفتاح رئيسي أي PRIMARY KEY وهو يستخدم AUTO_INCREMENT أو (A_I).
الآن أنشأت قاعدة البيانات الخاصة بك وجدولاً، في الدرس التالي سنلقي نظرة على إدخال واسترجاع وحذف البيانات في قاعدة البيانات.