• Join, Left Join, Right Join, Full Join, Cross Join, Natural Join
  • AuthorID AuthorName
  • BookID BookName
  • A.AuthorID A.AuthorName B.BookID B.BookName
  • Ma’lumot bazasi modellari




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

    id_book

    name

    id_cat

    page

    id_avtor

    yil

    1

    Odamiylik Mulki

    4

    980

    1

    2016

    2

    Ikki eshik orasi

    1

    450

    2

    1996

    3

    Ikki eshik orasi

    1

    460

    2

    2000

    4

    Ikki eshik orasi

    1

    380

    2

    2012

    5

    Sariq devni minib

    5

    220

    3

    1990

    6

    Sariq devni minib

    5

    180

    3

    2005

    7

    Shaytanat

    2

    1250

    1

    2018

    8

    Dexqon va ayiq

    5

    100

    5

    2019

    9

    Eng katta sexr

    5

    230

    5

    2020

    10

    Nafs kishanlari

    4

    240

    1

    2015

    11

    Samum

    2

    380

    1

    2012

    12

    Jannati odamlar

    4

    210

    3

    1996

    13

    Shirin qovunlar mamlakati

    5

    180

    3

    1986

    14

    Qora tol

    1

    350

    4

    1988

    15

    Dala armonlari

    1

    450

    4

    1967

    16

    Mangu buloq

    4

    360

    4

    1970

    17

    Sehrli qalpoqcha

    3

    250

    3

    1964

    18

    Dunyoning ishlari“

    4

    280

    2

    2005

    19

    Shaytanat

    2

    960

    1

    2020




    Avtor

    id_avtor

    fio

    1

    Toxir Malik

    2

    O`tkir Hoshimov

    3

    Xudayberdi To`xtaboyev

    4

    Ibraym Yusupov

    5

    Xalq ogzaki ijodi

    Categiriya

    id_cat

    name_cat

    1

    Tarixiy

    2

    Detektiv

    3

    Fantastik

    4

    Tarbiyaviy

    5

    Ertak




    Keltirilgan ko`p jadvalli so`rov bir jadvalli so`rovdan quyidagilar bilan farq qiladi.



        1. FROM sektsiyasida ikkita jadval ko`rsatilgan.

    1. jadvallr soni bitta ko`p, shuning uchun ko`rsatilgan maydonlar nomining bir qiymatliligi yo`qoladi. Masalan, ko`p xollarda maydonni FROM da ko`rsatilgan jadvallar ro`yxatidagi qaysi jadvaldan olish noma`lum bo`lib qoladi. Maydon nomlarining ko`p qiymatliligini bataraf etish uchun maydon nomida perefiks - jadval nomi qo`shimcha qilinadi. Jadval nomi maydon nomidan nuqta bilan ajratiladi.

    2. WHERE ifodasida jadvallarni birlashtirish sharti ko`rsatiladi.

    Yuqoridagi ikki yoki undan ko`p amallarni o`zaro bog`lashda, jadvallardagi mos quyilayotgan atributlarning qiymati bittalab tekshiriladi. Bu esa so`rov bajarilishi uchun ortiqcha resurs zaruriyatini keltirib chiqaradi.
    2-masala. 2005 yildan keyin chop etilgan adabiyotlarni muallifi, kategriyasi va saxifalari bilan chiqarish talab etilgan bo`lsin.
    SELECT B.name, A.fio, C.name_cat, B.page
    FROM Books B, Avtor A, Categoria C
    WHERE B.id_avtor = A.id_avtor AND
    B.id_cat = C.id_cat AND B.yil > 2005
    So`rov natijasi quyidagicha bo`ladi.

    name

    fio

    name_cat

    page

    Ikki eshik orasi

    Utkir Hoshimov

    Tarixiy

    380

    Shaytanat

    Toxir Malik

    Detektiv

    1250

    Samum

    Toxir Malik

    Detektiv

    380

    Shaytanat

    Toxir Malik

    Detektiv

    960

    Odamiylik Mulki

    Toxir Malik

    Tarbiyaviy

    980

    Nafs kishanlari

    Toxir Malik

    Tarbiyaviy

    240

    Sariq devni minib

    Xudayberdi To`xtaboyev

    Ertak

    180

    Dexqon va ayiq

    Xalq ogzaki ijodi

    Ertak

    100

    Eng katta sexr

    Xalq ogzaki ijodi

    Ertak

    230

    2. JOIN orqali jadvallarni gorizontal birlashtirish


    Ko`pchilik holatlarda butun MBdan amaliy ahamiyatli natijalarni olishda ko`p jadvalli murakkab so`rovlarni yaratishga to`g`ri keladi. Hozirgi kunda MBBTlarida bir nachta jadvallarning mos atributlari bo`yicha o`zaro bog`lanishni ta`minlovchi standartlar mavjud. Bular zarur ma`lumotlarni turli jadvallardan olishda jadvallarni o`zaro gorizontal bog`lanishni (JOIN) ta`minlaydi. Bu yerda o`ng tomon va chap tomon jadvallar tegishli artibutlari biror shart asosida birlashtiriladi. Gorizontal bog`lanish bir nechta turga ajratiladi: Join, Left Join, Right Join, Full Join, Cross Join, Natural Join.
    Bizga Authors va Books jadvallari berilib bu jadvallarni vertikal birlashtirishda ularning mos AuthorID va BookID atributlari qaraladi.

    Authors

    AuthorID

    AuthorName

    1

    Bruce Eckel

    2

    Robert Lafore

    3

    Andrew Tanenbaum




    Books

    BookID

    BookName

    3

    Modern Operating System

    1

    Thinking in Java

    3

    Computer Architecture

    4

    Programming in Scala




    JOIN – chap va o`ng tomondagi jadvallar birlashtiriladi va mos qo`yilgan atributlar orasidagi shart bajarilganda javob (yozuv) qaytariladi
    chap_jadval INNER JOIN o`ng_jadval ON bog`lanish_sharti

    INNER JOIN sintaksisi:
    SELECT maydon nomlari [,... n]
    FROM Jadval_1
    INNER JOIN Jadval _2 ON bog`liqlik_sharti
    Misol:
    SELECT * FROM Authors A
    INNER JOIN Books B ON A.AuthorID = B.BookID
    Natija

    A.AuthorID

    A.AuthorName

    B.BookID

    B.BookName

    3

    Andrew Tanenbaum

    3

    Modern Operating System

    1

    Bruce Eckel

    1

    Thinking in Java

    3

    Andrew Tanenbaum

    3

    Computer Architecture

    LEFT JOIN – chap tomon jadvalining barcha qatori qaytariladi. Bu qaytarilayotgan qiymatlarga mos o`ng tomon jadvalidan mos qiymatlar olinadi, agar mos qiymati bo`lmasa bo`sh qiymat (NULL) qaytariladi
    chap_jadval LEFT OUTER JOIN o`ng_jadval ON bog`lanish_sharti

    LEFT JOIN sintaksisi:
    SELECT maydon nomlari [,... n] FROM Jadval_1
    LEFT OUTER JOIN Jadval _2 ON bog`liqlik_sharti
    Misol:
    SELECT * FROM Authors A
    LEFT OUTER JOIN Books B ON A.AuthorID = B.BookID
    Natija

    A.AuthorID

    A.AuthorName

    B.BookID

    B.BookName

    1

    Bruce Eckel

    1

    Thinking in Java

    2

    Robert Lafore

    NULL

    NULL

    3

    Andrew Tanenbaum

    3

    Modern Operating System

    3

    Andrew Tanenbaum

    3

    Computer Architecture

    LEFT JOIN orqali chap tomon jadvalining o`ng tomon jadvaliga tegishli bo`lmagan qatorlaridan holi qatorlarini ajratib olish mumkin. Ya`ni chap tomon jadvalidan o`ng tomon jadval elementlarini ayirib chap tomon jadval qatorlarini chiqarish mumkin.
    chap_jadval LEFT OUTER JOIN o`ng_jadval ON bog`lanish_sharti WHERE o`ng_jadval IS NULL

    Misol:
    SELECT * FROM Authors A
    LEFT OUTER JOIN Books B ON A.AuthorID = B.BookID
    WHERE B.BookID IS NULL
    RIGHT JOIN – o`ng tomon jadvalining barcha qatori qaytariladi. Bu qaytarilayotgan qiymatlarga mos chap tomon jadvalidan mos qiymatlar olinadi, agar mos qiymati bo`lmasa bo`sh qiymat (NULL) qaytariladi
    chap_jadval RIGHT OUTER JOIN o`ng_jadval ON bog`lanish_sharti

    RIGHT JOIN sintaksisi:
    SELECT maydon nomlari [,... n] FROM Jadval_1
    RIGHT OUTER JOIN Jadval _2 ON bog`liqlik_sharti
    Misol:
    SELECT * FROM Authors A
    RIGHT OUTER JOIN Books B ON A.AuthorID = B.BookID
    Natija

    A.AuthorID

    A.AuthorName

    B.BookID

    B.BookName

    3

    Andrew Tanenbaum

    3

    Modern Operating System

    1

    Bruce Eckel

    1

    Thinking in Java

    3

    Andrew Tanenbaum

    3

    Computer Architecture

    NULL

    NULL

    4

    Programming in Scala

    RIGHT JOIN orqali o`ng tomon jadvalining chap tomon jadvaliga tegishli bo`lmagan qatorlaridan holi qatorlarini ajratib olish mumkin. Ya`ni o`ng tomon jadvalidan chap tomon jadval elementlarini ayirib o`ng tomon jadval qatorlarini chiqarish mumkin.

    Download 1,82 Mb.
    1   ...   12   13   14   15   16   17   18   19   20




    Download 1,82 Mb.