• 1. WHERE orqali jadvallarni bog`lash
  • Ko`p jadvalli SQL so`rovlar




    Download 1,82 Mb.
    bet14/20
    Sana27.05.2024
    Hajmi1,82 Mb.
    #254618
    1   ...   10   11   12   13   14   15   16   17   ...   20
    Bog'liq
    4-maruza

    Ko`p jadvalli SQL so`rovlar


    Shu paytgacha faqat bitta jadvaldan ma`lumotlarni tanlash misollari keltirildi. Relyatsion amallarga mos bo`lgan bir nechta jadvallardan ma`lumotlar tanlab olishni ham bajarish mumkin. Buning uchun jadvallarning qaysidir atribut qiymatlari bir-biriga mutanosib bo`lishi talab etiladi. Ya`ni atributlarning nomi turlicha bo`lishi mumkin, lekin ulardagi ma`lumot turlari mos bo`lishi kerak. Qoidaga ko`ra, ma`lumotlar tanlab olinadigan jadvallar u yoki bu shaklda bir biri bilan bog`langan. Masalan, birga ko`p va x.k.
    Agar jadvalllar to`plam deb qaraladigan bo`lsa, umumiy holda to`plamlar ustida asosan quyidagi 3 amal bajariladi.

    • Kesishma – ikki yoki undan ko`p turlicha bo`lgan to`plamlarning umumiy elementlarini belgilash uchun foydalaniladi.

    • Ayirma – birinchi to`plamda mavjud, lekin ikkinchi to`plamda shu elementlar yo`q bo`lgan boshqa elementlarni tanlashda foydalaniladi

    • Birlashma – ikki yoki undan ko`p o`xshash bo`lgan to`plamlarni birlashtirishda ishlatiladi.

    Bundan ko`pjadvalli so`rovlarni uch guruhga ajratish mumkin:

    • WHERE - shartlar orqali jadvallarni bog`lash

    • JOIN – jadvallarni gorizontal birlashtirish bo`yicha amallar

    • UNION – so`rov natijalarini vertikal birlashtirish amallari.

    Endi jadvallarni o`zaro birlashtirish yoki bog`lash guruhlari bo`yicha amallarni misollar orqali ko`rib o`tiladi.

    1. WHERE orqali jadvallarni bog`lash


    Misol tariqasida yuqoridagi kabi kitoblar to`g`risida ma`lumot beruvchi ER-diagramma va uning bog`langan jadvallari berilgan bo`lsin. Diagrammadan ko`rinib turibdiki, Books va Avtor jadvallari id_avtor atributlari orqali, Books bilan Categiriya jadvallari esa id_cat atributlari orqali bog`langan.
    1-masala. SQL so`rov orqali barcha kitob nomi, muallifi va yilini matn ko`rinishda chiqarish talab etilgan bo`lsin.
    So`rovda bog`lanishni WHERE orqali ifodalash quyidagicha bo`ladi.
    SELECT Books.id_book, Books.name, Avtor.fio, Books.yil
    FROM Books, Avtor
    WHERE Books.id_avtor = Avtor.id_avtor
    Ko`rinib turganidek jadval nomidan iborat prefiksdan foydalanish so`rovni murakkablashtiradi. Bunday murakkablikni bartaraf etish uchun alias (psevdonim) ishlatiladi. Yuqoridagi so`rovni quyidagicha yozish mumkin:
    SELECT B.id_book, B.name, A.fio, B.yil
    FROM Books B, Avtor A
    WHERE B.id_avtor = A.id_avtor


    Books


    Download 1,82 Mb.
    1   ...   10   11   12   13   14   15   16   17   ...   20




    Download 1,82 Mb.