ديف أوبس

أهم استعلامات MySQL الأساسية والمتقدمة

مدخل إلى أهم الاستعلامات (queries) في MySQL

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

1. الاستعلامات الأساسية (Basic Queries)

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

1.1 الاستعلام SELECT

الاستعلام SELECT هو الاستعلام الأساسي الذي يُستخدم للحصول على البيانات من جداول MySQL. يمكن تحديد الأعمدة المراد استرجاعها من الجدول، أو استخدام علامة النجمة (*) لاسترجاع جميع الأعمدة.

sql
SELECT column1, column2 FROM table_name;

إذا كنت تريد استرجاع جميع الأعمدة من الجدول:

sql
SELECT * FROM table_name;

1.2 استخدام شروط WHERE

يمكنك تحسين الاستعلام باستخدام WHERE لتحديد السجلات التي تطابق شروطًا معينة. على سبيل المثال:

sql
SELECT name, age FROM employees WHERE age > 30;

في هذا الاستعلام، يتم استرجاع أسماء وأعمار الموظفين الذين تتجاوز أعمارهم 30 عامًا.

2. الاستعلامات المتقدمة (Advanced Queries)

بعد أن تتقن الأساسيات، يمكنك الانتقال إلى الاستعلامات المتقدمة التي تحتوي على المزيد من التعقيد وتساعد في تحليل البيانات بشكل أكثر عمقًا.

2.1 الانضمام بين الجداول (JOIN)

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

  • INNER JOIN: يعيد السجلات التي لها تطابق في كلا الجدولين.

  • LEFT JOIN: يعيد جميع السجلات من الجدول الأول، والسجلات المطابقة من الجدول الثاني.

  • RIGHT JOIN: يعيد جميع السجلات من الجدول الثاني، والسجلات المطابقة من الجدول الأول.

  • FULL JOIN: يعيد جميع السجلات من كلا الجدولين (في MySQL، يمكن محاكاة هذا باستخدام UNION).

مثال على استخدام INNER JOIN:

sql
SELECT employees.name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id;

في هذا الاستعلام، يتم دمج بيانات الموظفين مع أقسامهم بناءً على العلاقة بين department_id و id.

2.2 استخدام GROUP BY و HAVING

تساعدك GROUP BY في تجميع السجلات بناءً على قيم معينة، مما يسمح لك بحساب القيم الإجمالية مثل المتوسطات أو الجمع أو العد. أما HAVING فهي مشابهة لـ WHERE ولكنها تستخدم مع GROUP BY لتصفية المجموعات.

مثال على استخدام GROUP BY و HAVING:

sql
SELECT department_id, COUNT(*) AS employee_count FROM employees GROUP BY department_id HAVING COUNT(*) > 5;

في هذا الاستعلام، نقوم بحساب عدد الموظفين في كل قسم، ولكننا نستعرض الأقسام التي تحتوي على أكثر من 5 موظفين.

2.3 استخدام ORDER BY

يمكنك ترتيب نتائج الاستعلام باستخدام ORDER BY. من خلاله، يمكنك ترتيب النتائج بترتيب تصاعدي أو تنازلي بناءً على الأعمدة المحددة.

sql
SELECT name, age FROM employees ORDER BY age DESC;

في هذا الاستعلام، يتم ترتيب الموظفين حسب العمر بترتيب تنازلي.

2.4 استخدام LIMIT

تسمح لك LIMIT بتحديد عدد السجلات التي ترغب في استرجاعها. هذا مفيد عندما ترغب في تحديد عينة من البيانات بدلاً من جلب كل السجلات.

sql
SELECT * FROM employees LIMIT 10;

سيقوم هذا الاستعلام بجلب أول 10 سجلات من جدول employees.

3. الاستعلامات المعدلة (Manipulative Queries)

تتيح لك MySQL تنفيذ استعلامات لتعديل البيانات الموجودة في الجداول، مثل INSERT و UPDATE و DELETE.

3.1 استعلام INSERT

يُستخدم INSERT لإضافة بيانات جديدة إلى الجدول. يمكنك إدراج قيمة واحدة أو عدة قيم في نفس الوقت.

sql
INSERT INTO employees (name, age, department_id) VALUES ('John Doe', 30, 1);

يمكنك أيضًا إدراج عدة سجلات في استعلام واحد:

sql
INSERT INTO employees (name, age, department_id) VALUES ('Jane Smith', 28, 2), ('Alice Johnson', 35, 1);

3.2 استعلام UPDATE

يُستخدم UPDATE لتحديث القيم الموجودة في الجداول. يجب أن تستخدم WHERE لتحديد السجلات التي ترغب في تعديلها، وإلا ستتم تعديل جميع السجلات في الجدول.

sql
UPDATE employees SET age = 31 WHERE name = 'John Doe';

3.3 استعلام DELETE

DELETE يُستخدم لحذف السجلات من الجدول. مثل UPDATE، يجب أن تكون حذرًا عند استخدام DELETE وتحديد السجلات التي ترغب في حذفها باستخدام WHERE.

sql
DELETE FROM employees WHERE name = 'John Doe';

4. الاستعلامات الخاصة بالإدارة (Administrative Queries)

4.1 إنشاء الجداول (CREATE TABLE)

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

sql
CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), age INT, department_id INT );

4.2 تعديل الجداول (ALTER TABLE)

ALTER TABLE يُستخدم لتعديل هيكل الجدول، مثل إضافة أو حذف الأعمدة.

sql
ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);

4.3 حذف الجداول (DROP TABLE)

DROP TABLE يُستخدم لحذف الجدول بالكامل من قاعدة البيانات، بما في ذلك جميع البيانات المخزنة فيه.

sql
DROP TABLE employees;

5. الاستعلامات الخاصة بالبحث المتقدم (Full-Text Search Queries)

تتيح MySQL البحث عن النصوص داخل الأعمدة النصية باستخدام FULLTEXT. تعتبر هذه الميزة مفيدة للبحث في الحقول التي تحتوي على نصوص كبيرة.

sql
SELECT * FROM articles WHERE MATCH(title, content) AGAINST('MySQL database');

6. الاستعلامات الخاصة بالوظائف والتخزين المؤقت (Stored Procedures and Functions)

6.1 الإجراءات المخزنة (Stored Procedures)

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

sql
CREATE PROCEDURE GetEmployeesByDepartment(department_id INT) BEGIN SELECT name, age FROM employees WHERE department_id = department_id; END;

6.2 الدوال المخزنة (Stored Functions)

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

sql
CREATE FUNCTION GetEmployeeCount(department_id INT) RETURNS INT BEGIN DECLARE count INT; SELECT COUNT(*) INTO count FROM employees WHERE department_id = department_id; RETURN count; END;

7. الاستعلامات الخاصة بالنسخ الاحتياطي والاستعادة (Backup and Restore Queries)

7.1 النسخ الاحتياطي للقاعدة البيانات

يمكنك إنشاء نسخة احتياطية للقاعدة باستخدام mysqldump:

bash
mysqldump -u username -p database_name > backup.sql

7.2 استعادة قاعدة البيانات

يمكنك استعادة قاعدة البيانات باستخدام:

bash
mysql -u username -p database_name < backup.sql

الخلاصة

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