دوال التعامل مع البيانات في SQL


دوال التعامل مع البيانات في SQL

يلا ندخل بالموضوع على طول، دوال التعامل مع البيانات في SQL هي أدوات قوية جداً بتساعدك تعدّل، تنسّق، وتحلّل البيانات اللي عندك. بدونها، شغلك بيكون صعب ومحدود. خلينا نشوف أهمها:

1. دوال النصوص (String Functions)

هذي الدوال بتتعامل مع البيانات النصية (strings). مفيدة جداً لتنظيف وتنسيق النصوص.

  • CONCAT() أو CONCAT_WS(): لدمج النصوص.

    CONCAT() بتدمج نصين أو أكثر. CONCAT_WS() (Concatenate With Separator) بتدمج النصوص وبتضيف فاصل بينهم.

    </p>
            <p>SELECT CONCAT('مرحباً', ' ', 'يا عالم!') AS FullMessage;</p>
            <p>SELECT CONCAT_WS('-', 'اسم', 'أول', 'اسم', 'أخير') AS FullName;</p>
            <p>

  • LENGTH() أو LEN(): عشان تعرف طول النص.

    </p>
            <p>SELECT LENGTH('SQL هو الأساس') AS TextLength;</p>
            <p>

  • SUBSTRING() أو SUBSTR(): لاستخراج جزء من النص.

    تحتاج تحدد النص، نقطة البداية، والطول اللي تبغى تستخرجه.

    </p>
            <p>SELECT SUBSTRING('قاعدة البيانات', 8, 7) AS ExtractedPart; -- بتطلع 'البيانات'</p>
            <p>

  • UPPER() و LOWER(): لتحويل النص لحروف كبيرة أو صغيرة.

    </p>
            <p>SELECT UPPER('sql') AS UpperText;</p>
            <p>SELECT LOWER('SQL') AS LowerText;</p>
            <p>

  • TRIM()، LTRIM()، RTRIM(): لإزالة المسافات الزائدة.

    TRIM() بتزيل من الطرفين، LTRIM() من اليسار، RTRIM() من اليمين.

    </p>
            <p>SELECT TRIM('   نص بمسافات   ') AS TrimmedText;</p>
            <p>

2. دوال الأرقام (Numeric Functions)

هذي الدوال بتساعدك تسوي عمليات حسابية على الأرقام.

  • ROUND(): لتقريب الأرقام.

    تقدر تحدد كم خانة عشرية تبغاها بعد التقريب.

    </p>
            <p>SELECT ROUND(123.456, 2) AS RoundedNumber; -- 123.46</p>
            <p>

  • CEIL() (أو CEILING()) و FLOOR(): لتقريب الرقم لأقرب عدد صحيح.

    CEIL() بتقرب للأعلى، FLOOR() بتقرب للأقل.

    </p>
            <p>SELECT CEIL(123.45) AS CeilNumber; -- 124</p>
            <p>SELECT FLOOR(123.99) AS FloorNumber; -- 123</p>
            <p>

  • ABS(): لإرجاع القيمة المطلقة (إزالة الإشارة السالبة).

    </p>
            <p>SELECT ABS(-100) AS AbsoluteValue; -- 100</p>
            <p>

3. دوال التاريخ والوقت (Date/Time Functions)

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

  • GETDATE() (SQL Server) أو NOW() (MySQL): للحصول على التاريخ والوقت الحالي.

    </p>
            <p>SELECT GETDATE() AS CurrentDateTime; -- SQL Server</p>
            <p>SELECT NOW() AS CurrentDateTime; -- MySQL</p>
            <p>

  • DATEADD() (SQL Server) أو DATE_ADD() (MySQL): لإضافة فترة زمنية للتاريخ.

    </p>
            <p>SELECT DATEADD(day, 7, GETDATE()) AS NextWeek; -- إضافة 7 أيام</p>
            <p>SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH) AS NextMonth; -- إضافة شهر</p>
            <p>

  • DATEDIFF(): لحساب الفرق بين تاريخين.

    تختلف صيغتها بين أنظمة قواعد البيانات، لكن الفكرة واحدة.

    </p>
            <p>SELECT DATEDIFF(day, '2023-01-01', '2023-01-31') AS DaysDifference; -- SQL Server</p>
            <p>SELECT DATEDIFF('2023-01-31', '2023-01-01') AS DaysDifference; -- MySQL</p>
            <p>

  • YEAR(), MONTH(), DAY(): لاستخراج جزء معين من التاريخ.

    </p>
            <p>SELECT YEAR(GETDATE()) AS CurrentYear;</p>
            <p>SELECT MONTH('2023-10-26') AS SpecificMonth;</p>
            <p>

4. دوال التجميع (Aggregate Functions)

هذي الدوال بتشتغل على مجموعة من الصفوف (rows) وبترجع قيمة واحدة. تستخدم كثير مع جملة GROUP BY.

  • COUNT(): لعد عدد الصفوف.

    COUNT(*) بتعد كل الصفوف، COUNT(اسم_عمود) بتعد الصفوف اللي فيها قيم غير خالية للعمود المحدد.

    </p>
            <p>SELECT COUNT(*) AS TotalProducts FROM Products;</p>
            <p>SELECT COUNT(DISTINCT Category) AS UniqueCategories FROM Products;</p>
            <p>

  • SUM(): لحساب مجموع القيم في عمود معين.

    </p>
            <p>SELECT SUM(OrderTotal) AS TotalRevenue FROM Orders;</p>
            <p>

  • AVG(): لحساب متوسط القيم في عمود معين.

    </p>
            <p>SELECT AVG(Price) AS AveragePrice FROM Products;</p>
            <p>

  • MIN() و MAX(): لإيجاد أقل وأعلى قيمة في عمود.

    </p>
            <p>SELECT MIN(OrderDate) AS OldestOrder, MAX(OrderDate) AS LatestOrder FROM Orders;</p>
            <p>

5. دوال التحويل (Conversion Functions)

لتحويل نوع البيانات من نوع لآخر.

  • CAST() و CONVERT(): لتحويل نوع البيانات.

    CAST() هي المعيارية (standard SQL)، بينما CONVERT() خاصة بـ SQL Server لكنها أقوى في بعض الأحيان (مثل تنسيق التاريخ).

    </p>
            <p>SELECT CAST(123 AS VARCHAR(10)) AS NumberAsString;</p>
            <p>SELECT CONVERT(DATE, GETDATE()) AS CurrentDateOnly; -- SQL Server</p>
            <p>

هذي كانت نظرة سريعة على أهم دوال التعامل مع البيانات في SQL. استخدامك لها بيفتح لك أبواب كثيرة في تحليل ومعالجة بياناتك. تدرب عليها وشوف كيف بتسهل عليك الشغل!