سبد خرید 0

وبلاگ

عملگر Exists در SQL Server

عملگر Exists چیست ؟

عملگر Exists یکی از امکانات توکار پایگاه داده SQL Server می باشد که به ما این امکان را میدهد تا بررسی کنیم که آیا  یک  sub query رکوردی را  به عنوان خروجی بر میگرداند یا خیر .

اگر sub query حداقل رکوردی را بازگرداند کورئری خارجی که sub query در آن قرار دارد اجرا می شود  و اگر sub query هیچ رکوردی را به عنوان نتیجه بر نگرداند کوئری خارجی که sub query در آن قرار دارد اجرا نمی شود  و خروجی کلی تمام دستورات خالی می باشد . در صورتی که   sub query  هیچ رکوردی را بازنگرداند خروجی آن False خواهد بود .

دستوراتی که exists را میتوان در آن بکار برد :

عملگر Exists را می توان در دستورات چهار عمل اصلی یعنی  insert,select,update,delete به کار برد .

شکل کلی استفاده از آن به صورت زیر می باشد :

چه چیزی به جای subquery قرار دهیم:

در syntax بالا که قرار داده شده است به جای subquery باید یک دستور select بنویسید . نوشتن دستوری به جز select با خطا مواجه خواهد شد .

نمونه ای تقریبا  کامل از syntax کامل Exists می تواند به صورت زیر باشد :

 برای  درک بهتر و نحوه کارکرد آن چند مثال را بیان خواهیم کرد ، ابتدا دو جدول با فیلد های زیر ایجاد کنید :

کوئری زیر را در نظر بگیرید :

 نتیجه ای به عنوان خروجی برگردانده می شود برابر است با : 2750

در کوئری بالا ابتدا subquery که با رنگ آبی می باشد  اجرا می شود در subquery گفته ایم که تمام رکوردهایی از جدول Geography انتخاب شوند که Region_Name آنها برابر با West باشد که یک رکورد نتیجه آن می باشد و طبق توضیحاتی که بیان کردیم در صورتی که subquery حداقل یک رکورد را برگرداند کوئری اصلی اجرا می شود و در کورئری اصلی (خارجی) جمع تمامی رکورد های جدول Store_Information را محاسبه میکند.

کوئری زیر را در نظر بگیرید :

خروجی کوئری فوق چه خواهد بود ؟ اگر حدس زده اید که تمام رکورد های جدول store_information باید بگویم که نتیجه فقط دو رکورد خواهد بود .

کوئری فوق رکوردی هایی از جدول stote_information را بر میگرداند که حداقل دارای  یک رکورد با مقدار یکسان store_name در جدول geography باشد .

به عنوان مثال ، دو جدول زیر را در نظر بگیرید :

نتیجه کوئری زیر انتخاب تمامی رکوردهایی از جدول Stores می باشد که حداقل دارای یک رکورد معادل با مقدار یکسان Storecode می باشند به همین دلیل خروجی کوئری زیر فقط یک رکورد  با مقدار StoreCode=Test در جدول Stores می باشد.

نتیجه کوئری زیر تمام  رکوردی های جدول Stores می باشد :

 

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید

keyboard_arrow_up