تعداد فروش | 0 دانشجو |
---|---|
پرسش و پاسخ ها | 0 کاربر |
تاریخ انتشار | 02 خرداد 1402 |
سطح تمرین | متوسط |
در این تمرین قصد داریم با پیاده سازی چند جدول از سناریو فیلم تمرین کوئری نویسی سناریو فیلم را بررسی و پیاده سازی نماییم.
سوال:با توجه به رابطه زیر، سوالات را با استفاده از query مناسب بدست آورید.
ابتدا باید موجودیت های اصلی را داشته باشیم.
یعنی فیلم،بازیگر،ژانر فیلم که جزو اصلی ترین ها هستند.
پس به صورت زیر جدول آن ها ر ا ایجاد میکنیم.
مثال جبر رابطه ای سناریو نمرات دانشجویان
جدول فیلم و جدول ژانر فیلم به صورت زیر میباشد:
فیلم:
کد فیلم،نام فیلم، نوع فیلم و سال تولید و آیدی ژانر فیلم
ژانر فیلم:
کد ژانر، عنوان
در ادامه جدول بازیگر و بازی در فیلم را مشاهده میکنید.
بازیگر:
کد بازیگر،نام و نام خانوادگی،شهر
بازی در فیلم:
کد فیلم،کدبازیگر، میزان حقوق
همانطور که مشخص است یکسری بازیگر داریم و یکسری فیلم که قرار است این بازیگران در فیلم ها بازی کنند.
ژانر فیلم هم جزو دسته بندی فیلم ها محسوب میشود.
و جدول FA همان جدولی است که مشخص میکند کدام بازیگر در کدام فیلم بازی میکند.
با توجه به اطلاعاتی که از سناریو بدست آوردیم میخواهیم به سوالات زیر پاسخ دهیم.
الف) تمامی فیلم های ترسناک (عنوان و سال)
ب) تمام بازیگران تهرانی فیلم رز زرد که حقوق باالی 200 دارند
ج) تعداد فیلمهای هر ژانر
د) بازیگران مشترک در دو فیلم اخراجیها و جدایی نادر از سیمین
برای پاسخدهی به این سوالات ابتدا باید جداول را در SQL Server پیاده سازی کنیم.
این جداول توسط ما در SQL Server پیاده سازی شده که میتوانید پس از ثبت نام و یا ورود به حساب کاربری آن را دریافت نمایید.
تمرین نرمال سازی پایگاه داده ویدیو کلوپ
برای پاسخ به هر کدام از سوالات ابتدا باید جداولی که در کوئری ما قابل استفاده هستند را استخراج کنیم.
تو قسمت الف جدول فیلم و جدول ژانر دخیل هستند.
پس نیاز به جوین بین جدول فیلم و جدول ژانر داریم تا متوجه شویم هر فیلم چه ژانری دارد که حالا ترسناک را نمایش دهیم.
select * from Film,Type where Film.typeid = Type.id and Type.title = 'ترسناک'
نتیجه کوئری میشود فیلم رز زرد که ژانر ترسناک دارد.
برای پاسخ به این سوال باید سه جدول بازیگران، فیلم، بازی در فیلم را باهم جوین بزنیم.
سه شرط نیز برایمان مهم یکی اینکه حتما تهرانی باشند و دوم اینکه حقوق بالای 200 داشته باشند و اینکه در فیلم رز زرد بازی کنند.
پس باید این سه شرط را با هم and کنیم.
کوئری به صورت زیر میباشد:
select Actors.name,Actors.family from Film,Actors,FA where Film.id = FA.FID and Actors.id = FA.AID and FA.salary >= 200 and Actors.city ='تهران' and Film.title = 'رز زرد'
اگر کوئری بالا را نسبت به دیتا های سوال اجرا کنیم هیچ جوابی نخواهیم داشت.
چون مهناز افشار و مهران مدیری چون حقوق بیشتر از 200 ندارند نمایش داده نمیشوند.
اما کافیه حقوق مهناز افشار و یا مهران مدیری را در فیلم رز زرد بیشتر کنیم تا اطلاعاتشان را مشاهده کنیم.
در ادامه تمرین کوئری نویسی سناریو فیلم به جواب قسمت ج میپردازیم.
در این قسمت در ابتدا سوال به تعداد اشاره میشود پس باید از تابع count استفاده کنیم.
همچنین کلمه کلیدی ‘هر’ استفاده شده یعنی باید از group by استفاده کنیم تا بتوانیم گروه بندی کنیم.
پس کوئری را به صورت زیر مینویسیم:
نکته: پس از ثبت نام در وب سایت و یا ورود به حساب کاربری به تمامی جواب ها دسترسی خواهید داشت.
نمونه سوال sql از دانشگاه خارج کشور
برای اینکه بتوانیم بازیگران مشترک بین دو فیلم اخراجی ها و جدایی نادر از سیمین را بدست آوریم باید از دستور اشتراک استفاده کنیم.
یعنی ابتدا بازیگران هر دو فیلم را جداگانه استخراج و سپس از کلمه کلیدی intersect بین آن ها استفاده کنیم.
کوئری نمایش بازیگران فیلم اخراجی ها به صورت زیر میباشد:
select Actors.* from Film,Actors,FA where Actors.id = FA.AID and Film.id = FA.FID and Film.id = 1
در ادامه پس از ثبت نام میتوانید کوئری کامل را مشاهده نمایید.
در ادامه این پست سوالات جدید را در آینده بررسی خواهیم کرد.
پرسش و پاسخ ها
هنوز بررسیای ثبت نشده است.