MySQL
خزّن بياناتك واستعلم عنها بلغة SQL
إنشاء الجداول، الاستعلامات والتصفية والترتيب، الدوال التجميعية، العلاقات والربط (JOIN)، الاستعلامات الفرعية والمعاملات — في قاعدة بيانات تجريبية داخل المتصفح.
- عدد الدروس: 38
- عدد الفصول: 5
- بالعربية والإنجليزية
تقدّمك
محتوى التوثيق
الدروس مرتّبة من الأساس إلى المتقدّم. اقرأها بالترتيب أو اقفز إلى ما تحتاجه.
الفصل 1
البداية
- 1مقدمة في MySQLتعرّف على قواعد البيانات والجداول ولغة SQL، وعلى MySQL: أحد أشهر أنظمة إدارة قواعد البيانات في العالم، ولماذا يستحق أن تتعلّمه.
- 2تثبيت MySQL وإعدادهثبّت خادم MySQL وأداة رسومية مثل MySQL Workbench أو حزمة XAMPP، ثم اتصل بالخادم من سطر الأوامر باستخدام mysql -u root -p.
- 3إنشاء قاعدة بياناتأنشئ قواعد البيانات واعرضها واخترها واحذفها باستخدام CREATE DATABASE وSHOW DATABASES وUSE وDROP DATABASE.
- 4إنشاء الجداولأنشئ الجداول باستخدام CREATE TABLE، واختر نوعًا مناسبًا لكل عمود، ثم افحص عملك باستخدام SHOW TABLES وDESCRIBE.
- 5أنواع البياناتاختر النوع المناسب لكل عمود: الأرقام والنصوص والتواريخ والقيم المنطقية، واعرف لماذا يهم هذا الاختيار.
الفصل 2
التعامل مع البيانات
- 6إضافة البيانات INSERT INTOأضف صفوفًا جديدة إلى الجدول باستخدام INSERT INTO: صفًا واحدًا أو عدة صفوف دفعة واحدة، مع ذكر الأعمدة أو بدونه، بل وانسخ صفوفًا من جدول آخر.
- 7قراءة البيانات SELECTاقرأ البيانات من الجداول باستخدام SELECT: كل الأعمدة أو الأعمدة التي تحتاجها فقط، مع قيم محسوبة وتعليقات توضّح استعلاماتك.
- 8تصفية النتائج WHEREاستخدم WHERE لتصفية الصفوف، فلا تحصل إلا على السجلات التي تحقق شرطًا معيّنًا.
- 9العوامل المنطقية وعوامل البحثاجمع الشروط باستخدام AND وOR وNOT، واكتب تصفيات قوية باستخدام IN وBETWEEN وLIKE وIS NULL.
- 10ترتيب النتائج ORDER BYرتّب نتائج الاستعلام تصاعديًا أو تنازليًا باستخدام ORDER BY، بعمود واحد أو بعدة أعمدة.
- 11تحديد عدد النتائج LIMITأعِد عددًا محددًا من الصفوف فقط باستخدام LIMIT، وتخطَّ صفوفًا باستخدام OFFSET لتقسيم النتائج إلى صفحات.
- 12القيم الفريدة DISTINCTاحذف القيم المكررة من النتائج باستخدام SELECT DISTINCT، واحسب عدد القيم المختلفة باستخدام COUNT(DISTINCT ...).
- 13الأسماء المستعارة ASأعطِ الأعمدة والجداول أسماء مؤقتة واضحة باستخدام AS، لتصبح النتائج والاستعلامات أسهل قراءة.
- 14تعديل البيانات UPDATEعدّل الصفوف الموجودة باستخدام UPDATE ... SET، واستخدم WHERE دائمًا لتتحكم في الصفوف التي تتغير.
- 15حذف البيانات DELETEاحذف الصفوف باستخدام DELETE FROM ... WHERE، وتعرّف على الفرق بين DELETE وTRUNCATE وDROP.
الفصل 3
الدوال
- 16الدوال التجميعيةلخّص صفوفًا كثيرة في قيمة واحدة باستخدام COUNT وSUM وAVG وMIN وMAX.
- 17تجميع الصفوف GROUP BYجمّع الصفوف التي تشترك في قيمة واحدة، وطبّق الدوال التجميعية على كل مجموعة، مثل عدد الطلاب في كل مدينة.
- 18تصفية المجموعات HAVINGصفِّ المجموعات بعد تجميعها باستخدام HAVING، وافهم الفرق بينه وبين WHERE.
- 19دوال النصوصحوّل النصوص وعالجها باستخدام CONCAT وUPPER وLOWER وLENGTH وSUBSTRING وTRIM وREPLACE.
- 20الدوال الرياضيةقرّب الأرقام واحسب بها باستخدام ROUND وCEIL وFLOOR وABS وMOD، إلى جانب العمليات الحسابية الأساسية.
- 21دوال التاريختعامل مع التواريخ: استخرج السنة والشهر واليوم، واحسب عدد الأيام بين تاريخين باستخدام DATEDIFF.
- 22التعبير CASEأضف منطق "إذا… وإلا" إلى استعلاماتك باستخدام CASE، والدالة المختصرة IF.
- 23التعامل مع NULLافهم القيمة NULL (قيمة مفقودة)، وتعامل معها في الحسابات، واستبدلها بقيم مناسبة باستخدام IFNULL وCOALESCE.
الفصل 4
العلاقات بين الجداول
- 24القيوداحمِ جودة بياناتك بالقيود: NOT NULL وUNIQUE وDEFAULT وCHECK وPRIMARY KEY.
- 25المفتاح الأجنبي FOREIGN KEYاربط الجداول بالمفتاح الأجنبي FOREIGN KEY لتبقى العلاقات بينها صحيحة، وتحكّم فيما يحدث عند الحذف باستخدام ON DELETE.
- 26الربط الداخلي INNER JOINاجمع صفوف جدولين أو أكثر باستخدام INNER JOIN، فلا تحصل إلا على الصفوف التي لها تطابق في الجدولين.
- 27الربط LEFT JOIN وRIGHT JOINاحتفظ بكل صفوف أحد الجدولين حتى لو لم يكن لها تطابق، باستخدام LEFT JOIN وRIGHT JOIN.
- 28الربط الذاتي SELF JOINاربط الجدول بنفسه باستخدام الأسماء المستعارة لتقارن صفوف الجدول الواحد، مثل الطلاب ومرشديهم.
- 29دمج النتائج UNIONادمج نتائج عدة استعلامات SELECT في نتيجة واحدة باستخدام UNION وUNION ALL.
- 30الاستعلامات الفرعيةاكتب استعلامًا داخل استعلام آخر: لتقارن بقيمة محسوبة، ولتبحث في قائمة بـ IN وEXISTS، ولتبني جداول مشتقة.
الفصل 5
مواضيع متقدمة
- 31العروض VIEWاحفظ استعلامًا كجدول افتراضي باستخدام CREATE VIEW، ثم استعلم عنه كأي جدول عادي.
- 32الفهارس INDEXسرّع البحث في الجداول الكبيرة باستخدام الفهارس: كيف تعمل، وكيف تنشئها، ومتى لا تحتاج إليها.
- 33تعديل الجداول وحذفها ALTER وDROPغيّر بنية الجدول بعد إنشائه باستخدام ALTER TABLE: أضف الأعمدة وعدّلها وأعد تسميتها واحذفها، واحذف الجداول باستخدام DROP TABLE.
- 34المعاملات Transactionsاجمع عدة أوامر في وحدة واحدة تنجح كلها أو تُلغى كلها، باستخدام START TRANSACTION وCOMMIT وROLLBACK.
- 35تطبيع قواعد البياناتصمّم جداول نظيفة بلا تكرار باتباع الصيغ الطبيعية الأولى والثانية والثالثة (1NF و2NF و3NF).
- 36المستخدمون والصلاحياتأنشئ مستخدمين في MySQL، وامنحهم الصلاحيات التي يحتاجونها فقط باستخدام GRANT، واسحبها باستخدام REVOKE.
- 37النسخ الاحتياطي والاستعادةانسخ قواعد بياناتك احتياطيًا باستخدام mysqldump، واستعدها باستخدام عميل mysql؛ فهذه العادة تنقذ المشاريع.
- 38استخدام MySQL في التطبيقاتاتصل بـ MySQL من PHP عبر PDO ومن Node.js عبر الحزمة mysql2، ونفّذ استعلامات مُعدّة مسبقًا تحمي تطبيقك من حقن SQL.