البرنامج التعليمي لـ MariaDB: تعلم بناء الجملة والأوامر مع الأمثلة

ما هو MariaDB؟

MariaDB هو شوكة لنظام إدارة قاعدة بيانات MySQL. تم إنشاؤه من قبل مطوريه الأصليين. توفر أداة DBMS هذه إمكانات معالجة البيانات لكل من المهام الصغيرة ومهام المؤسسات.

MariaDB هو نسخة محسنة من MySQL. يأتي مزودًا بالعديد من الميزات القوية المضمنة والعديد من وسائل الاستخدام وتحسينات الأمان والأداء التي لا يمكنك العثور عليها في MySQL.

فيما يلي ميزات MariaDB:

  • وهي تعمل بموجب تراخيص GPL أو BSD أو LGPL.
  • يدعم MariaDB لغة استعلام شائعة وقياسية.
  • يأتي مزودًا بالعديد من محركات التخزين، بما في ذلك المحركات عالية الأداء التي يمكن دمجها مع أنظمة إدارة قواعد البيانات العلائقية الأخرى.
  • يوفر تقنية مجموعة Galera.
  • يدعم MariaDB لغة PHP، وهي لغة شائعة لتطوير الويب.
  • يمكن تشغيل MariaDB على أنظمة تشغيل مختلفة، كما أنه يدعم العديد من لغات البرمجة.
  • يأتي MariaDB مزودًا بأوامر إضافية غير متوفرة في MySQL. يحتوي MySQL على ميزات لها تأثير سلبي على أداء نظام إدارة قواعد البيانات (DBMS). تم استبدال هذه الميزات في MariaDB.

MariaDB مقابل MySQL

وفيما يلي بعض الاختلافات الرئيسية بين MariaDB مقابل MySQL

معامل MariaDB ل MySQL
المزيد من الخيارات لمحركات التخزين لدى MariaDB 12 محرك تخزين جديد لن تجده في MySQL. لديها خيارات تخزين أقل مقارنة بـ MariaDB.
تحسينات السرعة يُظهر MariaDB سرعة محسنة مقارنةً بـ MySQL. لأنه يأتي مع العديد من الميزات لتحسين السرعة. تتضمن هذه الميزات طرق العرض/الجداول المشتقة والاستعلام الفرعي والتحكم في التنفيذ والوصول إلى القرص والتحكم في المحسن. تعرض MySQL سرعة أبطأ مقارنةً بـ MariaDB. وهو يعتمد على عدد قليل فقط من الميزات لتحسين السرعة، على سبيل المثال، فهارس التجزئة.
ذاكرة تخزين مؤقت/فهرسة أسرع باستخدام محرك تخزين الذاكرة الخاص بـ MariaDB، يمكن إكمال عبارة INSERT بنسبة 24% مقارنةً بـ MySQL القياسي. محرك تخزين الذاكرة في MySQL أبطأ مقارنة بمحرك MariaDB.
تجمع اتصال أكبر وأسرع يأتي MariaDB مزودًا بمجموعة مؤشرات ترابط متقدمة قادرة على العمل بشكل أسرع ودعم ما يصل إلى 200,000+ اتصال. لا يمكن لتجمع مؤشرات الترابط الذي توفره MySQL دعم ما يصل إلى 200,000 اتصال في المرة الواحدة.
تحسين النسخ المتماثل في MariaDB، يمكن إجراء النسخ المتماثل بشكل أكثر أمانًا وأسرع. يمكن أيضًا إجراء التحديثات بشكل أسرع مرتين مقارنة بـ MySQL التقليدي. يسمح إصدار مجتمع MySQL بربط عدد ثابت من سلاسل العمليات. تأتي خطة المؤسسة الخاصة بـ MySQL مزودة بإمكانيات سلسلة الرسائل.
الميزات/الإضافات الجديدة يأتي MariaDB مزودًا بميزات وإضافات جديدة بما في ذلك عبارات JSON وWITH وKILL. ميزات MariaDB الجديدة غير متوفرة في MySQL.
الميزات المفقودة يفتقر MariaDB إلى بعض الميزات التي يوفرها إصدار MySQL Enterprise. ولمعالجة هذه المشكلة، فهو يقدم مكونات إضافية بديلة مفتوحة المصدر. ومن ثم، يستطيع مستخدمو MariaDB الاستمتاع بنفس الوظائف التي يتمتع بها مستخدمو MySQL Enterprise Edition. يستخدم الإصدار Enterprise Edition من MySQL رمزًا خاصًا. يمكن فقط لمستخدمي MySQL Enterprise Edition الوصول إلى هذا.

كيفية تثبيت ماريا دي بي

التثبيت كتطبيق مستقل

لتتمكن من استخدام MariaDB، يجب عليك تثبيته على جهاز الكمبيوتر الخاص بك.

يمكن أن يتم التثبيت عن طريق following الخطوات الواردة أدناه:

الخطوة 1) افتح أدناه URL
قم بتنزيل ملف التثبيت من الرابط https://downloads.mariadb.org/

الخطوة 2) انقر نقرًا مزدوجًا فوق الملف لبدء التثبيت
بمجرد اكتمال التنزيل، افتح الملف

الخطوة 3) انقر فوق زر التالي
في النافذة المنبثقة، انقر فوق الزر التالي:

تركيب ماريا دي بي

الخطوة 4) اقبل اتفاقية الترخيص
ثم انقر فوق الزر التالي:

تركيب ماريا دي بي

الخطوة 5) اختر خادم MariaDB
اختر الميزات التي سيتم تثبيتها وانقر فوق "التالي".

تركيب ماريا دي بي

الخطوة 6) أدخل كلمة المرور
في النافذة التالية، سيُطلب منك تغيير كلمة المرور للمستخدم الجذر.

  1. أدخل كلمة المرور وقم بتأكيدها عن طريق إعادة كتابة كلمة المرور نفسها. إذا كنت تريد السماح بالوصول من الأجهزة البعيدة، فقم بتنشيط الفحص اللازمbox.
  2. بمجرد الانتهاء، انقر فوق الزر التالي.

تركيب ماريا دي بي

الخطوة 7) أدخل الاسم واختر رقم المنفذ
في النافذة التالية، اكتب اسمًا للمثيل، واختر رقم المنفذ، وقم بتعيين الحجم اللازم. انقر فوق الزر التالي:

تركيب ماريا دي بي

الخطوة 8) انقر فوق التالي
في النافذة التالية، ما عليك سوى النقر فوق الزر التالي.

الخطوة 9) انقر فوق تثبيت
قم بتشغيل التثبيت بالنقر فوق الزر "تثبيت".

تركيب ماريا دي بي

الخطوة 10) تم عرض شريط التقدم
شريط التقدم شوwing سيتم عرض تقدم التثبيت:

تركيب ماريا دي بي

الخطوة 11) انقر على زر إنهاء
بمجرد اكتمال التثبيت، سترى زر إنهاء. انقر فوق الزر لإغلاق النافذة:

تركيب ماريا دي بي

الخطوة 12) تهانينا!
لقد قمت الآن بتثبيت MariaDB على جهاز الكمبيوتر الخاص بك.

العمل مع موجه الأوامر

الآن بعد أن قمت بتثبيت MariaDB على جهاز الكمبيوتر الخاص بك، فقد حان الوقت لتشغيله والبدء في استخدامه. يمكن القيام بذلك عبر موجه أوامر MariaDB.

اتبع الخطوات الواردة أدناه:

الخطوة 1) انقر فوق ابدأ، واختر كافة البرامج، ثم انقر فوق MariaDB...

الخطوة 2) اختر موجه أوامر MariaDB.

موجه أوامر MariaDB

الخطوة 3) سيتم بدء تشغيل موجه أوامر MariaDB. لقد حان الوقت لتسجيل الدخول. يجب عليك تسجيل الدخول كمستخدم جذري وكلمة المرور التي قمت بتعيينها أثناء تثبيت MariaDB. اكتب فولوwing الأمر في موجه الأوامر:

MySQL -u root -p

الخطوة 4) أدخل كلمة المرور واضغط على مفتاح العودة. يجب عليك تسجيل الدخول كما هو موضح أدناه:

موجه أوامر MariaDB

لقد قمت الآن بتسجيل الدخول إلى MariaDB.

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

يدعم MariaDB ما يليwing أنواع البيانات:

  • أنواع بيانات السلسلة
  • أنواع البيانات الرقمية
  • أنواع بيانات التاريخ/الوقت
  • أنواع بيانات الكائنات الكبيرة

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

وتشمل هذه فولوwing:

نوع بيانات السلسلة الوصف
شار (الحجم) يشير الحجم إلى عدد الأحرف المراد تخزينها. يقوم بتخزين 255 حرفًا كحد أقصى. سلاسل ذات طول ثابت.
فارشار (الحجم) يشير الحجم إلى عدد الأحرف المراد تخزينها. يقوم بتخزين 255 حرفًا كحد أقصى. سلاسل ذات أطوال متغيرة.
حجم الخط) يشير الحجم إلى عدد الأحرف المراد تخزينها. يقوم بتخزين 255 حرفًا كحد أقصى. سلاسل ذات طول ثابت.
ثنائي (الحجم) يشير الحجم إلى عدد الأحرف المراد تخزينها. يقوم بتخزين 255 حرفًا كحد أقصى. سلاسل ذات حجم ثابت.

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

وهي تشمل فولوwing:

أنواع البيانات الرقمية الوصف
بت قيمة عددية صغيرة جدًا تعادل tinyint(1). تتراوح القيم الموقعة بين -128 و127. وتتراوح القيم غير الموقعة بين 0 و255.
كثافة العمليات (م) قيمة عددية قياسية. تتراوح القيم الموقعة بين -2147483648 و2147483647. وتتراوح القيم غير الموقعة بين 0 و4294967295.
تعويم (م، د) رقم النقطة العائمة بدقة واحدة.
مزدوج (م، د) رقم النقطة العائمة بدقة مضاعفة.
تعويم (ع) رقم النقطة العائمة.

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

وتشمل هذه فولوwing:

نوع بيانات التاريخ/الوقت الوصف
التاريخ يتم عرضه بالصيغة "yyyy-mm-dd". تتراوح القيم بين "1000-01-01" و"9999-12-31".
التاريخ والوقت يتم عرضه بالصيغة "yyyy-mm-dd hh:mm:ss". تتراوح القيم بين "1000-01-01 00:00:00" و"9999-12-31 23:59:59".
الطابع الزمني (م) يتم عرضه بالصيغة "yyyy-mm-dd hh:mm:ss". تتراوح القيم بين "1970-01-01 00:00:01" بالتوقيت العالمي و"2038-01-19 03:14:07" بالتوقيت العالمي.
الوقت: يتم عرضه على شكل "hh:mm:ss". تتراوح القيم بين "-838:59:59" و"838:59:59".

أنواع بيانات الكائنات الكبيرة (LOB)

وهي تشمل فولوwing:

نوع بيانات كائن كبير الوصف
com.tinyblob الحد الأقصى لحجمه هو 255 بايت.
النقطة (الحجم) يأخذ 65,535 بايت كحد أقصى للحجم.
com.mediblob الحد الأقصى لحجمه هو 16,777,215 بايت.
نص طويل يستغرق 4GB كحد أقصى للحجم.

إنشاء قاعدة البيانات والجداول

لإنشاء قاعدة بيانات جديدة في MariaDB، يجب أن يكون لديك امتيازات خاصة تُمنح فقط للمستخدم الجذر والمسؤولين.

لإنشاء قاعدة بيانات جديدة، يجب عليك استخدام الأمر CREATE DATABASE الذي يأخذ ما يليwing بناء الجملة:

CREATE DATABASE DatabaseName;

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

ابدأ تشغيل موجه أوامر MariaDB وقم بتسجيل الدخول كمستخدم جذر عن طريق كتابة ما يليwing أمر:

mysql -u root -p

اكتب كلمة مرور الجذر واضغط على مفتاح العودة. سيتم تسجيل دخولك.

الآن، قم بتشغيل فولوwing أمر:

CREATE DATABASE Demo;

إنشاء قاعدة بيانات وجداول في MariaDB

لقد قمت بعد ذلك بإنشاء قاعدة بيانات باسم Demo. سيكون من الجيد لك التأكد مما إذا تم إنشاء قاعدة البيانات بنجاح أم لا. ما عليك سوى إظهار قائمة قواعد البيانات المتاحة عن طريق تشغيل الملفwing أمر:

SHOW DATABASES;

إنشاء قاعدة بيانات وجداول في MariaDB

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

MariaDB حدد قاعدة البيانات

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

لتحديد قاعدة بيانات، يجب عليك استخدام الأمر USE. يأخذ بناء الجملة الوارد أدناه:

USE database_name;

تحتاج إلى استخدام قاعدة البيانات التجريبية. يمكنك تحديده عن طريق تشغيل following أمر:

USE Demo;

إنشاء قاعدة بيانات وجداول في MariaDB

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

يمكنك الآن المضي قدمًا وإنشاء الجداول داخل قاعدة البيانات التجريبية.

MariaDB - إنشاء جدول

لتتمكن من إنشاء جدول، يجب عليك تحديد قاعدة بيانات. يمكن إنشاء الجدول باستخدام عبارة CREATE TABLE. هنا هو بناء جملة الأمر:

CREATE TABLE tableName (columnName columnType);

يمكنك تعيين أحد الأعمدة ليكون المفتاح الأساسي. يجب ألا يسمح هذا العمود بالقيم الخالية.

سنقوم بإنشاء جدولين ضمن قاعدة البيانات التجريبية، جدولي الكتب وجداول الأسعار. سيكون لكل جدول عمودين.

لنبدأ بإنشاء جدول الكتب بعمودين، المعرف والاسم. تشغيل فولوwing أمر:

CREATE TABLE Book(  
id INT NOT NULL AUTO_INCREMENT,  
name VARCHAR(100) NOT NULL,  
PRIMARY KEY (id));  

إنشاء قاعدة بيانات وجداول في MariaDB

تم استخدام قيد PRIMARY KEY لتعيين عمود المعرف كمفتاح أساسي للجدول. ستعمل الخاصية AUTO_INCREMENT على زيادة قيم عمود المعرف بمقدار 1 تلقائيًا لكل سجل جديد يتم إدراجه في الجدول. لن تسمح جميع الأعمدة بالقيم الخالية.

الآن، قم بإنشاء الجدول الثاني، جدول الأسعار:

CREATE TABLE Price(  
id INT NOT NULL AUTO_INCREMENT,  
price float NOT NULL,  
PRIMARY KEY (id));  

إنشاء قاعدة بيانات وجداول في MariaDB

تم تعيين عمود المعرف كمفتاح أساسي للجدول.

شوwing طاولات الطعام

الآن بعد أن قمت بإنشاء الجدولين، سيكون من الجيد لك المطابقة سواء تم إنشاء الجدولين بنجاح أم لا. يمكنك إظهار قائمة الجداول الموجودة في قاعدة البيانات عن طريق تشغيل following أمر:

SHOW TABLES;

إنشاء قاعدة بيانات وجداول في MariaDB

توضح لقطة الشاشة أعلاه أنه تم إنشاء الجدولين بنجاح داخل قاعدة البيانات التجريبية.

شوwing هيكل الجدول

لرؤية بنية أي جدول معين، يمكنك استخدام الأمر DESCRIBE، والذي يتم اختصاره عادةً باسم DESC. يستغرق الأمرwing بناء الجملة:

DESC TableName;

على سبيل المثال، لرؤية بنية الجدول المسمى Book، يمكنك تشغيل المتابعةwing أمر؛

DESC Book;

إنشاء قاعدة بيانات وجداول في MariaDB

يحتوي الجدول على عمودين. لرؤية بنية جدول الأسعار، يمكنك تشغيل المتابعةwing أمر:

DESC Price;

إنشاء قاعدة بيانات وجداول في MariaDB

CRUD والبنود

INSERT

لإدراج البيانات في جدول MariaDB، يجب عليك استخدام عبارة INSERT INTO. يأخذ هذا الأمر بناء الجملة الوارد أدناه:

INSERT INTO tableName
(column_1, column_2, ... )  
VALUES  
(value1, value2, ... ),  
(value1, value2, ... ),  
...;   

يوضح بناء الجملة أعلاه أنه يتعين عليك تحديد أعمدة الجدول التي تريد إدراج البيانات فيها بالإضافة إلى البيانات التي تحتاج إلى إدراجها.

دعونا نقوم بإدراج سجل في جدول الكتاب:

INSERT INTO book  
(id, name)  
VALUES(1, 'MariaDB Book');  

الخام والبنود-إدراج

لقد قمت بإدراج سجل واحد في الجدول. أدخل سجلاً في جدول الأسعار:

INSERT INTO price
(id, price)  
VALUES(1, 200);  

الخام والبنود-إدراج

تم إنشاء السجل.

اختر

تساعدنا عبارة SELECT في عرض أو رؤية محتويات جدول قاعدة البيانات. لرؤية محتويات جدول الكتاب، على سبيل المثال، تحتاج إلى تشغيل المتابعةwing أمر:

SELECT * from book;

الخام والبنود-إدراج

الآن، قم بعرض محتويات جدول الأسعار:

SELECT * from price;

الخام والبنود-إدراج

إدراج سجلات متعددة

من الممكن لنا إدراج سجلات متعددة في جدول MariaDB أثناء التنقل. لتوضيح ذلك، قم بتشغيل following مثال:

INSERT INTO book
(id, name)  
VALUES  
(2,'MariaDB Book2'),  
(3,'MariaDB Book3'),  
(4,'MariaDB Book4'),  
(5,'MariaDB Book5');

إدراج سجلات متعددة

يمكنك الاستعلام عن الجدول للتحقق من إدراج السجلات بنجاح:

SELECT * FROM book;

إدراج سجلات متعددة

تم إدراج السجلات بنجاح. قم بإدراج سجلات متعددة في جدول الأسعار عن طريق تشغيل هذا المثال:

INSERT INTO price 
(id, price)  
VALUES  
(2, 250),  
(3, 220),  
(4, 190),  
(5, 300); 

إدراج سجلات متعددة

دعونا نؤكد ما إذا كان قد تم إنشاء السجلات بنجاح:

SELECT * FROM price;

إدراج سجلات متعددة

قم

يساعدنا أمر UPDATE في تغيير أو تعديل السجلات التي تم إدراجها بالفعل في الجدول. يمكنك دمجها مع جملة WHERE لتحديد السجل الذي سيتم تحديثه. هنا هو بناء الجملة:

UPDATE tableName SET field=newValue, field2=newValue2,...  
[WHERE ...]  

يمكن أيضًا دمج أمر UPDATE مع عبارات مثل SET وWHERE وLIMIT وORDER BY. سترى هذا قريبًا:

خذ بعين الاعتبار الجدول المسمى "السعر" مع ما يليwing السجلات:

CRUD والبنود-تحديث

فلنغير سعر الكتاب الذي يحمل المعرف 1 من 200 إلى 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD والبنود-تحديث

تم تشغيل الأمر بنجاح. يمكنك الآن الاستعلام عن الجدول لمعرفة ما إذا كان التغيير قد حدث أم لا:

CRUD والبنود-تحديث

توضح لقطة الشاشة أعلاه أنه تم تنفيذ التغيير. النظر في كتاب الجدول مع المتابعةwing السجلات:

CRUD والبنود-تحديث

دعونا نغير اسم الكتاب المسمى Book إلى MariaDB Book1. لاحظ أن معرف الكتاب هو 1. وإليك الأمر الخاص بذلك:

UPDATE book
SET name = “MariaDB Book1”
WHERE id = 1;

CRUD والبنود-تحديث

تحقق مما إذا كان التغيير قد تم تنفيذه:

CRUD والبنود-تحديث

توضح لقطة الشاشة أعلاه أنه تم تنفيذ التغيير بنجاح.

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

دعونا نستخدم جدول الأسعار مع ما يليwing بيانات:

CRUD والبنود-تحديث

دعونا نغير معرف الكتاب وسعره بمعرف 5. سنغير معرفه إلى 6 والسعر إلى 6. قم بتشغيل المتابعةwing أمر:

UPDATE price
SET id = 6,
price = 280
WHERE id = 5;

CRUD والبنود-تحديث

الآن، قم بالاستعلام عن الجدول للتحقق مما إذا كان التغيير قد تم بنجاح:

CRUD والبنود-تحديث

تم التغيير بنجاح.

حذف

نستخدم أمر DELETE عندما نحتاج إلى حذف سجل واحد أو عدة سجلات من الجدول. هنا هو بناء جملة الأمر:

DELETE FROM tableName  
[WHERE condition(s)]  
[ORDER BY exp [ ASC | DESC ]]  
[LIMIT numberRows];   

خذ بعين الاعتبار جدول الأسعار مع المتابعةwing السجلات:

الخام والبنود-حذف

نحن بحاجة إلى حذف السجل الأخير من الجدول. رقم تعريفه 6 وسعره 280. فلنحذف السجل:

DELETE FROM price
WHERE id = 6;   

الخام والبنود-حذف

تم تشغيل الأمر بنجاح. دعونا نقوم بالاستعلام عن الجدول لتأكيد ما إذا كان الحذف ناجحًا:

الخام والبنود-حذف

يُظهر الإخراج أنه تم حذف السجل بنجاح.

أين

تساعدنا جملة WHERE على تحديد الموقع الدقيق الذي نحتاج إلى إجراء التغيير فيه. يتم استخدامه مع عبارات مثل INSERT وSELECT وUPDATE وDELETE. خذ بعين الاعتبار جدول الأسعار مع المتابعةwing بيانات:

CRUD والبنود - أين

لنفترض أننا بحاجة إلى رؤية السجلات التي يكون السعر فيها أقل من 250. يمكننا تشغيل المتابعةwing أمر:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD والبنود - أين

تم إرجاع جميع السجلات التي يقل فيها السعر عن 250.

يمكن دمج جملة WHERE مع عبارة AND. لنفترض أننا بحاجة إلى رؤية جميع السجلات في جدول الأسعار حيث يكون السعر أقل من 250 والمعرف أعلى من 3. يمكننا تشغيل المتابعةwing أمر:

SELECT *  
FROM price  
WHERE id > 3  
AND price < 250;   

CRUD والبنود - أين

تم إرجاع سجل واحد فقط. والسبب هو أنه يجب أن يستوفي جميع الشروط التي تم تحديدها، أي معرف أعلى من 3 وسعر أقل من 250. إذا تم انتهاك أي من هذه الشروط، فلن يتم إرجاع السجل.

يمكن أيضًا دمج الجملة مع الأمر OR. دعونا نستبدل AND في الأمر السابق بـ OR ونرى نوع المخرجات التي نتلقاها:

SELECT *  
FROM price 
WHERE id > 3  
OR price < 250;   

CRUD والبنود - أين

نحصل الآن على سجلين بدلاً من سجل واحد. وذلك لأنه بالنسبة لسجل التأهل، يجب أن يستوفي فقط أحد الشروط المحددة.

اعجاب

يتم استخدام هذه الجملة لتحديد نمط البيانات عند الوصول إلى بيانات الجدول التي تكون المطابقة التامة فيها ضرورية. ويمكن دمجها مع عبارات INSERT وUPDATE وSELECT وDELETE.

يجب عليك تمرير نمط البيانات الذي تبحث عنه إلى الجملة، وسيُرجع إما صحيحًا أو خطأ. فيما يلي أحرف البدل التي يمكن استخدامها مع الجملة:

  • %: لمطابقة 0 أو أكثر من الأحرف.
  • _: لمطابقة حرف واحد.

فيما يلي بناء جملة جملة LIKE:

SELECT field_1, field_2,... FROM tableName1, tableName2,...  
WHERE fieldName LIKE condition;

دعونا نوضح كيفية استخدام الجملة مع حرف البدل %. دعونا نستخدم جدول الكتاب مع المتابعةwing السجلات:

CRUD والبنود - أين

نحتاج إلى رؤية جميع السجلات التي يبدأ فيها الاسم بالحرف M. يمكننا تشغيل المتابعةwing أمر:

SELECT name  
FROM book  
WHERE name LIKE 'M%';  

CRUD والبنود - أين

تم إرجاع كافة السجلات لأن أسمائها تبدأ بالحرف M. لرؤية جميع الأسماء التي تنتهي بالرقم 4، يمكنك تشغيل المتابعةwing أمر:

SELECT name  
FROM book  
WHERE name LIKE '%4';  

CRUD والبنود - أين

تم إرجاع اسم واحد فقط لأنه الوحيد الذي يستوفي الشرط.

يمكننا أيضًا إحاطة نمط البحث بحرف البدل:

SELECT name  
FROM book  
WHERE name LIKE '%DB%';  

CRUD والبنود - أين

بخلاف حرف البدل %، يمكن استخدام عبارة LIKE مع حرف البدل _. هذا هو حرف البدل الخاص بالشرطة السفلية، وسيبحث فقط عن حرف واحد.

دعونا نعمل مع جدول الأسعار مع المتابعةwing السجلات:

CRUD والبنود - أين

دعونا نتحقق من السجل الذي يكون السعر فيه مثل 1_0. نحن ندير المتابعةwing أمر:

SELECT *  
FROM price
WHERE price LIKE '1_0';  

CRUD والبنود - أين

لقد أعاد الرقم القياسي الذي يبلغ فيه السعر 190. يمكننا أيضًا تجربة نمط آخر:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD والبنود - أين

من الممكن أن نستخدم عبارة LIKE مع عامل التشغيل NOT. سيؤدي هذا إلى إرجاع كافة السجلات التي لا تتوافق مع النمط المحدد. على سبيل المثال:

دعونا نستخدم جدول الأسعار مع ما يليwing السجلات:

CRUD والبنود - أين

دعونا نجد جميع السجلات التي لا يبدأ فيها السعر بالرقم 2:

SELECT *  
FROM price  
WHERE price NOT LIKE '2%';  

CRUD والبنود - أين

سجل واحد فقط لا يلبي النمط المحدد.

ترتيب حسب

تساعدنا هذه الجملة على ترتيب سجلاتنا بترتيب تصاعدي أو تنازلي. نستخدمها مع عبارة SELECT، كما هو موضح أدناه:

SELECT expression(s)  
FROM tables  
[WHERE condition(s)]  
ORDER BY exp [ ASC | DESC ];   

من الممكن أن نستخدم هذه الجملة دون إضافة جزء ASC أو DESC. على سبيل المثال:

سوف نستخدم جدول الأسعار مع المتابعةwing السجلات:

CRUD والبنود - أين

تشغيل فولوwing أمر ضد الطاولة:

SELECT * FROM price 
WHERE price LIKE '2%.'
ORDER BY price;   

CRUD والبنود - أين

في الأمر أعلاه، طلبنا حسب السعر. تم ترتيب السجلات مع الأسعار بترتيب تصاعدي. وهذا يعني أنه عندما لا نحدد الترتيب، يتم الفرز بترتيب تصاعدي افتراضيًا.

دعونا ننفذ الجملة باستخدام خيار DESC:

SELECT * FROM price
WHERE price LIKE '2%'  
ORDER BY price DESC;   

CRUD والبنود - أين

تم فرز السجلات بالسعر تنازليا كما حددنا.

دعونا نستخدم جملة ORDER BY مع سمة ASC:

SELECT * FROM price 
WHERE price LIKE '2%.'  
ORDER BY price ASC;   

CRUD والبنود - أين

تم طلب السجلات ولكن مع الأسعار بترتيب تصاعدي. يشبه هذا عندما نستخدم جملة ORDER BY بدون سمات ASC أو DESC.

DISTINCT

تساعدنا هذه الجملة على التخلص من التكرارات عند اختيار السجلات من الجدول. وهذا يعني أنه يساعدنا في الحصول على سجلات فريدة من نوعها. ويرد بناء الجملة أدناه:

SELECT DISTINCT expression(s)  
FROM tableName  
[WHERE condition(s)];   

لتوضيح ذلك، سوف نستخدم جدول الأسعار مع ما يليwing بيانات:

فظ والبنود-متميزة

عندما نختار عمود السعر من الجدول، نحصل على المتابعةwing نتيجة:

SELECT price FROM Price;

فظ والبنود-متميزة

لدينا سجلين بسعر 250، مما يؤدي إلى إنشاء نسخة مكررة. نحن بحاجة إلى أن يكون لدينا سجلات فريدة فقط. يمكننا تصفية هذه باستخدام جملة DISTINCT كما هو موضح أدناه:

SELECT DISTINCT price FROM Price;

فظ والبنود-متميزة

ليس لدينا الآن أي تكرارات في الإخراج أعلاه.

من

عبارة FROM المستخدمة لجلب البيانات من جدول قاعدة البيانات. يمكن أن يساعد أيضًا عند الانضمام إلى الجداول. هنا هو بناء جملة الأمر:

SELECT columnNames FROM tableName; 

لرؤية محتويات جدول الكتاب، قم بتشغيل المتابعةwing أمر:

SELECT * FROM price;

CRUD والبنود من

يمكن أن تساعدك الجملة في جلب عمود واحد فقط من جدول قاعدة البيانات. على سبيل المثال:

SELECT price FROM Price;

CRUD والبنود من

المهام المتقدمة

إجراء مخزن

الإجراء هو برنامج MariaDB يمكنك تمرير المعلمات إليه. لا يقوم الإجراء بإرجاع القيم. لإنشاء إجراء، نستخدم الأمر CREATE PROCEDURE.

لتوضيح كيفية إنشاء إجراء واستدعاءه، سنقوم بإنشاء إجراء يسمى myProcedure() الذي يساعدنا في تحديد عمود الاسم من جدول الكتاب. هنا هو الإجراء:

DELIMITER $
    CREATE PROCEDURE myProcedure()
        BEGIN
            SELECT name FROM book;
        END;
;

الإجراءات المتقدمة المخزنة المهام

تم إنشاء الإجراء. لقد قمنا ببساطة بإدراج عبارة SELECT ضمن عبارات BEGIN و END الخاصة بالإجراء.

الآن يمكننا أن نسمي الإجراء باسمه كما هو موضح أدناه:

CALL myProcedure();

الإجراءات المتقدمة المخزنة المهام

يقوم الإجراء بإرجاع عمود الاسم الخاص بجدول الكتاب عند استدعائه.

يمكننا إنشاء إجراء يأخذ معلمة. على سبيل المثال، نحتاج إلى تحديد اسم الكتاب وتصفيته باستخدام معرف الكتاب. يمكننا إنشاء فولوwing الإجراء لهذا:

DELIMITER $
    CREATE PROCEDURE myProcedure2(book_id int)
        BEGIN
            SELECT name FROM book WHERE id = book_id;
        END;
;

الإجراءات المتقدمة المخزنة المهام

أعلاه، قمنا بإنشاء إجراء يسمى myProcedure2(). يأخذ هذا الإجراء معلمة عددية واحدة تسمى book_id وهي معرف الكتاب الذي نحتاج إلى رؤية اسمه. لرؤية اسم الكتاب بمعرف 3 يمكننا استدعاء الإجراء على النحو التالي:

CALL myProcedure2(3);

الإجراءات المتقدمة المخزنة المهام

المسمى الوظيفي

على عكس الإجراءات، يجب علينا تمرير المعلمات إلى الوظائف ويجب أن تقوم الدالة بإرجاع قيمة. لإنشاء دالة في MariaDB، نستخدم عبارة CREATE FUNCTION. البيان يأخذ ما يليwing بناء الجملة:

CREATE 
[ DEFINER = { CURRENT-USER | username } ] 
FUNCTION function-name [(parameter datatype [, parameter datatype]) ]
RETURNS datatype [LANGUAGE SQL
                        | DETERMINISTIC
                        | NOT DETERMINISTIC
                        | {CONTAINS SQL 
                          | NO SQL
                          | READS SQL DATA
                          | MODIFIES SQL DATA}
                        | SQL SECURITY {DEFINER | INVOKER}
                        | COMMENT 'comment'

BEGIN

   declaration-section

   executable-section

END;

يتم وصف المعلمات المذكورة أعلاه أدناه:

معامل الوصف
جملة التعريف هذه المعلمة اختيارية. إذا لم تقم بتحديده، فسيصبح المُعرف هو المستخدم الذي أنشأ الوظيفة. إذا كانت هناك حاجة لتحديد معرف مختلف، فقم بتضمين جملة DEFINER حيث سيكون اسم المستخدم هو معرف الوظيفة.
اسم وظيفة الاسم الذي سيتم تخصيصه لهذه الوظيفة في MariaDB.
المعلمة تم تمرير المعلمة (المعلمات) إلى الوظيفة. أثناء إنشاء الوظيفة، يتم التعامل مع جميع المعلمات على أنها في المعلمات (بدلاً من معلمات OUT/INOUT).
return_datatype نوع بيانات القيمة المرجعة للوظيفة.
لغة SQL إنه يؤثر على قابلية النقل ولكن ليس على الوظيفة.
حتمية ستقوم الدالة بإرجاع نتيجة واحدة فقط عند إعطاء عدد من المعلمات.
غير حازم من الممكن أن تقوم الدالة بإرجاع نتيجة مختلفة عند إعطاء عدد من المعلمات.
يحتوي على SQL إبلاغ MariaDB أن هذه الوظيفة تحتوي على SQL. لن تتحقق قاعدة البيانات من صحة هذا الأمر.
لا SQL لم يتم استخدام هذه الجملة، وليس لها أي تأثير على وظيفتك.
يقرأ بيانات SQL يخبر MariaDB أن هذه الوظيفة ستستخدم عبارات SELECT لقراءة البيانات، لكنها لن تقوم بتعديل البيانات.
يعدل بيانات SQL يخبر MariaDB أن هذه الوظيفة ستستخدم INSERT وDELETE وUPDATE وغيرها DDL عبارات لتعديل بيانات SQL.
قسم الإعلان هذا هو المكان الذي يجب أن يتم فيه الإعلان عن المتغيرات المحلية.
القسم القابل للتنفيذ يجب إضافة رمز الوظيفة هنا.

فيما يلي مثال لوظيفة MariaDB:

DELIMITER //

CREATE FUNCTION sumFunc (x INT )
RETURNS INT DETERMINISTIC

BEGIN

   DECLARE sum INT;
   SET sum = 0;
   label1: WHILE sum <= 3000 DO
   SET sum = sum + x;
   END WHILE label1;
   RETURN sum;
END; //
DELIMITER ;

وظيفة في MariaDB

يمكننا بعد ذلك استدعاء الوظيفة المذكورة أعلاه على النحو التالي:

select sumFunc(1000);

سيعيد الأمر المتابعةwing:

وظيفة في MariaDB

بمجرد الانتهاء من وظيفة ما، سيكون من الجيد لك حذفها. يعد هذا أمرًا سهلاً حيث ما عليك سوى استدعاء عبارة DROP FUNCTION التي تأخذ المتابعةwing بناء الجملة:

DROP FUNCTION function_name;

على سبيل المثال، لإسقاط الدالة المسماة myFunc، يمكننا تشغيل التابعwing أمر:

DROP FUNCTION myFunc;

الانضمام

عندما تحتاج إلى استرداد البيانات من أكثر من جدول مرة واحدة، استخدم MariaDB JOINS. وهذا يعني أن أ الانضمام يعمل على جدولين أو أكثر. المتابعةwing يتم دعم ثلاثة أنواع من JOINS في MariaDB:

  • الانضمام الداخلي/البسيط
  • الانضمام الخارجي الأيسر/الانضمام الأيسر
  • الانضمام الخارجي الأيمن/الانضمام الأيمن

دعونا نناقشها واحدة تلو الأخرى:

INNER JOIN

تقوم الصلة الداخلية بإرجاع كافة الصفوف من الجداول التي يكون شرط الصلة فيها صحيحًا. بناء الجملة الخاص به هو كما يلي:

SELECT columns  
FROM table-1   
INNER JOIN table-2  
ON table-1.column = table-2.column;  

فمثلا:

سوف نستخدم طاولتين، والكتب، والكتاب.

يحتوي جدول الكتاب على المتابعةwing بيانات:

INNER JOIN

يحتوي جدول الأسعار على ما يليwing بيانات:

INNER JOIN

الهدف هو دمج عمود الاسم من جدول الكتب وعمود السعر من جدول الأسعار في جدول واحد. وهذا ممكن مع صلة داخلية، كما هو موضح أدناه:

SELECT book.name, price.price 
FROM book   
INNER JOIN price 
ON book.id = price.id;   

يقوم الأمر بإرجاع المتابعةwing:

INNER JOIN

ترك صلة خارجية

تقوم عملية الربط هذه بإرجاع كافة الصفوف من الجدول الأيمن والصفوف التي يكون شرط الربط فيها صحيحًا من الجدول الآخر فقط. بناء الجملة الخاص به هو كما يلي:

SELECT columns  
FROM table-1  
LEFT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

تم وضع الكلمة الأساسية OUTER بين قوسين مربعين لأنها اختيارية.

فمثلا:

SELECT book.name, price.price 
FROM book   
LEFT JOIN price 
ON book.id = price.id;   

يقوم الأمر بإرجاع المتابعةwing:

ترك صلة خارجية

السجل الأخير في الجدول أعلاه لا يحتوي على قيمة مطابقة على اليسار. ولهذا السبب تم استبداله بـ NULL.

حق الانضمام الخارجي

تقوم عملية الربط هذه بإرجاع كافة الصفوف من الجدول الأيمن والصفوف التي يكون شرط الربط فيها صحيحًا من الجدول الآخر فقط. بناء الجملة الخاص به هو كما يلي:

SELECT columns  
FROM table-1  
RIGHT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

تم وضع الكلمة الأساسية OUTER بين قوسين مربعين لأنها اختيارية.

فمثلا:

SELECT book.name, price.price 
FROM book   
RIGHT JOIN price
ON book.id = price.id;   

يقوم الأمر بإرجاع المتابعةwing:

حق الانضمام الخارجي

والسبب هو أن جميع الصفوف الموجودة في الجدول الأيمن كانت متطابقة مع تلك الموجودة في الجدول الآخر. إذا لم تتطابق بعض الصفوف، فسيكون لدينا قيم فارغة في العمود الأول.