مقدمة إلى SQL: كتابة أول استعلام لك

Amine
03/09/2024

مقدمة

لغة SQL (Structured Query Language) هي لغة برمجة تُستخدم لإدارة البيانات في قواعد البيانات العلائقية. تُعتبر SQL أساسية لإجراء العمليات المختلفة على البيانات مثل الاستعلام عن البيانات، وإدخالها، وتحديثها، وحذفها. في هذا الدرس، سنستعرض كيفية كتابة استعلامات SQL بسيطة ومتقدمة، وكيفية استخدامها للتفاعل مع قواعد البيانات بشكل فعال.

ما هي SQL؟

SQL، أو لغة الاستعلامات الهيكلية، هي لغة قياسية تُستخدم للوصول إلى البيانات في نظام إدارة قواعد البيانات العلائقية (RDBMS). تُستخدم SQL لإجراء عمليات مختلفة مثل الاستعلام عن البيانات، إدراج بيانات جديدة، تحديث البيانات الحالية، وحذف البيانات. تعتمد SQL على هيكل بسيط لكنها قوية وفعالة في التعامل مع كميات كبيرة من البيانات.

أساسيات قواعد البيانات العلائقية

قبل أن نبدأ في كتابة استعلامات SQL، من المهم أن نفهم بعض المفاهيم الأساسية لقواعد البيانات العلائقية:

  • الجدول (Table): هو مجموعة من البيانات المنظمة في صفوف وأعمدة. كل صف يمثل سجلًا (Record) وكل عمود يمثل حقلًا (Field) معينًا من البيانات.
  • السجل (Record): هو صف في الجدول، يمثل مجموعة من القيم المرتبطة ببعضها لبعض الحقول.
  • الحقل (Field): هو عمود في الجدول، يمثل نوعًا معينًا من البيانات في السجل، مثل اسم الموظف أو رقم الهاتف.
  • المفتاح الأساسي (Primary Key): هو حقل أو مجموعة من الحقول التي تميز كل سجل في الجدول بشكل فريد.
  • المفتاح الخارجي (Foreign Key): هو حقل أو مجموعة من الحقول في جدول يشير إلى المفتاح الأساسي في جدول آخر، مما يخلق علاقة بين الجدولين.

كتابة أول استعلام SQL

لبدء كتابة استعلامات SQL، نستخدم عبارة SELECT لاسترجاع البيانات من قاعدة البيانات. إليك الصيغة الأساسية لاستعلام SELECT:

SELECT column1, column2 FROM table_name;

في هذا الاستعلام، column1 وcolumn2 هما أسماء الأعمدة التي ترغب في استردادها، وtable_name هو اسم الجدول الذي يحتوي على هذه الأعمدة.

استعلام SQL بسيط: مثال عملي

لنفترض أن لدينا قاعدة بيانات لمتجر تحتوي على جدول باسم Products، وهذا الجدول يحتوي على الأعمدة التالية: ProductID، ProductName، Price، وQuantity. لاستخراج أسماء المنتجات وأسعارها، يمكننا استخدام الاستعلام التالي:

SELECT ProductName, Price FROM Products;

هذا الاستعلام سيعيد قائمة بأسماء المنتجات وأسعارها المخزنة في جدول Products.

استخدام INSERT لإدخال بيانات جديدة

لإضافة سجلات جديدة إلى الجدول، نستخدم عبارة INSERT INTO. إليك الصيغة الأساسية لاستخدامها:

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);

على سبيل المثال، لإضافة منتج جديد إلى جدول Products، نستخدم الاستعلام التالي:

INSERT INTO Products (ProductName, Price, Quantity)
VALUES ('Laptop', 1500, 30);

هذا الاستعلام يضيف منتجًا جديدًا باسم ‘Laptop’ بسعر 1500 وبكمية 30 إلى الجدول.

تحديث البيانات باستخدام UPDATE

لتحديث بيانات موجودة في الجدول، نستخدم عبارة UPDATE. إليك الصيغة الأساسية:

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;

على سبيل المثال، لتحديث سعر منتج معين في جدول Products، نستخدم الاستعلام التالي:

UPDATE Products
SET Price = 1400
WHERE ProductName = 'Laptop';

هذا الاستعلام يقوم بتحديث سعر المنتج ‘Laptop’ ليصبح 1400.

حذف البيانات باستخدام DELETE

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

DELETE FROM table_name WHERE condition;

على سبيل المثال، لحذف منتج معين من جدول Products، نستخدم الاستعلام التالي:

DELETE FROM Products WHERE ProductName = 'Laptop';

هذا الاستعلام يحذف المنتج ‘Laptop’ من الجدول.

استخدام AND وOR لدمج الشروط

يمكنك دمج شروط متعددة باستخدام AND وOR. على سبيل المثال، لاستخراج جميع المنتجات التي سعرها أكبر من 100 وكمية المخزون أكبر من 50، يمكننا استخدام الاستعلام التالي:

SELECT ProductName, Price, Quantity FROM Products WHERE Price > 100 AND Quantity > 50;

لإرجاع المنتجات التي إما سعرها أكبر من 100 أو كمية المخزون أكبر من 50، نستخدم OR:

SELECT ProductName, Price, Quantity FROM Products WHERE Price > 100 OR Quantity > 50;

ترتيب النتائج باستخدام ORDER BY

لترتيب النتائج حسب عمود معين، نستخدم عبارة ORDER BY. على سبيل المثال، لترتيب المنتجات حسب السعر بترتيب تصاعدي، نستخدم الاستعلام التالي:

SELECT ProductName, Price FROM Products ORDER BY Price ASC;

لترتيب النتائج بترتيب تنازلي، نستخدم DESC بدلًا من ASC:

SELECT ProductName, Price FROM Products ORDER BY Price DESC;

استخدام الدوال التجميعية: COUNT، SUM، AVG

تُستخدم الدوال التجميعية لإجراء عمليات حسابية على مجموعة من القيم وإرجاع قيمة واحدة. بعض الدوال التجميعية الشائعة تشمل:

  • COUNT: تحسب عدد الصفوف في مجموعة.
  • SUM: تحسب مجموع القيم في عمود محدد.
  • AVG: تحسب متوسط القيم في عمود محدد.

على سبيل المثال، لحساب عدد المنتجات في الجدول، نستخدم COUNT:

SELECT COUNT(*) FROM Products;

لحساب مجموع الأسعار لكل المنتجات، نستخدم SUM:

SELECT SUM(Price) FROM Products;

لحساب متوسط السعر، نستخدم AVG:

SELECT AVG(Price) FROM Products;

تجميع البيانات باستخدام GROUP BY

تُستخدم عبارة GROUP BY لتجميع البيانات بناءً على عمود أو أكثر. يُستخدم GROUP BY غالبًا مع الدوال التجميعية لإجراء عمليات حسابية على مجموعات البيانات.

على سبيل المثال، لحساب عدد المنتجات في كل فئة (Category)، يمكننا استخدام الاستعلام التالي:

SELECT Category, COUNT(*) FROM Products GROUP BY Category;

هذا الاستعلام سيعيد عدد المنتجات لكل فئة موجودة في جدول Products.

تصفية المجموعات باستخدام HAVING

تُستخدم عبارة HAVING لتصفية المجموعات بعد تجميعها باستخدام GROUP BY. يتم استخدام HAVING مع الدوال التجميعية لتصفية النتائج.

على سبيل المثال، إذا أردنا استخراج الفئات التي تحتوي على أكثر من 10 منتجات، يمكننا استخدام الاستعلام التالي:

SELECT Category, COUNT(*) FROM Products GROUP BY Category HAVING COUNT(*) > 10;

هذا الاستعلام سيعيد الفئات التي تحتوي على أكثر من 10 منتجات فقط.

استخدام JOIN لدمج الجداول

تُستخدم عبارة JOIN لدمج صفوف من جداول متعددة بناءً على علاقة بين الأعمدة. هناك عدة أنواع من JOIN، بما في ذلك INNER JOIN، LEFT JOIN، RIGHT JOIN، وFULL OUTER JOIN.

INNER JOIN

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

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

LEFT JOIN

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

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

خاتمة

في هذا الدرس الشامل، استعرضنا كيفية كتابة استعلامات SQL بسيطة ومتقدمة، وتعلمنا كيفية استخدام SELECT، INSERT، UPDATE، DELETE، WHERE، ORDER BY، GROUP BY، HAVING، وJOIN لدمج الجداول. تُعد هذه المفاهيم أساسية لتطوير مهاراتك في SQL وإدارة قواعد البيانات بفعالية. تأكد من ممارسة كتابة استعلامات مختلفة لتحسين فهمك واستخدامك لهذه اللغة القوية.

استمر في متابعة دروسنا القادمة لمزيد من المواضيع المتقدمة والمفيدة في SQL، وكيفية تحسين استعلاماتك للحصول على أداء أفضل.

التعليقات

اترك تعليقاً