پاورپوینت جلسه هشتم SQL (pptx) 17 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 17 اسلاید
قسمتی از متن PowerPoint (.pptx) :
جلسه هشتم
SQL
(ادامه)
1) زبان SQL
- انواع دستورات SQL
ادامه دستور Select
آنچه در اين جلسه مي خوانيد:
ادامه دستور Select
می دانيم که حاصل دستور Select یک جدول است. پس می توان از آن مجددا اطلاعاتی را
select کرد؛ به دو روش:
روش اول) ذخيره نتيجه select اول در قالب يک view و بعد Select کردن از View
Create view tmp as
Select * from S Where Field=‘Computer’
Select Id from tmp where name like ‘A%’
Select کردن از حاصل يک Select
رابطه S
2) مستقيم و بدون استفاده از view
زماني که با دستور پيچيده ای مواجه هستيم می توانيم آنرا به اين روش به دستورات ساده تر بشکنيم؛ يعني طي چند مرحله Select را اعمال کنيم.
Select کردن از حاصل يک Select
Select Id from (Select * from S Where Field=‘Computer’) tmp where
tmp.name like ‘A%’
زمانی که بخواهيم از ليست حاصل از Select فقط n رکورد اول را نشان دهد.
مثال: ليست 10 نفر اول ليست دانشجويان
Select Top(10) * from S
مثال: ليست 10 نفر اول ليست دانشجويان کامپيوتر
Select Top(10) * from S Where Field = ‘Computer’
مثال: ليست 10 نفر اول از ليست دانشجوياني که تاکنون درس نگرفته اند.
Select Top(10) * from S where Sid Not in (Select Sid from STC)
مثال: ليست 10 نفر سوم (21 تا 30 ام) از ليست دانشجويان.
(يعني اولين 10 نفری که Id آنها جزء 20 شماره اول ليست نيست)
Select Top(10) * from S where Sid Not in
(Select Top(20) Sid from S)
Select TOP(n)
20 شماره اول ليست
- زمانی کاربرد دارد که بخواهيم رکوردها را بر اساس مقدار يک يا چند فيلد گروهبندی کنيم.
بعد از اعمال اين عملگر، رکورد های جدول حاصل، هر يک نماينده يک گروه از رکوردها هستند.
بيشتر اوقات زمانی استفاده می شود که بخواهيم توابع ستونی (آماری) را روی دسته های رکوردها بصورت مجزا اعمال کنيم.
فقط عملگر Order By می تواند بعد از Group By بيايد.
عملگر Group By
مثال: ليست شماره دانشجويي هر دانشجو بهمراه ميانگين نمرات او.
در اين مثال بجای اعمال تابع Avg روی کل رکوردها بايد بصورت زيرعمل شود:
Select SId,Avg(mark) as average from STC Group By SId
عملگر Group By
رابطه S
رابطه STC (جدول نمرات)
Avg
Avg
هر رکورد در واقع نماينده يک گروه از رکوردها است
سوال: آيا در مثال قبل می توانستيم دستور زير را بنويسيم؟
Select SId,term,Avg(grade) from STC Group By SId
پاسخ: خير، چون گروهبندی فقط بر اساس شماره دانشجويي انجام شده، ميانگين بدست آمده بين نمرات مربوط به ترمهای مختلف است. پس ترم مشخصی وجود ندارد که آنرا در رکورد نماينده گروه قرار دهيم.
عملگر Group By
Avg
Avg