Pp Lect9
Upcoming SlideShare
Loading in...5
×
 

Pp Lect9

on

  • 1,309 views

 

Statistics

Views

Total Views
1,309
Views on SlideShare
1,309
Embed Views
0

Actions

Likes
0
Downloads
57
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Pp Lect9 Pp Lect9 Presentation Transcript

  • Лекц 9 ӨС-ийн боловсруулалт
    • Агуулга
    • Select команд
        • Хүснэгтүүдийг холбох
          • энгийн холболт
          • гадаад холболт
        • Эрэмбэлэлт,бүлэглэлт
  • ӨС-ийн боловсруулалт Select команд Үндсэн үйлдлүүд
    • Хүснэгтүүд холбох -Энгийн холболт
    • SELECT < хүснэгт1>.<талбар1>, <хүснэгт1>.<талбар2>, <хүснэгт2>.<талбар1>, <хүснэгт2>. <талбар2>,...
    • FROM <хүснэгт1> INNER JOIN < хүснэгт2>
    • ON <хүснэгт1>.<түлхүүр >=<хүснэгт2>.<түлхүүр >
    • Талбарыг ямар хүснэгтээс уншихыг заахын тулд хүснэгтийн нэр, талбарын нэр хоёрыг цэгээр тусгаарлаж өгнө
  • ӨС-ийн боловсруулалт Select команд Энгийн холболт
    • Жишээ нь: Оюутан ба оюутны мэргэжил хүснэгтийг мэргэжлийн кодоор холбож оюутны мэргэжлийг дэлгэрүүлж гаргах
    • Select St.*, Pr. Prof_Name
    • From Students St Inner Join Profession Pr
    • ON St. Prof_ID = Pr. Pr_ID
    • Тайлбар: St.*- оюутан хүснэгтээс бүх талбарыг уншина
  • ӨС-ийн боловсруулалт Select команд Энгийн холболт
    • Зэрэгцээ энгийн холболт
    • Жишээ Оюутны 7 хоногийн цагийн ачааллыг бодох зорилгоор
    • Хичээл( Course) , Хичээлийн хэлбэр( Course_Type) , Оюутны хичээл сонголт( Student _Course) гэсэн 3 хүснэгтийг холбоё
    • SELECT St_Crs. St_ID, Crs. *, Crs_T.Type, Crs_T. Hour
    • FROM Course Crs INNER JOIN Course_type Crs_T
    • ON Crs. Crs_ID=Crs_T. Crs_ID,
    • INNER JOIN Student _Course St_Crs
    • ON Crs. Crs_ID=St_Crs.Crs_ID
    • INTO Student_Hour
  • ӨС-ийн боловсруулалт Select команд Энгийн холболт Үр дүнгийн Student_Hour хүснэгт St_ID Crs_ID Crs_Name Credit Type Hour HW03D025 SW207 ӨС 3 Лекц 2 HW03D025 SW207 ӨС 3 Семинар 2 HW03D025 SW230 Веб дизайн 2 Лекц 2 HW03D025 SW230 Веб дизайн 2 Лаборатор 1 SW03D026 SW207 ӨС 3 Лекц 2 SW03D026 SW207 ӨС 3 Семинар 2 SW03D026 SW230 Веб дизайн 2 Лекц 2 SW03D025 SW230 Веб дизайн 2 Лаборатор 1
  • ӨС-ийн боловсруулалт Select команд Энгийн холболт
    • Холболтын үр дүнгээс бичлэг сонгох
    • Жишээ Програм хангамжийн оюутнуудын 7 хоногийн цагийн ачааллыг бодоё гэвэл бичлэг сонгох үйлдэл нэмэгдэнэ
    • SELECT St_Crs. St_ID, Crs. *, Crs_T.Type, Crs_T. Hour
    • FROM Course Crs INNER JOIN Course_type Crs_T
    • ON Crs. Crs_ID=Crs_T. Crs_ID,
    • INNER JOIN Student _Course St_Crs
    • ON Crs. Crs_ID=St_Crs.Crs_ID
    • WHERE Left(St_ID, 2)=“SW”
    • INTO SW_student_hour
  • ӨС-ийн боловсруулалт Select команд Энгийн холболт
    • Эсвэл
    • SELECT St_Crs. St_ID, Crs. *, Crs_T.Type, Crs_T. Hour
    • FROM S tudent_Hour
    • WHERE Left(St_ID, 2)=“SW”
    • INTO SW_student_hour
    • Хуудас 4 дээрх Select – ийн Student_Hour гэсэн хайлтыг ашиглаж болно
  • ӨС-ийн боловсруулалт Select команд Энгийн холболт Үр дүнгийн SW_s tudent_hour хүснэгт St_ID Crs_ID Crs_Name Credit Type Hour SW03D026 SW207 ӨС 3 Лекц 2 SW03D026 SW207 ӨС 3 Семинар 2 SW03D026 SW230 Веб дизайн 2 Лекц 2 SW03D025 SW230 Веб дизайн 2 Лаборатор и 1
  • ӨС-ийн боловсруулалт Select команд Үндсэн үйлдлүүд
    • Гадаад холболт
    • SELECT команданд зүүн гадаад холболтыг Left Outer Join гэж заадаг
    • Select < харьцаа1>.<талбар1>,<харьцаа1>.<талбар2>,...
    • <харьцаа2>.<талбар1>, <харьцаа2>. <талбар2>, ...
    • From <эх харьцаа> Left Outer Join <охин харьцаа>
    • On <харьцаа1>.<түлхүүр> =<харьцаа2>.<түлхүүр>
  • ӨС-ийн боловсруулалт Select команд Гадаад холболт
    • Баруун гадаад холболтыг Right Outer Join гэж заадаг
    • Select < харьцаа1>.<талбар1>, харьцаа1>.<талбар2>,...
    • <харьцаа2>.<талбар1>,<харьцаа2>.<талбар2>,… From <охин харьцаа> Right Outer Join <эх харьцаа>
    • On <харьцаа1>.<түлхүүр> =<харьцаа2>.<түлхүүр>
  • ӨС-ийн боловсруулалт 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  
    • Зэрэгцээ гадаад холболт
    • Жишээ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 Student_Hour
    ӨС-ийн боловсруулалт Select команд Гадаад холболт
  • ӨС-ийн боловсруулалт 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 Student_Hour
    • Үр ашиггүй холболтын жишээ
    • Харин жишээ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 Student_Hour
    ӨС-ийн боловсруулалт Select команд Гадаад холболт
  • ӨС-ийн боловсруулалт Select команд Хүснэгтүүдийг холбох
    • Холболт хийхэд анхаарах зүйлс
    • Үр ашиггүй холболт хийхгүй байх
    • Тайлан боловсруулалтанд орох гол мэдээллийн хүснэгтүүдээ эхлэж холбох
      • ямар нэгэн vйл ажиллагааны бvртгэл дэх ө г ө гдлийг нэгтгэсэн тайлан
    • Гол мэдээллийг нэгтгэж боловсруулсны дараа бүртгэл дэх кодуудыг дэлгэрүүлж задлах зорилгоор лавлахуудыг холбож байх
    • Лавлахуудыг хооронд нь түрүүлж холбохгүй байх
  • ӨС-ийн боловсруулалт Select команд Эрэмбэлэлт
    • Хайлтын үр дүнг эрэмбэлэх
    • Хайлтын үр дүнг тодорхой эрэмбэтэй гаргая гэвэл Select командыг дараахи хэлбэрээр хэрэглэнэ
    • Select < талбарын жагсаалт> From <хүснэгтийн нэр> Order By <эрэмбэлэх түлхүүр>
    • Тайлбар:
      • ORDER BY <эрэмбэлэх түлхүүр> - эрэмбэлэх түлхүүр талбар
      • Олон талбараар эрэмбэлэх үед талбаруудыг таслалаар тусгаарлаж заана
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт
    • Бүлэглэх Select командын ерөнхий хэлбэр
    • SELECT <талбаруудын жагсаалт>
    • FROM <хүснэгтийн нэр>
    • GROUP BY <бүлэглэх түлхүүр>
    • [ HAVING <бичлэг сонгох нөхцөл>]
    • Тайлбар:
      • GROUP BY <бүлэглэх түлхүүр>- бүлэглэх түлхүүр
      • Олон талбараар бүлэглэх үед талбаруудыг таслалаар тусгаарлана
      • HAVING <нөхцөл>-бүлэглэлтийн үр дүнгээс бичлэг сонгох
      • HAVING –ийг GROUP BY заалтууртай давхар хэрэглэнэ
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт
    • Бүлэглэлтийн жишээ
    • Багшийн хичээлийн нэгтгэлийг гаргах
    • Select T_ID As Багшийн код,
    • COUNT (хичээлийн код) As Нийт хичээл,
    • Sum (кредит) As Нийт кредит
    • From COURSE Group by T_ID Order by T_ID
    • Into Lecturers_Courses
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт
    • 2 хичээлтэй, 8-аас илүү кредит заасан багш нарын нэгтгэлийг гаргах
    • Select T_ID As Багшийн код,
    • Count (хичээлийн код) As Нийт хичээл,
    • Sum (кредит) As Нийт кредит
    • From COURSE Group by T_ID
    • Having Нийт хичээл=2 and Нийт кредит>=8
    • Into Teacher_Courses
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт Үр дүнгийн Student_Hour хүснэгтээс оюутны хичээлийн ачааллыг улирлаар нэгтгэж гаргая Үүсэх бүлгүүд HW SW St_ID Crs_ID Credit Type Hour HW03D025 SW207 3 Лекц 2 HW03D025 SW207 3 Семинар 2 HW03D025 SW230 2 Лекц 2 HW03D025 SW230 2 Лаборатор 1 SW03D026 SW207 3 Лекц 2 SW03D026 SW207 3 Семинар 2
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт Нэгтгэлийн үр дүн Тэнхмийн код Суусан хичээлийн дундаж Дундаж цаг HW 20.5 41 SW 20.1 45 BA 14.5 29
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт Завсрын Query1
    • Select St_ID As Оюутны_ код,
    • Count(Crs_Type) As Суусан цаг.тоо ,
    • Sum(Crs_Type_Hour*15) As Суусан нийт цаг
    • From Student_hour Group by St_ID, Crs_ID Into Query1
    1 дэх шатанд оюутан тус бvрээр бvлэглэж нэгтгэлийг хийнэ St_Id Crs_ID Credit Type Hour HW03D025 SW207 3 Лекц 2 HW03D025 SW207 3 Семинар 2 HW03D025 SW230 2 Лекц 2 HW03D025 SW230 2 Лабора-тор 1 … … … … … SW03D026 SW207 3 Лекц 2 SW03D026 SW207 3 Семинар 2 Оюутны код Суусан цаг.тоо Суусан нийт цаг HW03D025 4 105 ... .. ... SW03D026 2 60
  • ӨС-ийн боловсруулалт Select команд Бүлэглэлт Завсрын Query1
    • Select Left( Оюутны код, 2 ) As Тэнхмийн код, Avg ( Суусан цаг. тоо ) As Суусан хичээлийн дундаж, Avr( Суусан нийт цаг) As Дундаж цаг
    • From Query1 Group by Left( Оюутны код, 2 )
    • Into Department_Totals
    Оюутны код Суусан цаг.тоо Суусан нийт цаг HW03D025 4 105 ... .. ... SW03D026 2 60 Тэнхмийн код Суусан хичээлийн дундаж Дундаж цаг HW 20.5 41 SW 20.1 45 BA 14.5 29
  • Унших материал
    • “ ӨС” ном, бүлэг 6
      • хуудас 62-71
      • хуудас 76-81
    • Харьцаа алгебрийн илэрхийлэл Select командыг харьцуулж унших