• AND, OR va NOT
  • IS NOT NULL
  • BETWEEN
  • EXISTS
  • NOT IN yoki NOT BERWEEN
  • Shablon Tasnif ‘abc%`
  • NOT NULL va IS NOT NULL
  • Ma’lumot bazasi modellari




    Download 1,82 Mb.
    bet13/20
    Sana27.05.2024
    Hajmi1,82 Mb.
    #254618
    1   ...   9   10   11   12   13   14   15   16   ...   20
    Bog'liq
    4-maruza
    1 лаборатория, matematika 1qism 5 uzb, Dustmuhammmad jajonTarix kurs ishi, Jabborov M. 2, Mustaqil ish, 1678121470, Narziyev.REAL, Abdalova Z 2-G fizika optika kurs ishi, 5 sinf Informatika va axborot texnologiyalari fanidan elektron o’quv, FAYZULLAYEV DILMURODNING SUNNIY INTELEKTR, 2-мустакил иш, 48be4525-afa7-41fc-9aba-886b3a1862fd , yGasxtQ9l7TlEVfDMrX3KmMgKOaj6sQoShlI7Y86, 952-21 guruh Ismoilov J DTIYu fanidan 3, arxitektura
    id_st

    Surname



    id_ex

    Subject

    Date



    id_ex

    id_st

    mark

    1

    Xasanov




    1

    Matem

    10.05.2020




    2

    2

    3

    2

    Karimov




    2

    Fizika







    3

    1

    2

    3

    Jabborov




    3

    Informatika

    25.05.2020




    1

    1

    4






















    3

    2

    5






















    2

    1

    3






















    1

    2

    2






















    2

    3

    4






















    1

    3

    5






















    3

    3

    3

    Endi SQL so`rovlari oddiydan boshlab tuzishga misollar qaraladi.
    student jadvalidan barcha studentlar ro`yxatini tasvirlash.
    SELECT * FROM student
    yoki
    SELECT id_st, surname FROM student
    Yuqoridagi so`rovga ORDER BY surname ifodasi qo`shilsa, u holda ro`yxat familiya bo`yicha tartiblanadi. Jimlikka ko`ra tartiblash o`sish bo`yicha bajariladi. Jimlik o`rniga ASC so`zi ishlatiladi.
    Ms: student jadvalidan barcha studentlar ro`yxatini tartiblab tasvirlash.
    SELECT * FROM student
    ORDER BY surname
    Agar kamayish bo`yicha tartiblash kerak bo`lsa, u holda oxirgi ifodadagi atribut nomidan keyin DESC so`zi qo`shiladi.
    SELECT * FROM student
    ORDER BY DESC surname
    Alias qo`yish. Natijaviy jadval maydon nomlarini o`zgartirishda AS so`zidan foydalaniladi.
    SELECT id_st AS KOD, surname AS ‘FIO talaba`
    FROM student
    Eslatma. Agar aliasdagi maskalanuvchi matn bir nechta so`zdan iborat bo`lsa, ya`ni ular orasida probel bo`lsa, bu maska matni tirnoqchaga olinadi. Aks holda tirnoqchaga olish shart emas. So`rov natijasida qo`yidagicha bo`ladi.

    KOD

    FIO talaba

    1

    Xasanov

    2

    Karimov

    3

    Jabborov

    WHERE so`zidan keyin solishtirish amallarini (<, >, =, <> va x.k.) va mantiqiy operatorlar qatnashgan ifodalarni joylashtirish mumkin.
    «1» kodli student olgan baholar ro`yxatini tanlab olish va tasvirlash
    SELECT id_st, mark
    FROM mark_st
    WHERE id_st = 1

    SQL tilida bir nechta shartlarni birgalikda bajarilishi uchun AND, OR va NOT kabi mantiqiy operatorlar ishlatiladi.


    AND – mantiqiy “hamda”, “va” ma`nosini beradi. Ikki shart orasiga qo`yiladi (shart1 AND shart2). Ifoda True bo`lishi uchun ikkala shart ham rost bo`lishi kerak.
    OR – mantiqiy “yoki” ma`nosini beradi. Ikki shart orasiga qo`yiladi (shart1 AND shart2). Ifoda True bo`lishi uchun ikki shartdan birortasi rost bo`lishi kerak.
    NOT – bekorlash, emas ma`nosini beradi (invert shart). Mantiqiy ifoda True (False) bo`lganda unga teskari bo`lgan False (True) qiymatlarni qaytaradi (NOT mantiqiy ifoda). Har bir mantiqiy operator uchun “haqiqat” jadvalini ishlab chiqsh mumkin. Bunda qiymat NULL bo`lganda natija qanday bo`lishiga qarab qo`shimcha shart beriladi.






    AND







    OR




    NOT




    True

    False

    NULL







    True

    False

    NULL




    True

    False

    NULL

    True

    True

    False

    NULL




    True

    True

    True

    True




    False

    True

    NULL

    False

    False

    False

    False




    False

    True

    False

    False













    NULL

    NULL

    False

    NULL




    NULL

    True

    False

    NULL













    Shuningdek, SQL so`rovida atributning NULL qiymatlari va NULL ifodalar bilan ham ishlash mumkin. Bunda IS NOT NULL (NULL ekanligi) va NOT NULL (NULL emasligi) operatorlari mavjud.


    Mantiqiy operatorlarning bajarilishi jihatdan ularning ustivoligi quyidagicha belgilanadi:

    1. barcha mantiqiy ifoda qiymati hisoblanadi (True yoki False);

    2. NOT;

    3. AND;

    4. OR.

    Imtixonlarda 2 yoki 3 baho olgan studentlar kodini tanlab olish.
    SELECT id_st, mark
    FROM mark_st
    WHERE mark >= 2 AND mark <= 3
    Imtixonlarda 2 yoki 3 baho olmagan studentlar kodini tanlab olish.
    SELECT id_st, mark
    FROM mark_st
    WHERE NOT(mark = 2 OR mark = 3)
    SQL tilida shart ifodalarini tuzish uchun solishtirish va mantiqiy operatorlardan tashqari yana bir qator maxsus operatorlar qo`llaniladi. Bu operatorlar dasturlash tillarida mavjud emas. Bu operatorlar:

    • BETWEEN –qiymatlar diapozoniga tegishliligini tekshirish;

    • LIKE – namuna bilan mosligini tekshirish;

    • IS NULL – qiymat mavjudmasligini tekshirish;

    • IN – biror qiymatlar to`plamiga tegishliligini tekshirish;

    • ANY –qiymatlar to`plamiga tegishliligini shart asosida tekshirish;

    • ALL –qiymatlar to`plamiga to`liq tegishliligini tekshirish;

    • EXISTS - qism so`rovdan natija qaytarilishini tekshiradi.

    Endi ushbu peredikatlarga batafsil to`xtalib o`tiladi.
    BERWEEN peridikati maydon kiymatini berilgan intervalga kirganligini tekshirish uchun ishlatiladi.

    Yukoridagi natijani BETWEEN operatoridan foydalanib olish mumkin:
    SELECT id_st, mark
    FROM mark_st
    WHERE mark BETWEEN 2 AND 3
    Birorta ham 2, 3 olmagan talaba haqidagi ma`lumotlar olish uchun NOT IN yoki NOT BERWEEN orqali yoziladi.

    LIKE peridikati faqat simvolli maydonlar uchun qo`llaniladi va maydon qiymati operatorda ko`rsatilgan namunaga mosligini tekshirish imkonini yaratadi.



    Namuna quyidagi maxsus simvollardan tashkil topadi:

    • _ (tagiga chizish belgisi) – bitta ixtiyoriy simvolni bildiradi;

    • % (foiz belgisi) – ixtiyoriy miqdordagi simvollar ketma – ketligini bildiradi.

    Shablon

    Tasnif

    abc%`

    "abc" xarflar bilan boshlanuvchi ixtiyoriy kator.

    abc_`

    "abc" xarflar bilan boshlanuvchi va uzunligi 4 simvolli ixtiyoriy kator

    %z`

    "z" xarfi bilan yakunlanuvchi ixtiyoriy kator.

    %mos%`

    "mos" so`zi qatorning ixtiyoriy joyida keluvchiqkator.



    Misol: Familiyalari A xarfi bilan boshlanuvchi studentlar ro`yxatini tanlab olish.
    SELECT id_st, surname
    FROM student
    WHERE surname LIKE ‘A%`

    Jadval atribut(lar)i qiymati mavjud (emas)ligini tekshirishda NOT NULL va IS NOT NULL operatorlar mavjud.


    Misol. Imtixon sanasi ma`lum fanlar ro`yxatini chiqarish.
    SELECT id_st, mark
    FROM mark_st
    WHERE Date NOT NULL
    Misol. Imtixon sanasi noma`lum fanlar ro`yxatini chiqarish.
    SELECT id_st, mark
    FROM mark_st
    WHERE Date IS NOT NULL

    IN peridikati biror qiymatlar to`plamiga tegishlilikni tekshirish uchun ishlatiladi.



    IN peridikatining sintaksisi:
    SELECT [ustunlar... | hisoblashlar ]
    FROM [jadval_nomi]
    {WHERE | HAVING | {AND | OR}} value [NOT]
    IN ({a11, a2 [, ...] | qism so`rov});
    IN peridikatini oldida NOT kalit so`zini qo`llanilishi uning shartni tekshirilishin teskarisini beradi.
    Ekzamenlarda kamida bitta 2 yoki 3 baho olgan studentlarni identifikatorini tanlab chikarish so`rovi.
    SELECT id_st, mark
    FROM mark_st
    WHERE mark IN (2,3)

    ANY (SOME), ALL peridikatlari ham IN kabi vazifani bajarib, lekin ularning imkoniyati IN dan kattaroq hisoblanadi. Bu peridikatlar WHERE yoki HAVING bo`limida berilgan qiymat(lar) bilan predikatdagi to`plam orasida taqqoslash operatori (=, <>, !=, >, >=, <, yoki <=) orqali ishlatiladi. Shuningdek, peridikatlar TRUE yoki FALSE (rost yoki yolg`on) qiymat qaytaradi.


    ANY, ALL peridikatlari qism so`rovlarda ham ishlatiladi.
    ANY, ALL, SOME peridikatlarini sintaksislari o`xash:
    SELECT [ustunlar... | hisoblashlar ]
    FROM [jadval_nomi]
    WHERE ifoda shart_operatori {ALL | ANY | SOME} ( qism so`rov)
    Misol uchun bizga (20, 56, 5, 15, 69, 10) to`plam berilgan bo`lib, uning eng katta elementi 5, eng kichik elementi 69 ga teng.
    ANY peredikatida shartni qanoatlandiruvchi xech bo`lmaganda bitta element bor bo`lsa, rost hisoblanadi.
    …WHERE 70 > ANY(20, 56, 5, 15, 69, 10) // Natija TRUE
    …WHERE 70 < ANY(20, 56, 5, 15, 69, 10) // Natija FALSE
    …WHERE 4 > ANY(20, 56, 5, 15, 69, 10) // Natija FALSE
    …WHERE 4 < ANY(20, 56, 5, 15, 69, 10) // Natija TRUE
    ALL peridikati esa ANY perikatiga o`xshash bo`lib, unda to`plamga tegishli barcha element peredikat bilan ifodani o`rtasidagi shartni qanoatlandirishi lozim.
    …WHERE 70 > ALL(20, 56, 5, 15, 69, 10) // Natija TRUE
    …WHERE 70 < ALL(20, 56, 5, 15, 69, 10) // Natija FALSE
    …WHERE 4 > ALL(20, 56, 5, 15, 69, 10) // Natija FALSE
    …WHERE 4 < ALL(20, 56, 5, 15, 69, 10) // Natija TRUE
    ANY (SOME) va ALL peridikatlari oldida NOT kalit so`zini foydalanish mumkin.

    EXISTS peridikati faqat qism so`rovlarda qo`llaniladi. Uning oldida taqqoslash operatorlari ishlatilmaydi.


    Quyi so`rov hech bo`lmaganda bitta natija qaytarsa EXISTS operatori TRUE qiymatni qaytaradi aks holda ya`ni quyi so`rov natija qaytarmasa FALSE qiymatni qaytaradi.
    EXISTS peridikatini sintaksisi quyidagicha:
    SELECT [column_name... | expression1 ]
    FROM [table_name]
    WHERE [NOT] EXISTS (subquery)
    Amaliyotda IN, ANY (SOME), ALL va EXISTS peridikatlari ko`pchilik hollarda qism so`rovlar yaratishda ishlatilishi sababli, bu peredikatlarga qism so`rovlar paragrafida batafsil misollar orqali to`xtalib ztiladi.

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




    Download 1,82 Mb.