في لغة SQL، تُستخدم الدالتان `MIN()` و `MAX()` لإيجاد القيم الدنيا (الأصغر) والقيم القصوى (الأكبر) على التوالي في مجموعة من القيم. تُعتبر هاتان الدالتان من الدوال التجميعية (Aggregate Functions) التي تُستخدم مع عبارة `SELECT`.

. الدالة `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` يُمكن من إجراء تحليلات أكثر تفصيلًا على البيانات.