مدخل إلى أهم الاستعلامات (queries) في MySQL
تعتبر MySQL واحدة من أشهر قواعد البيانات العلائقية التي يستخدمها المطورون حول العالم لإدارة البيانات. تتميز MySQL بالعديد من الخصائص التي تجعلها الاختيار الأول لمجموعة كبيرة من التطبيقات، من بينها سرعتها، ومرونتها، وقابليتها للتوسع، ودعمه للعديد من اللغات البرمجية. كما أنها تعتبر من أنظمة قواعد البيانات مفتوحة المصدر، مما يجعلها شائعة في المشاريع التجارية والتطبيقات الصغيرة والمتوسطة. في هذا المقال، سنقدم مدخلاً شاملاً حول أهم الاستعلامات التي يمكن تنفيذها في MySQL، مع توضيح مفصل لكل استعلام وكيفية استخدامه بفعالية.
1. الاستعلامات الأساسية (Basic Queries)
أبسط الاستعلامات في MySQL هي الاستعلامات التي تقوم بتحديد بيانات من الجداول الموجودة في قاعدة البيانات. يتم ذلك باستخدام الاستعلام SELECT، الذي يتيح للمستخدم استرجاع بيانات معينة من جدول محدد.
1.1 الاستعلام SELECT
الاستعلام SELECT هو الاستعلام الأساسي الذي يُستخدم للحصول على البيانات من جداول MySQL. يمكن تحديد الأعمدة المراد استرجاعها من الجدول، أو استخدام علامة النجمة (*) لاسترجاع جميع الأعمدة.
sqlSELECT column1, column2 FROM table_name;
إذا كنت تريد استرجاع جميع الأعمدة من الجدول:
sqlSELECT * FROM table_name;
1.2 استخدام شروط WHERE
يمكنك تحسين الاستعلام باستخدام WHERE لتحديد السجلات التي تطابق شروطًا معينة. على سبيل المثال:
sqlSELECT 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:
sqlSELECT 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:
sqlSELECT department_id, COUNT(*) AS employee_count
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 5;
في هذا الاستعلام، نقوم بحساب عدد الموظفين في كل قسم، ولكننا نستعرض الأقسام التي تحتوي على أكثر من 5 موظفين.
2.3 استخدام ORDER BY
يمكنك ترتيب نتائج الاستعلام باستخدام ORDER BY. من خلاله، يمكنك ترتيب النتائج بترتيب تصاعدي أو تنازلي بناءً على الأعمدة المحددة.
sqlSELECT name, age FROM employees ORDER BY age DESC;
في هذا الاستعلام، يتم ترتيب الموظفين حسب العمر بترتيب تنازلي.
2.4 استخدام LIMIT
تسمح لك LIMIT بتحديد عدد السجلات التي ترغب في استرجاعها. هذا مفيد عندما ترغب في تحديد عينة من البيانات بدلاً من جلب كل السجلات.
sqlSELECT * FROM employees LIMIT 10;
سيقوم هذا الاستعلام بجلب أول 10 سجلات من جدول employees.
3. الاستعلامات المعدلة (Manipulative Queries)
تتيح لك MySQL تنفيذ استعلامات لتعديل البيانات الموجودة في الجداول، مثل INSERT و UPDATE و DELETE.
3.1 استعلام INSERT
يُستخدم INSERT لإضافة بيانات جديدة إلى الجدول. يمكنك إدراج قيمة واحدة أو عدة قيم في نفس الوقت.
sqlINSERT INTO employees (name, age, department_id)
VALUES ('John Doe', 30, 1);
يمكنك أيضًا إدراج عدة سجلات في استعلام واحد:
sqlINSERT INTO employees (name, age, department_id)
VALUES
('Jane Smith', 28, 2),
('Alice Johnson', 35, 1);
3.2 استعلام UPDATE
يُستخدم UPDATE لتحديث القيم الموجودة في الجداول. يجب أن تستخدم WHERE لتحديد السجلات التي ترغب في تعديلها، وإلا ستتم تعديل جميع السجلات في الجدول.
sqlUPDATE employees
SET age = 31
WHERE name = 'John Doe';
3.3 استعلام DELETE
DELETE يُستخدم لحذف السجلات من الجدول. مثل UPDATE، يجب أن تكون حذرًا عند استخدام DELETE وتحديد السجلات التي ترغب في حذفها باستخدام WHERE.
sqlDELETE FROM employees WHERE name = 'John Doe';
4. الاستعلامات الخاصة بالإدارة (Administrative Queries)
4.1 إنشاء الجداول (CREATE TABLE)
يُستخدم CREATE TABLE لإنشاء جدول جديد في قاعدة البيانات. يجب أن تحدد الأعمدة وأنواع البيانات الخاصة بكل عمود.
sqlCREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT,
department_id INT
);
4.2 تعديل الجداول (ALTER TABLE)
ALTER TABLE يُستخدم لتعديل هيكل الجدول، مثل إضافة أو حذف الأعمدة.
sqlALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);
4.3 حذف الجداول (DROP TABLE)
DROP TABLE يُستخدم لحذف الجدول بالكامل من قاعدة البيانات، بما في ذلك جميع البيانات المخزنة فيه.
sqlDROP TABLE employees;
5. الاستعلامات الخاصة بالبحث المتقدم (Full-Text Search Queries)
تتيح MySQL البحث عن النصوص داخل الأعمدة النصية باستخدام FULLTEXT. تعتبر هذه الميزة مفيدة للبحث في الحقول التي تحتوي على نصوص كبيرة.
sqlSELECT * FROM articles
WHERE MATCH(title, content) AGAINST('MySQL database');
6. الاستعلامات الخاصة بالوظائف والتخزين المؤقت (Stored Procedures and Functions)
6.1 الإجراءات المخزنة (Stored Procedures)
الإجراء المخزن هو عبارة عن مجموعة من الاستعلامات التي يتم تخزينها في قاعدة البيانات ويمكن استدعاؤها بمرات متعددة. يُستخدم هذا النوع من الاستعلامات لزيادة الكفاءة وتوحيد العمليات المتكررة.
sqlCREATE PROCEDURE GetEmployeesByDepartment(department_id INT)
BEGIN
SELECT name, age FROM employees WHERE department_id = department_id;
END;
6.2 الدوال المخزنة (Stored Functions)
الدوال المخزنة هي تشابه الإجراءات المخزنة، ولكنها تُستخدم لإرجاع قيمة واحدة.
sqlCREATE 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:
bashmysqldump -u username -p database_name > backup.sql
7.2 استعادة قاعدة البيانات
يمكنك استعادة قاعدة البيانات باستخدام:
bashmysql -u username -p database_name < backup.sql
الخلاصة
تعتبر الاستعلامات في MySQL أداة قوية ومرنة للتعامل مع البيانات في قاعدة البيانات. من الاستعلامات الأساسية التي تستخدم لاسترجاع البيانات إلى الاستعلامات المتقدمة مثل الانضمام بين الجداول واستخدام العمليات الرياضية والتصفية، توفر MySQL مجموعة من الأدوات التي تسهل إدارة البيانات وتحليلها. من خلال تعلم استخدام هذه الاستعلامات بشكل فعال، يمكن للمطورين تحسين أداء تطبيقاتهم وتعزيز فاعلية استرجاع البيانات.

