Clauseها، Aggregate Functions، JOIN و Set Operation در SQL

Clauseها، توابع تجمیعی، JOIN و عملیات مجموعه‌ای در SQL

توسط admin | گروه SQL Server | 1405/05/16

نظرات 0

Clauseها، توابع تجمیعی، JOIN و عملیات مجموعه‌ای در SQL

Clauseهای SQL

Clauseهای SQLنمودار سه شاخهٔ GROUP BY، HAVING و ORDER BY. بند SQL (Clause) GROUP BY HAVING ORDER BY

GROUP BY

  • دستور SQL GROUP BY برای مرتب‌کردن داده‌های یکسان در گروه‌ها استفاده می‌شود.
  • دستور GROUP BY همراه با دستور SQL SELECT استفاده می‌شود.
  • در دستور SELECT، GROUP BY بعد از Clauseِ WHERE و قبل از Clauseِ ORDER BY قرار می‌گیرد.
  • دستور GROUP BY همراه با تابع تجمیعی استفاده می‌شود.

Syntax

SELECT column
FROM table_name
WHERE conditions
GROUP BY column
ORDER BY column

Example

SELECT COMPANY, COUNT(*)
FROM PRODUCT_MAST
GROUP BY COMPANY;

HAVING

  • Clauseِ HAVING برای مشخص‌کردن یک شرط جست‌وجو برای یک گروه یا یک Aggregate استفاده می‌شود.
  • Having در Clauseِ GROUP BY استفاده می‌شود. اگر از Clauseِ GROUP BY استفاده نمی‌کنید، می‌توانید تابع HAVING را مانند Clauseِ WHERE استفاده کنید.

Syntax

SELECT column1, column2 FRO
M table_name
WHERE conditions
GROUP BY column1, column2
HAVING conditions
ORDER BY column1, column2;

Example

SELECT COMPANY, COUNT(*)
FROM PRODUCT_MAST
GROUP BY COMPANY
HAVING COUNT(*)>2;

ORDER BY

  • Clauseِ ORDER BY مجموعهٔ نتیجه را به ترتیب صعودی یا نزولی مرتب می‌کند.
  • رکوردها را به‌صورت پیش‌فرض صعودی مرتب می‌کند. کلیدواژهٔ DESC برای مرتب‌کردن رکوردها به ترتیب نزولی استفاده می‌شود.

Syntax

SELECT column1, column2
FROM table_name
WHERE condition
ORDER BY column1, column2... AS
C|DESC;

Example

SELECT *
FROM CUSTOMER
ORDER BY NAME;
OR
SELECT *
FROM CUSTOMER
ORDER BY NAME DESC;

توابع تجمیعی SQL

توابع تجمیعی SQLنمودار پنج تابع COUNT، SUM، AVG، MAX و MIN. تابع تجمیعی SQL COUNTSUMAVGMAXMIN

تابع COUNT

  • تابع COUNT برای شمارش تعداد ردیف‌ها در یک جدول پایگاه داده استفاده می‌شود. این تابع می‌تواند روی نوع‌های دادهٔ عددی و غیرعددی کار کند.
  • تابع COUNT از COUNT(*) استفاده می‌کند که تعداد همهٔ ردیف‌های یک جدول مشخص‌شده را برمی‌گرداند. COUNT(*) مقادیر تکراری و Null را در نظر می‌گیرد.

Syntax

COUNT(*) or COUNT( [ALL|DISTINCT] expression )

Example

SELECT COUNT(*) FROM PRODUCT_MAST;
SELECT COUNT(*) FROM PRODUCT_MAST; WHERE RATE>=20;
SELECT COUNT(DISTINCT COMPANY) FROM PRODUCT_MAST;
SELECT COMPANY, COUNT(*) FROM PRODUCT_MAST GROUP BY COMPANY;
SELECT COMPANY, COUNT(*) FROM PRODUCT_MAST GROUP BY COMPANY
HAVING COUNT(*)>2;

تابع SUM

تابع Sum برای محاسبهٔ مجموع همهٔ ستون‌های انتخاب‌شده استفاده می‌شود و فقط روی فیلدهای عددی کار می‌کند.

Syntax

SUM() or SUM( [ALL|DISTINCT] expression )

Example

SELECT SUM(COST) FROM PRODUCT_MAST;

SUM() with WHERE

SELECT SUM(COST) FROM PRODUCT_MAST WHERE QTY>3;

SUM() with GROUP BY

SELECT SUM(COST) FROM PRODUCT_MAST WHERE QTY>3
GROUP BY COMPANY;

SUM() with HAVING

SELECT COMPANY, SUM(COST) FROM PRODUCT_MAST GROUP BY COM
PANY HAVING SUM(COST)>=170;

تابع AVG

تابع AVG برای محاسبهٔ مقدار میانگین نوع عددی استفاده می‌شود. تابع AVG میانگین همهٔ مقادیر غیر Null را برمی‌گرداند.

Syntax

AVG() or AVG( [ALL|DISTINCT] expression )

Example

SELECT AVG(COST) FROM PRODUCT_MAST;

تابع MAX

تابع MAX برای یافتن بیشترین مقدار یک ستون مشخص استفاده می‌شود. این تابع بزرگ‌ترین مقدار را از میان همهٔ مقادیر انتخاب‌شدهٔ یک ستون تعیین می‌کند.

Syntax

MAX() or MAX( [ALL|DISTINCT] expression )

Example

SELECT MAX(RATE) FROM PRODUCT_MAST;

تابع MIN

تابع MIN برای یافتن کمترین مقدار یک ستون مشخص استفاده می‌شود. این تابع کوچک‌ترین مقدار را از میان همهٔ مقادیر انتخاب‌شدهٔ یک ستون تعیین می‌کند.

Syntax

MIN() or MIN( [ALL|DISTINCT] expression )

Example

SELECT MIN(RATE) FROM PRODUCT_MAST;

SQL JOIN

در SQL، JOIN به معنای «ترکیب دو یا چند جدول» است. در SQL، Clauseِ JOIN برای ترکیب رکوردهای دو یا چند جدول در یک پایگاه داده استفاده می‌شود.

انواع SQL JOIN

  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL JOIN

INNER JOIN

در SQL، INNER JOIN رکوردهایی را انتخاب می‌کند که تا زمانی که شرط برقرار باشد، در هر دو جدول مقادیر منطبق دارند. این JOIN ترکیب همهٔ ردیف‌های هر دو جدول را در جایی که شرط برقرار است برمی‌گرداند.

Syntax

SELECT table1.column1, table1.column2, table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;

Example

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT
FROM EMPLOYEE
INNER JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

LEFT JOIN

SQL LEFT JOIN همهٔ مقادیر جدول چپ و مقادیر منطبق جدول راست را برمی‌گرداند. اگر مقدار منطبقی برای JOIN وجود نداشته باشد، NULL برمی‌گرداند.

Syntax

SELECT table1.column1, table1.column2, table2.column1,....
FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;

Example

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT
FROM EMPLOYEE
LEFT JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

RIGHT JOIN

در SQL، RIGHT JOIN همهٔ مقادیر ردیف‌های جدول راست و مقادیر منطبق جدول چپ را برمی‌گرداند. اگر در هر دو جدول تطبیقی وجود نداشته باشد، NULL برمی‌گرداند.

Syntax

SELECT table1.column1, table1.column2, table2.column1,....
FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;

Example

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT
FROM EMPLOYEE
RIGHT JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

FULL JOIN

در SQL، FULL JOIN نتیجهٔ ترکیب هر دو Left Outer Join و Right Outer Join است. جدول‌های JOINشده همهٔ رکوردهای هر دو جدول را دارند و در محل تطبیق‌هایی که پیدا نشده‌اند NULL قرار می‌دهد.

Syntax

SELECT table1.column1, table1.column2, table2.column1,....
FROM table1
FULL JOIN table2
ON table1.matching_column = table2.matching_column;

Example

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT
FROM EMPLOYEE
FULL JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

SQL Set Operation

عملیات مجموعه‌ای SQL برای ترکیب دو یا چند دستور SQL SELECT استفاده می‌شود.

انواع Set Operation

  • Union
  • UnionAll
  • Intersect
  • Minus

عملیات Union

  • عملیات SQL Union برای ترکیب نتیجهٔ دو یا چند پرس‌وجوی SQL SELECT استفاده می‌شود.
  • در عملیات Union، تعداد نوع‌های داده و ستون‌ها باید در هر دو جدولی که عملیات UNION روی آن‌ها اعمال می‌شود یکسان باشد.
  • عملیات Union ردیف‌های تکراری را از مجموعهٔ نتیجه حذف می‌کند.

Syntax

SELECT column_name FROM table1
UNION
SELECT column_name FROM table2;

Example

SELECT * FROM First
UNION
SELECT * FROM Second;

عملیات Intersect

  • برای ترکیب دو دستور SELECT استفاده می‌شود. عملیات Intersect ردیف‌های مشترک دو دستور SELECT را برمی‌گرداند.
  • در عملیات Intersect، تعداد نوع‌های داده و ستون‌ها باید یکسان باشد.
  • این عملیات دادهٔ تکراری ندارد و داده‌ها را به‌صورت پیش‌فرض به ترتیب صعودی مرتب می‌کند.

Syntax

SELECT column_name FROM table1
INTERSECT
SELECT column_name FROM table2;

Example

SELECT * FROM First
INTERSECT
SELECT * FROM Second;

عملیات MINUS

  • نتیجهٔ دو دستور SELECT را ترکیب می‌کند. عملگر Minus برای نمایش ردیف‌هایی استفاده می‌شود که در پرس‌وجوی اول وجود دارند اما در پرس‌وجوی دوم وجود ندارند.
  • این عملیات دادهٔ تکراری ندارد و داده‌ها به‌صورت پیش‌فرض به ترتیب صعودی مرتب می‌شوند.

Syntax

SELECT column_name FROM table1
MINUS
SELECT column_name FROM table2;

Example

SELECT * FROM First
MINUS
SELECT * FROM Second;

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500