Subquery در SQL - تک‌مقداری، چندمقداری و هم‌بسته | آموزش SQL Server

Subquery در SQL - تک‌مقداری، چندمقداری و هم‌بسته

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

نظرات 0

Subquery در SQL - تک‌مقداری، چندمقداری و هم‌بسته

عنوان اصلی: Queries Within Queries
عنوان ترجمه: Subquery در SQL - تک‌مقداری، چندمقداری و هم‌بسته
صاحب/سازمان اثر: Relational Systems Corporation
زبان اصلی: انگلیسی
حق نشر منبع: Copyright © 2001
تاریخ ترجمه: 2026-08-13 / 1405/05/22
اعتبار ترجمه: ترجمه با کمک هوش مصنوعی
بازه صفحات PDF: 64 تا 70

7 - پرس‌وجو درون پرس‌وجو

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

Subqueryهای تک‌مقداری

Subquery تک‌مقداری (Single-Valued Subquery) پرس‌وجویی است که 1) نتیجه‌ای با یک ستون و یک سطر تولید می‌کند و 2) در Clause WHERE یک پرس‌وجوی دیگر «تو در تو» می‌شود. Subqueryها باید داخل پرانتز قرار گیرند.

SELECT AVG(POP)
FROM COUNTRIES;

SELECT COUNTRY, POP
FROM COUNTRIES
WHERE POP > 30150531;

SELECT COUNTRY, POP
FROM COUNTRIES
WHERE POP > (SELECT AVG(POP)
             FROM COUNTRIES);
  • پرس‌وجوهای تک‌مقداری را می‌توان در مقایسه‌ها استفاده کرد.
  • Subqueryها داخل پرانتز قرار می‌گیرند.
اسکن صفحه 65 فایل PDFتصویر کامل صفحه 65 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 65 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Subqueryهای تک‌مقداری - ادامه

در نحو فعلی، Subquery تک‌مقداری به Clause WHERE افزوده شده است.

SELECT ...
FROM ...
WHERE column operator ( subquery )

-- Example
WHERE POP > (SELECT AVG(POP) FROM COUNTRIES)

تمرین‌ها

  1. بزرگ‌ترین جمعیت را در میان همه کشورها پیدا کنید. سپس همان پرس‌وجو را به‌عنوان Subquery استفاده کنید تا همه ستون‌های کشوری را که بیشترین جمعیت دارد نمایش دهید.
  2. همه ستون‌های ارتش‌هایی را نمایش دهید که بودجه‌شان از میانگین بودجه همه ارتش‌ها بیشتر است. نتیجه 5 سطر دارد.

امتیاز اضافه

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

Subqueryهای چندمقداری

Subquery چندمقداری (Multi-Valued Subquery) پرس‌وجویی است که 1) نتیجه‌ای تک‌ستونه با صفر، یک یا چند سطر برمی‌گرداند و 2) در Clause WHERE پرس‌وجوی دیگری تو در تو می‌شود. Subqueryهای چندمقداری همیشه پس از عملگر IN می‌آیند.

SELECT DISTINCT JOB
FROM PERSONS
WHERE GENDER = 'FEMALE';

SELECT JOB, TITLE
FROM JOBS
WHERE NOT JOB IN ('W', 'R', 'S', 'M');

SELECT JOB, TITLE
FROM JOBS
WHERE NOT JOB IN
      (SELECT DISTINCT JOB
       FROM PERSONS
       WHERE GENDER = 'FEMALE');

Subqueryهای چندمقداری پس از عملگر IN قرار می‌گیرند.

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

Subqueryهای چندمقداری - ادامه

در نحو فعلی، Subquery چندمقداری به Clause WHERE افزوده شده است.

WHERE column IN ( subquery )
-- Example
WHERE JOB IN (SELECT DISTINCT JOB ...)

تمرین‌ها

  1. فهرستی از کشورهایی بسازید که نرخ سوادشان کمتر از 50٪ است. سپس آن پرس‌وجو را به‌کار ببرید تا همه ستون‌های نویسندگانی را نشان دهید که در هر یک از آن کشورها متولد شده‌اند. 2 سطر وجود دارد.
  2. همه ستون‌های افرادی را نمایش دهید که در کشورهایی با بیش از 95٪ جمعیت کاتولیک متولد شده‌اند. 13 نفر وجود دارند.

امتیاز اضافه

  1. همه ستون‌های رهبران نظامی را نشان دهید که در کشورهای انگلیسی‌زبان متولد شده‌اند و ارتش آن کشور کمتر از میانگین تعداد نیروها را دارد. 2 سطر وجود دارد.
اسکن صفحه 68 فایل PDFتصویر کامل صفحه 68 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 68 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Subqueryهای هم‌بسته

Subquery هم‌بسته (Correlated Subquery) یک Subquery تک‌مقداری یا چندمقداری است که از طریق Alias جدولی تعریف‌شده در Clause FROM پرس‌وجوی بیرونی، به پرس‌وجوی بیرونی ارجاع می‌دهد. این Subquery برای هر سطر پرس‌وجوی بیرونی یک‌بار اجرا می‌شود.

SELECT JOB, NAME
FROM PERSONS
WHERE JOB = 'S'
  AND BDATE =
      (SELECT MIN(BDATE)
       FROM PERSONS
       WHERE JOB = 'S');

SELECT JOB, NAME
FROM PERSONS AS P
WHERE BDATE =
      (SELECT MIN(BDATE)
       FROM PERSONS
       WHERE JOB = P.JOB);
  • Subqueryهای هم‌بسته چند بار اجرا می‌شوند.
  • Subqueryهای هم‌بسته به Alias جدول نیاز دارند.
اسکن صفحه 69 فایل PDFتصویر کامل صفحه 69 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 69 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

Subqueryهای هم‌بسته - ادامه

نحو فعلی نشان می‌دهد Subquery هم‌بسته می‌تواند تک‌مقداری یا چندمقداری باشد و به Alias جدول نیاز دارد.

SELECT ...
FROM table AS alias
WHERE column operator
      (SELECT ... WHERE inner_column = alias.outer_column)
-- or
WHERE column IN
      (SELECT ... WHERE inner_column = alias.outer_column)

تمرین‌ها

  1. شغل و نام جوان‌ترین فرد هر حرفه را نشان دهید. نتیجه 7 سطر دارد و افرادی مانند Grisham، Mountbatten و Forbes را شامل می‌شود.
  2. با یک پرس‌وجوی واحد دارای Subquery هم‌بسته، همه ستون‌های جوان‌ترین مرد و جوان‌ترین زن را نشان دهید. چه ویژگی دیگری میان آن‌ها مشترک است؟

امتیاز اضافه

  1. دین غالب هر کشور آلمانی‌زبان را پیدا کنید. جدول نتیجه 4 سطر دارد.
اسکن صفحه 70 فایل PDFتصویر کامل صفحه 70 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 70 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

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

☆☆☆☆☆

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

 

0 نظر

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

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

0 / 500

اطلاعات تماس

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