. الدالة `MIN()`:**
تُستخدم لإيجاد أصغر قيمة في عمود مُحدد.
*الصيغة:**
`sql
SELECT MIN(column_name)
FROM table_name
WHERE condition; -- شرط اختياري
`column_name`: اسم العمود الذي تريد إيجاد أصغر قيمة فيه.
`table_name`: اسم الجدول الذي يحتوي على العمود.
`WHERE condition`: شرط اختياري لتحديد نطاق البحث.
**مثال:**
لنفترض أن لدينا جدولًا اسمه `products` يحتوي على الأعمدة `id` و `name` و `price`. لإيجاد أقل سعر لمنتج، نستخدم الاستعلام التالي:
`sql
SELECT MIN(price)
FROM products;
سيُرجع هذا الاستعلام أقل قيمة موجودة في عمود `price`.
* **مثال مع شرط:**
لإيجاد أقل سعر لمنتج في فئة مُعينة (مثلًا، فئة "إلكترونيات")، نستخدم شرط `WHERE`:
```sql
SELECT MIN(price)
FROM products
WHERE category = 'إلكترونيات';
**2. الدالة `MAX()`:**
تُستخدم لإيجاد أكبر قيمة في عمود مُحدد.
* **الصيغة:**
sql
SELECT MAX(column_name)
FROM table_name
WHERE condition; -- شرط اختياري
* `column_name`: اسم العمود الذي تريد إيجاد أكبر قيمة فيه.
* `table_name`: اسم الجدول الذي يحتوي على العمود.
* `WHERE condition`: شرط اختياري لتحديد نطاق البحث.
* **مثال:**
لإيجاد أعلى سعر لمنتج، نستخدم الاستعلام التالي:
```sql
SELECT MAX(price)
FROM products;
سيُرجع هذا الاستعلام أعلى قيمة موجودة في عمود `price`.
* **مثال مع شرط:**
لإيجاد أعلى سعر لمنتج في فئة مُعينة (مثلًا، فئة "ملابس")، نستخدم شرط `WHERE`:
```sql
SELECT MAX(price)
FROM products
WHERE category = 'ملابس';
**ملاحظات هامة:**
* تُمكن استخدام `MIN()` و `MAX()` مع أنواع البيانات الرقمية (مثل `INT`، `DECIMAL`، `FLOAT`) وأنواع البيانات النصية (مثل `VARCHAR`، `TEXT`) وأنواع البيانات الزمنية (مثل `DATE`، `DATETIME`).
* عند استخدامها مع البيانات النصية، تُرجع `MIN()` القيمة التي تأتي أولاً في الترتيب الأبجدي، وتُرجع `MAX()` القيمة التي تأتي أخيرًا.
* عند استخدامها مع البيانات الزمنية، تُرجع `MIN()` التاريخ أو الوقت الأقدم، وتُرجع `MAX()` التاريخ أو الوقت الأحدث.
* تتجاهل الدالتان `MIN()` و `MAX()` القيم `NULL`. إذا كان العمود يحتوي على قيم `NULL` فقط، فستُرجع الدالتان `NULL`.
* يُمكن استخدام `MIN()` و `MAX()` مع عبارة `GROUP BY` لتجميع البيانات وإيجاد القيم الدنيا والقصوى لكل مجموعة.
**مثال مع `GROUP BY`:**
لإيجاد أقل وأعلى سعر لكل فئة من المنتجات:
```sql
SELECT category, MIN(price) AS min_price, MAX(price) AS max_price
FROM products
GROUP BY category;
سيُرجع هذا الاستعلام جدولًا يحتوي على عمود `category` وعمود `min_price` (أقل سعر في الفئة) وعمود `max_price` (أعلى سعر في الفئة).
باختصار، تُعتبر الدالتان `MIN()` و `MAX()` أدوات قوية في SQL لإيجاد القيم الدنيا والقصوى في البيانات، سواء كانت هذه البيانات رقمية أو نصية أو زمنية. استخدامهما مع `WHERE` و `GROUP BY` يُمكن من إجراء تحليلات أكثر تفصيلًا على البيانات.