در این مقاله به دستورات SELECT، WHERE و subqueries SQL و همین طور عبارات Group bY,Order By و Having با ذکر مثال در Sql بپردازیم.

1. دستور SELECT:
دستور SELECT برای بازیابی داده ها از پایگاه داده استفاده می شود. مشخص می کند که کدام ستون ها را می خواهید از جدول مشخص شده بازیابی کنید.
نحو:
SELECT column1, column2, ... FROM table_name;
مثال:
SELECT first_name, last_name FROM employees;
این مثال ستون های first_name و last_name را از جدول کارکنان بازیابی می کند.
2. دستور WHERE:
از عبارت WHERE برای فیلتر کردن رکوردها استفاده می شود. فقط برای استخراج رکوردهایی استفاده می شود که یک شرط مشخص را برآورده می کنند.
نحو:
SELECT column1, column2, ... FROM table_name WHERE condition;
مثال:
SELECT first_name, last_name FROM employees WHERE department = 'HR';
این مثال ستون های first_name و last_name را از جدول کارکنان که در آن بخش 'HR' است بازیابی می کند.
3. پرس و جوی فرعی:
یک پرس و جو فرعی یک پرس و جو در پرس و جوی دیگر است. برای انجام عملیاتی که به چندین مرحله نیاز دارند یا برای فیلتر کردن رکوردها بر اساس مجموعه دیگری از معیارها استفاده می شود.
نحو:
SELECT column1, column2, ... FROM table_name WHERE column_name IN (SELECT column_name FROM another_table WHERE condition);
مثال:
SELECT first_name, last_name FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'New York');
این مثال ستونهای first_name و last_name را از جدول کارکنان بازیابی میکند که در آن Department_id با هر بخش واقع در «نیویورک» مطابقت دارد.
ترکیب SELECT، WHERE و Subqueries
می توانید این دستورات را برای ایجاد پرس و جوهای پیچیده ترکیب کنید. به عنوان مثال:
SELECT first_name, last_name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
این پرس و جو نام و نام خانوادگی کارمندانی را بازیابی می کند که حقوق آنها از میانگین حقوق همه کارمندان بیشتر است.
4. دستور GROUP BY:
دستور GROUP BY برای مرتب کردن داده های یکسان در گروه ها استفاده می شود. این اغلب با توابع انبوه (مانند COUNT، SUM، AVG و غیره) برای انجام محاسبات روی هر گروه از داده ها استفاده می شود.
نحو:
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;
مثال:
SELECT department, COUNT(*) FROM employees GROUP BY department;
این مثال کارمندان را بر اساس بخش گروه بندی می کند و تعداد کارمندان هر بخش را می شمارد.
5. دستور ORDER BY:
عبارت ORDER BY برای مرتب کردن نتایج به ترتیب صعودی یا نزولی استفاده می شود. ترتیب مرتب سازی پیش فرض صعودی است.
نحو:
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC];
مثال:
SELECT first_name, last_name, salary FROM employees ORDER BY salary DESC;
این مثال جدول کارکنان را بر اساس ستون حقوق و دستمزد به ترتیب نزولی مرتب می کند.
6. دستور HAVING:
عبارت HAVING برای فیلتر کردن رکوردهایی که با GROUP BY کار می کنند استفاده می شود. شبیه عبارت WHERE است اما برای توابع جمع استفاده می شود.
نحو:
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;
مثال:
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 10;
این مثال کارمندان را بر اساس بخش گروه بندی می کند و فقط بخش هایی را شامل می شود که بیش از 10 کارمند دارند.
ترکیب GROUP BY، ORDER BY و HAVING
شما می توانید این دستورات را برای ایجاد پرس و جوهای قدرتمند ترکیب کنید. به عنوان مثال:
SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 50000 ORDER BY AVG(salary) DESC;
این پرس و جو کارمندان را بر اساس بخش گروه بندی می کند، متوسط حقوق هر بخش را محاسبه می کند، بخش هایی با حقوق متوسط 50000 یا کمتر را فیلتر می کند و نتایج مجموعه را به ترتیب نزولی میانگین حقوق مرتب می کند.
نکات کلیدی:
- SELECT: ستون های خاصی را از یک جدول بازیابی می کند.
- WHERE: رکوردها را بر اساس شرایط مشخص شده فیلتر می کند.
- Subqueries: به پرس و جوهای درون پرس و جو برای انجام عملیات پیچیده اجازه می دهد.
- GROUP BY: ردیف هایی را که مقادیر یکسانی در ستون های مشخص شده دارند در ردیف های خلاصه گروه بندی می کند.
- ORDER BY: نتایج تنظیم شده توسط ستون های مشخص شده را به ترتیب صعودی یا نزولی مرتب می کند.
- HAVING: گروه ها را بر اساس توابع انبوه، مشابه WHERE اما برای رکوردهای گروه بندی شده فیلتر می کند.
این دستورات برای ایجاد پرس و جوهای پایگاه داده سازمان یافته و روشنگر ضروری هستند.