جدول المحتويات
لغة SQL (Structured Query Language) هي لغة قوية تُستخدم لإدارة واستعلام البيانات داخل قواعد البيانات. تمثل SQL الأساس الذي تعتمد عليه أنظمة إدارة قواعد البيانات مثل MySQL و PostgreSQL و SQLite و Oracle. في هذا المقال، سنأخذك خطوة بخطوة في عالم SQL، بدءًا من المفاهيم الأساسية وحتى كيفية بناء نظام كامل لإدارة الطلبات باستخدام SQL.
ما هي لغة SQL؟
لغة SQL هي لغة استعلامات هيكلية تُستخدم للتفاعل مع قواعد البيانات العلائقية. هذه اللغة تُتيح للمطورين والمبرمجين إدارة البيانات داخل الجداول باستخدام استعلامات معقدة قد تشمل عمليات الإدراج، التحديث، الحذف، والاستعلام.
لماذا يجب تعلم SQL؟
يُعتبر تعلم SQL مهارة أساسية لأي مبرمج يعمل في مجال تطوير الويب، علوم البيانات، أو إدارة قواعد البيانات. من خلال استخدام SQL، يمكنك:
- إجراء استعلامات معقدة: يمكنك البحث عن بيانات معينة داخل قواعد البيانات باستخدام شروط محددة.
- إدارة البيانات: بإمكانك إضافة بيانات جديدة، تعديل البيانات الموجودة، وحذف البيانات غير المطلوبة.
- تحليل البيانات: باستخدام SQL، يمكنك جمع البيانات من جداول متعددة وتحليلها بطرق متنوعة.
الأساسيات في SQL
قبل البدء في كتابة استعلامات معقدة، يجب أن نغطي الأساسيات.
1. إنشاء قاعدة بيانات (Database)
أول خطوة عند العمل مع SQL هي إنشاء قاعدة بيانات جديدة. للقيام بذلك، استخدم استعلام SQL التالي:
CREATE DATABASE my_database;
هنا، تم إنشاء قاعدة بيانات جديدة باسم “my_database”.
2. إنشاء جدول (Table)
بعد أن قمنا بإنشاء قاعدة بيانات، يجب أن ننشئ جدولًا داخل هذه القاعدة لتخزين البيانات. إليك كيفية إنشاء جدول بسيط:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_name VARCHAR(100),
order_date DATE,
total_amount DECIMAL(10, 2)
);
في هذا المثال، أنشأنا جدولًا باسم “orders” يحتوي على أربعة أعمدة: order_id
، customer_name
، order_date
، و total_amount
.
3. إدخال البيانات (INSERT INTO)
بمجرد أن يصبح لديك جدول، يمكنك البدء في إضافة البيانات إليه باستخدام الاستعلام INSERT INTO
. على سبيل المثال:
INSERT INTO orders (order_id, customer_name, order_date, total_amount)
VALUES (1, 'Ahmad Ali', '2025-02-15', 250.75);
في هذا الاستعلام، أضفنا سجلًا جديدًا في جدول “orders” مع تفاصيل مثل order_id
و customer_name
و order_date
و total_amount
.
4. استعلام البيانات (SELECT)
لتحديد البيانات من جدول، يمكنك استخدام استعلام SELECT
. على سبيل المثال:
SELECT * FROM orders;
هذا الاستعلام يسترجع جميع السجلات من جدول “orders”.
5. تحديث البيانات (UPDATE)
لتعديل البيانات الموجودة في الجدول، يمكنك استخدام استعلام UPDATE
. على سبيل المثال، لتحديث مبلغ الطلب في السجل:
UPDATE orders
SET total_amount = 300.50
WHERE order_id = 1;
هنا، تم تحديث قيمة total_amount
للطلب الذي يحتوي على order_id
يساوي 1.
6. حذف البيانات (DELETE)
لحذف سجل من الجدول، يمكنك استخدام استعلام DELETE
:
DELETE FROM orders
WHERE order_id = 1;
هذا الاستعلام يقوم بحذف السجل الذي يحتوي على order_id
يساوي 1.
الاستعلامات المتقدمة في SQL
بعد أن تعلمنا الأساسيات، دعونا ننتقل إلى بعض الاستعلامات المتقدمة التي يمكن استخدامها في SQL.
1. استخدام شروط WHERE
يمكنك تحديد الشروط لتصفية البيانات التي تسترجعها باستخدام جملة WHERE
. على سبيل المثال، لتصفية الطلبات التي قيمتها أكثر من 200:
SELECT * FROM orders
WHERE total_amount > 200;
2. التصفية باستخدام AND و OR
يمكنك دمج شروط متعددة باستخدام AND
أو OR
. على سبيل المثال:
SELECT * FROM orders
WHERE total_amount > 200 AND customer_name = 'Ahmad Ali';
أو باستخدام OR
:
SELECT * FROM orders
WHERE customer_name = 'Ahmad Ali' OR total_amount < 100;
3. ترتيب البيانات باستخدام ORDER BY
يمكنك ترتيب النتائج باستخدام جملة ORDER BY
. على سبيل المثال، لترتيب الطلبات حسب المبلغ الإجمالي من الأعلى إلى الأدنى:
SELECT * FROM orders
ORDER BY total_amount DESC;
4. تجميع البيانات باستخدام GROUP BY
إذا كنت تريد تجميع البيانات بناءً على عمود معين، يمكنك استخدام جملة GROUP BY
. على سبيل المثال، إذا كنت تريد حساب إجمالي المبالغ لكل عميل:
SELECT customer_name, SUM(total_amount) AS total_spent
FROM orders
GROUP BY customer_name;
5. الجمع بين الجداول باستخدام JOIN
في الكثير من الأحيان، ستحتاج إلى دمج بيانات من جداول مختلفة. هذا يمكن القيام به باستخدام جملة JOIN
. إليك مثالًا على كيفية دمج جدولين باستخدام INNER JOIN
:
SELECT orders.order_id, orders.customer_name, products.product_name
FROM orders
INNER JOIN products ON orders.product_id = products.product_id;
هنا، دمجنا بيانات من جدول “orders” مع جدول “products” بناءً على العمود المشترك product_id
.
بناء نظام لإدارة الطلبات باستخدام SQL
الآن وبعد أن تعلمنا الأساسيات، دعونا نبدأ في بناء نظام لإدارة الطلبات باستخدام SQL. سنقوم بإنشاء قاعدة بيانات تحتوي على الجداول التالية:
- جدول للطلبات (
orders
) - جدول للعملاء (
customers
) - جدول للمنتجات (
products
) - جدول لربط الطلبات بالمنتجات (
order_items
)
1. إنشاء قاعدة البيانات
أولاً، أنشئ قاعدة بيانات جديدة:
CREATE DATABASE order_management_system;
ثم اختر القاعدة للعمل عليها:
USE order_management_system;
2. إنشاء الجداول
جدول العملاء
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(100),
customer_email VARCHAR(100),
customer_phone VARCHAR(15)
);
جدول المنتجات
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100),
product_price DECIMAL(10, 2)
);
جدول الطلبات
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
total_amount DECIMAL(10, 2),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
جدول العناصر في الطلب
CREATE TABLE order_items (
order_item_id INT PRIMARY KEY,
order_id INT,
product_id INT,
quantity INT,
item_total DECIMAL(10, 2),
FOREIGN KEY (order_id) REFERENCES orders(order_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
3. إضافة بيانات إلى الجداول
إضافة بيانات للعملاء:
INSERT INTO customers (customer_id, customer_name, customer_email, customer_phone)
VALUES (1, 'Ahmad Ali', 'ahmad.ali@example.com', '123456789');
إضافة بيانات للمنتجات:
INSERT INTO products (product_id, product_name, product_price)
VALUES (1, 'Laptop', 1000.00),
(2, 'Mouse', 20.00),
(3, 'Keyboard', 50.00);
إضافة بيانات للطلبات:
INSERT INTO orders (order_id, customer_id, order_date, total_amount)
VALUES (1, 1, '2025-02-15', 1070.00);
إضافة بيانات لعناصر الطلب:
INSERT INTO order_items (order_item_id, order_id, product_id, quantity, item_total)
VALUES (1, 1, 1, 1, 1000.00),
(2, 1, 2, 1, 20.00),
(3, 1, 3, 1, 50.00);
4. استعلامات النظام
استعلام للحصول على تفاصيل الطلب:
SELECT o.order_id, o.order_date, o.total_amount, c.customer_name, p.product_name, oi.quantity, oi.item_total
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id
INNER JOIN order_items oi ON o.order_id = oi.order_id
INNER JOIN products p ON oi.product_id = p.product_id
WHERE o.order_id = 1;
الخاتمة
الآن، أصبح لديك فكرة واضحة عن كيفية استخدام SQL لإدارة البيانات. تعلمنا كيفية إنشاء قاعدة بيانات، إضافة جداول، إجراء استعلامات بسيطة ومعقدة، وأخيرًا بناء نظام لإدارة الطلبات باستخدام SQL. من خلال ممارسة هذه المهارات وتطويرها، يمكنك بناء تطبيقات أكثر تعقيدًا واحترافية باستخدام SQL.
من خلال استخدام الاستعلامات المتقدمة مثل JOIN
و GROUP BY
، يمكنك تحليل البيانات بطرق قوية وفعالة. كما أن بناء نظام كامل مثل نظام إدارة الطلبات يوفر لك الكثير من المهارات التي ستساعدك في أي مشروع تطوير قواعد بيانات مستقبلي.
إذا كنت ترغب في تعميق معرفتك بـ SQL، يمكنك متابعة دراسة المزيد من المواضيع المتقدمة مثل الفهارس، الإجراءات المخزنة، وTriggers لتطوير مهاراتك.