• ID_ST FIO SPES KURS
  • UPDATE
  • WHERE
  • DELETE FROM
  • ID_FUKARO
  • ID_FUK FAMILIYA ISMI FAOLIYAT
  • DELETE
  • UPDATE STUDENT, STIPENDIA SET




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

    UPDATE STUDENT, STIPENDIA
    SET STUDENT.STIPENDIA= STIPENDIA.PUL
    WHERE STUDENT.BAXO=STIPENDIA.BAXO
    Bu murakkab yangilash so`rovining natijasi quyidagicha bo`ladi:

    ID_ST

    FIO

    SPES

    KURS

    BAXO

    YOSHI

    STIPENDIA

    1

    Pardabaev Islam

    DI

    2

    4

    18

    470000

    2

    Alimov N

    KI

    4

    3

    21

    350000

    3

    Azizov B

    ‘‘

    3

    5

    22

    600000

    4

    Zaripov F

    ‘‘

    5

    3

    32

    350000

    5

    Rajapov Sadulla`




    2

    3

    19

    350000

    6

    Sadikov M

    AX

    1

    3

    24

    350000

    7

    Berdanov Jamshid




    2

    3

    20

    350000

    8

    Bozorboyev Sarvarbek

    AX

    1

    3

    35

    350000

    Maxsus shartlar asosida yangilash UPDATE operatorini bitta amal uchun takror shartlarini o`zgartirib bajarishni optimallashtiradi. Misol uchun Student jadvalidagi Stipendia atributini bahoga nisbatan turlicha o`zgartirish, jumladan, 3 baho 10% kamaytirish, 4 baho 50% oshirish va 5 baho 2,5 karra ortishi talab etilgan bo`lsin. Odatda bunga ushbu ko`rinishda so`rov tuziladi:


    UPDATE STUDENT SET STIPENDIA=0,9*STIPENDIA WHERE baho=3
    UPDATE STUDENT SET STIPENDIA=1,5*STIPENDIA WHERE baho=4
    UPDATE STUDENT SET STIPENDIA=2,5*STIPENDIA WHERE baho=5

    Yuqoridagi yangilash so`rovlarni bitta so`rov orqali tuzishda dasturlash tillaridagi kabi IF yoki CASE kalit so`zlaridan foydalanish mumkin.1


    UPDATE STUDENT
    SET STIPENDIA=
    CASE baho
    WHEN 3 THEN 0,9*STIPENDIA
    WHEN 4 THEN 1,5*STIPENDIA
    WHEN 5 THEN 2,5*STIPENDIA
    ELSE STIPENDIA
    END
    Eslatma. UPDATE operatori bilan jadval yozuvlarni o`zgartirish va DELETE operatori bilan o`chirish amallarini bajarishda ehtiyotkorlik talab etiladi. Ya`ni bu operatorlarda WHERE qismi to`g`ri qo`yishni unutmang. Chunki, bu operatorlar jadval yozuvlariga ta`sir qilib, ularni qayta tiklash muammosini keltirib chiqarishi mumkin. Agar tanlash sharti (WHERE qismi) ko`rsatilmagan bo`lsa, u holda o`zgartirish amali jadvlning barcha satrlari uchun bajariladi.


    3. DELETE o`chirish operatori


    Ma`lumotlarni o`chirish operatori jadvaldan shart bo`lsama hammasini, aks holda shartni qanoatlantiruvchi satr(lar)ni o`chirishi mumkin. Operatorning sintaksisi va diagrammasi quyidagicha beriladi.



    DELETE FROM jadval _nomi
    [WHERE tanlash_sharti]
    Agar satrlarni tanlash sharti ko`rsatilmasa, u holda jadvaldagi barcha satrlar o`chiriladi. Natijada ma`lumotlarga ega bo`lmagan bo`sh bo`lgan jadval hosil bo`ladi.
    DELETE operatorining WHERE qismida turlicha murakkablikdagi shartlarni, jumladan Like, Beetwen, In kabi peredikatlarni ishlatish mumkin. Endi bunga qaralayotgan jadvallar asosida misollar keltiriladi.
    Fukaro jadvalidan ID_FUKARO'>ID_FUKARO atributi 2 ga teng yozuvni o`chirish.
    DELETE FROM Fukaro
    WHERE ID_FUK=2

    Fukaro jadvalidan FAOLIYAT atributi “Nafaka” yoki “Ishsiz” va MAXALLA atributi “Nur” yoki “N” xarfdan boshlanuvchi yozuvlarni o`chirish


    DELETE FROM Fukaro
    WHERE (MAXALLA LIKE “Nur” OR MAXALLA LIKE “N%”) AND
    (FAOLIYAT IN(“Nafaka”, “Ishsiz”))

    Yuqoridagi ikkita so`rov natijasi quyidagicha bo`ladi.



    ID_FUK

    FAMILIYA

    ISMI

    FAOLIYAT

    MAXALLA




    1

    Allayarov

    Jasurbek

    Ishsiz

    Nur

    X MAXALLA LIKE “Nur” va FAOLIYAT=“ Ishsiz”

    2

    Axmedov

    Shaxzod

    Xodim

    Jaslik

    X ID_FUKARO=2

    3

    Berdanov

    Jamshid

    Talaba

    Jaslik




    4

    Bozorboyev

    Sarvarbek

    Talaba

    Nukus




    5

    Nomozov

    Lazizjon

    Nafaka

    Nukus

    X MAXALLA LIKE “N%” va FAOLIYAT=“Nafaka”

          

    ID_FUK

    FAMILIYA

    ISMI

    FAOLIYAT

    MAXALLA

    3

    Berdanov

    Jamshid

    Talaba

    Jaslik

    4

    Bozorboyev

    Sarvarbek

    Talaba

    Nukus

    Endi DELETE operatori orqali boshqa jadval ma`lumotlariga bog`lab o`chirish (murakkab) so`rovini tuzish qaraladi. Misol uchun Fukaro jadvalidagi Familiya va Ismi atributlari birgalikda Student jadvalidagi FIO atributiga mos bo`lgan holatda yoki Student jadvalidagi Spes atributi ‘’ (bo`sh, lekin NULL emas) qiymatga ega bo`lgan yozuvlarni Student jadvalidan o`chirish talab etilsin.
    DELETE FROM STUDENT
    WHERE FIO IN(
    SELECT FAMILIYA || ISMI AS FIO
    FROM FUQARO)
    OR FIO IS NULL
    Bu murakkab o`chirish so`rovining natijasi quyidagicha bo`ladi:

    ID_ST

    FIO

    SPES

    KURS

    BAXO

    YOSHI

    STIPENDIA

    1

    Pardabaev Islam

    DI

    2

    4

    18

    470000

    2

    Alimov N

    KI

    4

    3

    21

    350000

    5

    Rajapov Sadulla`




    2

    3

    19

    350000

    6

    Sadikov M

    AX

    1

    3

    24

    350000

    DELETE operatsiyasini bajarishda unda qatnashgan qism so`rovda satrlar o`chiriladigan jadval ko`rsatilmasligi kerak. Ma`lumotlarni manipulyatsiyalash operatsiyalarining barchasi MBning butunligi tushunchasi bilan bog`langan. Manipulyatsiyalash amallari sintaktik jihatdan to`g`ri bo`lsada butunlik talablari tufayli bajarilmasligi mumkin.
    Nazorat savollari

    1. SQL tilida ma`lumotlarni manipulyatsiya qilish operatorlari qanday?

    2. Jadvallarga ma`lumot kiritish operatori shakllari qanday?

    3. Yangilash operatori bajarilishi jihatidan turlari qanday?

    4. DELETE operatori sintaksini bayon qiling.

    5. DML guruh operatorlarining qaysi birlarida WHERE ishlatish mumkin emas?

    DML guruh operatorlari tarkibida qaysi peridak
    Nazorat savollari

    1. SQL standartlari va uning rivojlanish bosqichlari

    2. SQL tili operatorlarning formatiga bo`lgan talablar

    3. SQL operatorlari guruhlarini vazifasini tushuntiring

    4. SQL tilidagi asosiy ma`lumot toifalari qanday?

    5. Jadvallarning sxemasi deganda nimani tushuniasiz?

    6. Jadval yaratishdagi birlamchi va ikkilamchi kalitlarning mohiyati va farqi nimadi?

    7. Jadval attributlariga cheklov va izox qanday o`rnatiladi?

    8. INDEX nima va ular bilan ishlash operatorlari qanday?

    9. Mavjud jadvalni tahrirlash buyruqlari sintaksisini tushuntiring.

    10. SQL tilida ma`lumotlarni manipulyatsiya qilish operatorlari?

    11. SELECT operatori sintaksisidagi kalit so`zlar ma`nosi?

    12. SQL so`rovida ishtiroki shart bo`lgan kalit so`zlar qaysilar?

    13. SQL tilida mantiqiy operatorlar qaysilar va qaerda qo`llaniladi?

    14. Mantiqiy operatorlar bajarilishidagi bir-biridan ustuvorligini asoslang?

    15. Maxsus mantiqiy operatorlarni sanang.

    16. So`rovda BERWEEN peridikati ekvivalent ifoda qanday?

    17. ANY va ALL peridikatlarini IN peridikatidan farqi nimada?

    18. Qism so`rovlardada qo`llaniladigan asosiy peridikatlar qaysilar?






    1 https://andreyex.ru/bazy-dannyx/baza-dannyx-mysql/11-osnovnyx-primerov-komandy-update-v-mysql/

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




    Download 1,82 Mb.