تالار گفتمان مانشت

نسخه‌ی کامل: دو سوال از SQL
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
Heart با سلام و احترام خدمت دوستان عزیز
دو سوال پایگاه زیر رو ضمیمه کردم یه لطف کنید بررسی بفرمایید و بفرمایید کدوم گزینه صحیح هست با تشکر فراوان
(18 شهریور 1396 09:10 ب.ظ)امیدوار نوشته شده توسط: [ -> ]Heart با سلام و احترام خدمت دوستان عزیز
دو سوال پایگاه زیر رو ضمیمه کردم یه لطف کنید بررسی بفرمایید و بفرمایید کدوم گزینه صحیح هست با تشکر فراوان

سلام،دوست عزیز از این به بعد تصویر با کیفیت بزارید.
سوال اول:
گزینه ۳ درسته
گزینه ۲و۴ غلطه چون شرط پیوند درست نیست.
گزینه سوم را انتخاب کردم چون انتخاب درست تری نسبت به گزینه یک است.
===================================================================

سوال دوم:
گزینه ۱ درسته.
گزینه دوم غلطه .Having باید با Group By همراه باشد.
گزینه سوم غلطه .چون از Alias در Having استفاده شده است.
گزینه چهار غلطه . در Where,Group By حق گذاشتن alias ندارید.اما در Order By میتوانید alias استفاده کنید(البته اینجا order by )نداریم.
درثانی اول Where میاد بعد Group By.
ترتیب اجرا دستورات :
۱-ّfrom
۲-where
۳-select
وقتی شما alias در Where میزارید به خاطر ترتیب اجرای دستورات اصلا alias را تشخیص نمیدهد.
(18 شهریور 1396 10:22 ب.ظ)James Sullivan نوشته شده توسط: [ -> ]
(18 شهریور 1396 09:10 ب.ظ)امیدوار نوشته شده توسط: [ -> ]Heart با سلام و احترام خدمت دوستان عزیز
دو سوال پایگاه زیر رو ضمیمه کردم یه لطف کنید بررسی بفرمایید و بفرمایید کدوم گزینه صحیح هست با تشکر فراوان

سلام،دوست عزیز از این به بعد تصویر با کیفیت بزارید.
سوال اول:
گزینه ۳ درسته
گزینه ۲و۴ غلطه چون شرط پیوند درست نیست.
گزینه سوم را انتخاب کردم چون انتخاب درست تری نسبت به گزینه یک است.
===================================================================

سوال دوم:
گزینه ۱ درسته.
گزینه دوم غلطه .Having باید با Group By همراه باشد.
گزینه سوم غلطه .چون از Alias در Having استفاده شده است.
گزینه چهار غلطه . در Where,Group By حق گذاشتن alias ندارید.اما در Order By میتوانید alias استفاده کنید(البته اینجا order by )نداریم.
درثانی اول Where میاد بعد Group By.
ترتیب اجرا دستورات :
۱-ّfrom
۲-where
۳-select
وقتی شما alias در Where میزارید به خاطر ترتیب اجرای دستورات اصلا alias را تشخیص نمیدهد.

با سلام و احترام
با تشکر از اظهارنظرتون. و با عذرخواهی از این تصویر(متاسفانه تصویر بهتری نداشتم). فقط عزیز سوال دوم رو متوجه نشدم که چرا گزینه 3 غلطه. شما فرمودید گزینه 4 به این دلیل غلطه که alias در where و Group By آورده شده است. در گزینه 1 هم alias در where آورده شده است پس گزینه 1 هم غلط میشه
با تشکر
با کمال تشکر
(19 شهریور 1396 12:49 ب.ظ)امیدوار نوشته شده توسط: [ -> ]
(18 شهریور 1396 10:22 ب.ظ)James Sullivan نوشته شده توسط: [ -> ]
(18 شهریور 1396 09:10 ب.ظ)امیدوار نوشته شده توسط: [ -> ]Heart با سلام و احترام خدمت دوستان عزیز
دو سوال پایگاه زیر رو ضمیمه کردم یه لطف کنید بررسی بفرمایید و بفرمایید کدوم گزینه صحیح هست با تشکر فراوان

سلام،دوست عزیز از این به بعد تصویر با کیفیت بزارید.
سوال اول:
گزینه ۳ درسته
گزینه ۲و۴ غلطه چون شرط پیوند درست نیست.
گزینه سوم را انتخاب کردم چون انتخاب درست تری نسبت به گزینه یک است.
===================================================================

سوال دوم:
گزینه ۱ درسته.
گزینه دوم غلطه .Having باید با Group By همراه باشد.
گزینه سوم غلطه .چون از Alias در Having استفاده شده است.
گزینه چهار غلطه . در Where,Group By حق گذاشتن alias ندارید.اما در Order By میتوانید alias استفاده کنید(البته اینجا order by )نداریم.
درثانی اول Where میاد بعد Group By.
ترتیب اجرا دستورات :
۱-ّfrom
۲-where
۳-select
وقتی شما alias در Where میزارید به خاطر ترتیب اجرای دستورات اصلا alias را تشخیص نمیدهد.

با سلام و احترام
با تشکر از اظهارنظرتون. و با عذرخواهی از این تصویر(متاسفانه تصویر بهتری نداشتم). فقط عزیز سوال دوم رو متوجه نشدم که چرا گزینه ۳ غلطه. شما فرمودید گزینه ۴ به این دلیل غلطه که alias در where و Group By آورده شده است. در گزینه ۱ هم alias در where آورده شده است پس گزینه ۱ هم غلط میشه
با تشکر
با کمال تشکر

سلام
خواهش میکنم. چون اگر به ترتیب اجرای دستورات دقت کنید اول from به عنوان منبع داده(منبع داده ما جدولی است که از پیوند دو جدول ذکر شده حاصل میشه) بعد where اجرا میشه .در گزینه یک alias که استفاده شده در from است برای where قابل تشخیص هست.اما در گزینه ۴ ،alias استفاده شده مربوط به قسمت select هست وبا توجه به اجرای دستورات ،جلوی where این alias بزارید where اصلا این alias را نمی بیند متوجه منظور ما نمیشه.
لینک مرجع