9. ӨС-ийн боловсруулалт Select команд Үндсэн үйлдлүүд Гадаад холболт SELECT команданд зүүн гадаад холболтыг Left Outer Join гэж заадаг Select < харьцаа1>.<талбар1>,<харьцаа1>.<талбар2>,... <харьцаа2>.<талбар1>, <харьцаа2>. <талбар2>, ... From <эх харьцаа> Left Outer Join <охин харьцаа> On <харьцаа1>.<түлхүүр> =<харьцаа2>.<түлхүүр>
10. ӨС-ийн боловсруулалт Select команд Гадаад холболт Баруун гадаад холболтыг Right Outer Join гэж заадаг Select < харьцаа1>.<талбар1>, харьцаа1>.<талбар2>,... <харьцаа2>.<талбар1>,<харьцаа2>.<талбар2>,… From <охин харьцаа> Right Outer Join <эх харьцаа> On <харьцаа1>.<түлхүүр> =<харьцаа2>.<түлхүүр>
11. ӨС-ийн боловсруулалт Select команд Гадаад холболт Жишээ нь: оюутан ба мэргэжил хүснэгтүүдийг гадаадаар холбох Select St. *, Pr. Prof_Name From Student St Left Outer Join Profession Pr On St. Prof_ID = Pr. Prof_ID Оюутны код Оюутны нэр Мэрг. код Мэрг. нэр SW99B027 Д.Болор D484105 Комп.ПХ SW99B028 Х.Тамир D484105 Комп.ПХ SW99B029 M.Сувд D484110 Комп.ТХ SW99B039 С. Баяр D484112
12. Зэрэгцээ гадаад холболт Жишээ1: Оюутны цагийн ачааллыг бодохын тулд хичээл сонголт ( Student _Course) гэсэн гол мэдээллийг агуулж буй хүснэгтийг эх болгон, түүн рүү ( Course) , хичээлийн хэлбэрийг ( Course_Type) хоёрыг зэрэг холбоё SELECT St_Crs. St_ID, Crs. *, Crs_T.Type, Crs_T. Hour FROM Student _Course St_Crs LEFT OUTER JOIN Course Crs ON St_Crs.Crs_ID=Crs.Crs_ID, LEFT OUTER JOIN Course_type Crs_T O N St_Crs. Crs_ID=Crs_T. Crs_ID INTO TEMP Student_Hour ӨС-ийн боловсруулалт Select команд Гадаад холболт
13. ӨС-ийн боловсруулалт Select команд Гадаад холболт Дараалсан гадаад холболт Жишээ1-ийг оюутны хичээл сонголт ( Student _Course) гэсэн гол мэдээллийг агуулж буй хүснэгтийг эх болгон, түүн рүү 1-рт хичээлийг ( Course) , 2-рт хичээлийн хэлбэрийг ( Course_Type) холбож бас болох боловч илүү Select хийгдэнэ. SELECT St_Crs. St_ID, Crs. *, Crs_T.Type, Crs_T. Hour FROM ( SELECT St_Crs. St_ID, Crs. * FROM Student _Course St_Crs LEFT OUTER JOIN Course Crs ON St_Crs.Crs_ID=Crs.Crs_ID) LEFT OUTER JOIN Course_type Crs_T O N St_Crs. Crs_ID=Crs_T. Crs_ID INTO TEMP Student_Hour
14. Буруу холболтын жишээ Харин жишээ1-ийг хичээл( Course) , хичээлийн хэлбэрийг ( Course_Type) гэсэн мэдээллийг түрүүлж холбоход тухайн улиралд ордоггүй, нэг ч оюутан сонгоогүй хичээлүүд үр ашиггүй холбогдоно SELECT St_Crs. St_ID, Crs. *, Crs_T.Type, Crs_T. Hour FROM (SELECT Crs. *, Crs_T.Type, Crs_T. Hour FROM Course Crs INNER JOIN Course_type Crs_T ON Crs.Crs_ID=Crs_T. Crs_ID ) LEFT OUTER JOIN Student _Course St_Crs O N Crs.Crs_ID=St_Crs. Crs_ID INTO TEMP Student_Hour ӨС-ийн боловсруулалт Select команд Гадаад холболт
16. ӨС-ийн боловсруулалт Select команд Эрэмбэлэлт Хайлтын үр дүнг эрэмбэлэх Хайлтын үр дүнг тодорхой эрэмбэтэй гаргая гэвэл Select командыг дараахи хэлбэрээр хэрэглэнэ Select < талбарын жагсаалт> From <хүснэгтийн нэр> Order By <эрэмбэлэх түлхүүр> Тайлбар: ORDER BY <эрэмбэлэх түлхүүр> - эрэмбэлэх түлхүүр талбар Олон талбараар эрэмбэлэх үед талбаруудыг таслалаар тусгаарлаж заана
17. ӨС-ийн боловсруулалт Select команд Бүлэглэлт Бүлэглэх Select командын ерөнхий хэлбэр SELECT <талбаруудын жагсаалт> FROM <хүснэгтийн нэр> GROUP BY <бүлэглэх түлхүүр> [ HAVING <бичлэг сонгох нөхцөл>] Тайлбар: GROUP BY <бүлэглэх түлхүүр>- бүлэглэх түлхүүр Олон талбараар бүлэглэх үед талбаруудыг таслалаар тусгаарлана HAVING <нөхцөл>-бүлэглэлтийн үр дүнгээс бичлэг сонгох HAVING –ийг GROUP BY заалтууртай давхар хэрэглэнэ
18. ӨС-ийн боловсруулалт Select команд Бүлэглэлт Бүлэглэлтийн жишээ Багшийн хичээлийн нэгтгэлийг гаргах Select T_ID As Багшийн код, COUNT (хичээлийн код) As Нийт хичээл, Sum (кредит) As Нийт кредит From COURSE Group by T_ID Order by T_ID Into temp Teacher_Courses
19. ӨС-ийн боловсруулалт Select команд Бүлэглэлт 2 хичээлтэй, 8-аас илүү кредит заасан багш нарын нэгтгэлийг гаргах Select T_ID As Багшийн код, Count (хичээлийн код) As Нийт хичээл, Sum (кредит) As Нийт кредит From COURSE Group by T_ID Having Нийт хичээл=2 and Нийт кредит>=8 Into temp Teacher_Courses