پرس‌وجوهای چندجدولی SQL - JOIN، Alias و UNION | آموزش SQL Server

پرس‌وجوهای چندجدولی SQL - JOIN، Alias و UNION

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

نظرات 0

پرس‌وجوهای چندجدولی SQL - JOIN، Alias و UNION

عنوان اصلی: Multi-Table Queries
عنوان ترجمه: پرس‌وجوهای چندجدولی SQL - JOIN، Alias و UNION
صاحب/سازمان اثر: Relational Systems Corporation
زبان اصلی: انگلیسی
حق نشر منبع: Copyright © 2001
تاریخ ترجمه: 2026-08-13 / 1405/05/22
اعتبار ترجمه: ترجمه با کمک هوش مصنوعی
بازه صفحات PDF: 55 تا 63

6 - پرس‌وجوهای چندجدولی

  • Joinها
  • نام مستعار جدول‌ها
  • Unionها
اسکن صفحه 55 فایل PDFتصویر کامل صفحه 55 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 55 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Joinها

نام کامل ستون (Full Column Name) از نام جدول، یک نقطه و نام ستون - بدون فاصله بین آن‌ها - تشکیل می‌شود. در پرس‌وجوهای چندجدولی، وقتی یک نام ستون در بیش از یک جدول وجود دارد، استفاده از نام کامل ستون ضروری است.

tablename.columnname

PERSONS.JOB
COUNTRIES.POP
ARMIES.COUNTRY
JOBS.JOB
RELIGIONS.COUNTRY

قالب نام کامل ستون به‌صورت tablename.columnname است.

اسکن صفحه 56 فایل PDFتصویر کامل صفحه 56 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 56 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Joinها - ادامه

ستون‌های دو یا چند جدول را می‌توان با روشی به نام Join در یک جدول نتیجه ترکیب کرد. اصول Join در سه گام توضیح داده می‌شود. فرض کنید دو جدول دست‌کم یک ستون مشترک دارند:

  1. همه سطرهای جدول دوم را به تک‌تک سطرهای جدول اول متصل می‌کنیم؛ در نتیجه همه ترکیب‌های ممکن ساخته می‌شوند.
  2. فقط سطرهایی را نگه می‌داریم که مقدار ستون‌های مشترک در آن‌ها برابر است.
  3. ستون مشترک اضافی را حذف می‌کنیم. نتیجه، ترکیبی از اطلاعات دو جدول است.

نمونه سند اصلی با جدول‌های PERSONS و JOBS نشان می‌دهد چگونه مقدار JOB برای تطبیق سطرها استفاده و در پایان عنوان شغل به اطلاعات شخص افزوده می‌شود.

اسکن صفحه 57 فایل PDFتصویر کامل صفحه 57 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 57 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Joinها - ادامه

برای Join کردن دو یا چند جدول در SQL: 1) همه جدول‌های لازم را در Clause FROM فهرست کنید؛ 2) مقایسه یا مقایسه‌های مناسب Join را در Clause WHERE بنویسید؛ و 3) ستون‌هایی را که باید در نتیجه ظاهر شوند در Clause SELECT مشخص کنید.

SELECT PERSON, NAME, PERSONS.JOB, TITLE
FROM PERSONS, JOBS
WHERE PERSONS.JOB = JOBS.JOB;
  • چند جدول در Clause FROM مشخص می‌شوند.
  • مقایسه‌های Join در Clause WHERE نوشته می‌شوند.
  • هرجا لازم باشد از نام کامل ستون استفاده می‌شود.
اسکن صفحه 58 فایل PDFتصویر کامل صفحه 58 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 58 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Joinها - ادامه

توجه کنید که اکنون Clause SELECT نام کامل ستون را می‌پذیرد، FROM از فهرست جدول‌ها پشتیبانی می‌کند و WHERE می‌تواند مقایسه ستون با ستون داشته باشد.

SELECT [ DISTINCT ] col [ AS alias ] list
FROM table list
WHERE column = column
GROUP BY ...
HAVING ...
ORDER BY ...

-- Example
SELECT NAME, PERSONS.JOB, TITLE
FROM PERSONS, JOBS
WHERE PERSONS.JOB = JOBS.JOB;

تمرین‌ها

  1. نام و زبان مادری هر دانشمندی را که در قرن بیستم متولد شده فهرست کنید. نتیجه 6 سطر دارد.
  2. کشور، GNP و بودجه نظامی را برای همه کشورهایی که بیش از 100 میلیون نفر جمعیت دارند فهرست کنید. نتیجه 8 سطر دارد.
  3. پرس‌وجوی قبلی را تغییر دهید تا درصد GNP صرف‌شده برای ارتش را نیز شامل شود.

امتیاز اضافه

  1. تقریباً چند نفر از اعضای ارتش آلمان پروتستان هستند؟
اسکن صفحه 59 فایل PDFتصویر کامل صفحه 59 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 59 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

نام مستعار جدول‌ها

کلیدواژه AS را می‌توان در Clause FROM برای تعریف نام مستعار جدول (Table Alias)، یعنی نامی که کاربر به جدول اختصاص می‌دهد، استفاده کرد. برای هر جدول می‌توان Alias تعیین کرد، اما کاربرد رایج آن در پرس‌وجوهای چندجدولی و کوتاه‌کردن نام کامل ستون‌هاست.

SELECT PERSON, NAME, PERSONS.JOB, TITLE
FROM PERSONS, JOBS
WHERE PERSONS.JOB = JOBS.JOB;

SELECT PERSON, NAME, P.JOB, TITLE
FROM PERSONS AS P, JOBS AS J
WHERE P.JOB = J.JOB;
  • Alias جدول در Clause FROM تعریف می‌شود.
  • Alias جدول را می‌توان در هر Clause استفاده کرد.
  • پس از تعریف Alias، نام اصلی جدول در همان پرس‌وجو دیگر قابل استفاده نیست.
  • در بعضی گویش‌ها AS اختیاری است.
اسکن صفحه 60 فایل PDFتصویر کامل صفحه 60 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 60 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

نام مستعار جدول‌ها - ادامه

در نحو فعلی، Alias جدول به Clause FROM افزوده شده است.

SELECT [ DISTINCT ] col [ AS alias ] list,
       expr [ AS alias ] list,
       func [ AS alias ] list
FROM table [ AS alias ] list
WHERE comparison
GROUP BY ...
HAVING ...
ORDER BY ...

-- Example
FROM PERSONS, JOBS AS J
WHERE PERSONS.JOB = J.JOB

تمرین‌ها

  1. با استفاده از Alias جدول، کشور، جمعیت و تعداد نیروها را برای هر کشوری که بیش از 100 میلیون نفر جمعیت دارد نمایش دهید. نتیجه 8 سطر دارد.
  2. همه زبان‌هایی را فهرست کنید که در کشورهایی با بیش از 90 درصد جمعیت مسلمان صحبت می‌شوند. از Alias جدول استفاده و تکراری‌ها را حذف کنید. 4 زبان وجود دارد.

امتیاز اضافه

  1. نام، عنوان شغل و زبان مادری همه افرادی را که پیش از 1 ژانویه 1400 متولد شده‌اند فهرست کنید. 10 نفر هستند.
اسکن صفحه 61 فایل PDFتصویر کامل صفحه 61 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 61 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Unionها

Union سطرهای دو پرس‌وجوی مشابه را در یک نتیجه بدون سطر تکراری ترکیب می‌کند. کلیدواژه UNION بین دو پرس‌وجو قرار می‌گیرد. اگر ORDER BY استفاده شود، باید فقط در پرس‌وجوی نهایی ظاهر شود و موقعیت ستون‌ها را مشخص کند.

SELECT COUNTRY
FROM COUNTRIES
WHERE POP > 200000000
UNION
SELECT COUNTRY
FROM RELIGIONS
WHERE RELIGION = 'ATHEISM'
  AND PERCENT > 30
ORDER BY 1;
  • تعداد و نوع ستون‌های دو پرس‌وجو باید با هم مطابقت داشته باشد.
  • UNION بین پرس‌وجوها قرار می‌گیرد.
  • ORDER BY در صورت استفاده باید آخرین Clause باشد.
  • ORDER BY باید موقعیت ستون‌ها را مشخص کند.
  • سطرهای تکراری در نتیجه وارد نمی‌شوند.
اسکن صفحه 62 فایل PDFتصویر کامل صفحه 62 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 62 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Unionها - ادامه

در نحو فعلی، Clause UNION به دستور SELECT افزوده شده است.

SELECT ...
FROM ...
WHERE ...
GROUP BY ...
HAVING ...
UNION
SELECT ...
ORDER BY ...

تمرین‌ها

  1. هشت کشوری را که بیش از 40٪ پروتستان هستند فهرست کنید؛ سپس چهار کشوری را که آلمانی صحبت می‌کنند فهرست کنید. دو نتیجه را Union کنید. نتیجه نهایی چند سطر دارد؟
  2. همه کشورهایی را که دانشمند تولید کرده‌اند با همه کشورهایی که بودجه نظامی بیش از 10 میلیارد دارند Union کنید. نتیجه را بر اساس نام کشور مرتب کنید. 12 سطر وجود دارد.

امتیاز اضافه

  1. نام شخص، کشور و زبان را در مواردی فهرست کنید که حرف دوم نام Z است.
اسکن صفحه 63 فایل PDFتصویر کامل صفحه 63 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 63 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

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

☆☆☆☆☆

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

 

0 نظر

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

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

0 / 500

اطلاعات تماس

  • آدرس:اصفهان-خیابان ام کلثوم غربی - بعد خیابان تخم چی - بیست متر بعد از پیتزا ننه شب - کوچه تعمیر گاه سمار زغالی - پلاک 354 - درب مشکی - طبقه هفتم
  • آدرس ایمیل:najafzade@gmail.com
  • وب سایت:http://www.a00b.com/
  • تلفن ثابت:(+98)9131253620
  • تلفن همراه:09131253620