INSERT INTO jadval_nomi VALUES




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

INSERT INTO jadval_nomi
VALUES (),
();
Endi INSERT operatoriga misollar qaraladi. Bizga fuqarolar (fuqaro) haqidagi to`ldirilgan jadval, talabalar (student) haqidagi birorta ma`lumot to`ldirilmagan jadval va stipendiya (STIPENDIA) jadvallari berilgan bo`lsin. Bu jadvallarning tuzilmasi quyidagicha.

FUQARO

ID_FUKARO

FAMILIYA

ISMI

YOSHI

FAOLIYAT

MAXALLA

(AI)

varchar(20)

varchar(20)

Int(1)

varchar(20)

varchar(50)

1

Allayarov

Jasurbek

19

Ishsiz

Nur

2

Axmedov

Shaxzod

21

Xodim

Jaslik

3

Berdanov

Jamshid

20

Talaba

Jaslik

4

Bozorboyev

Sarvarbek

35

Talaba

Nukus

5

Nomozov

Lazizjon

60

Nafaka

Nur




STIPENDIA

BAXO

PUL

Int(1)

Int(6)

3

350000

4

470000

5

600000




STUDENT

ID_ST

FIO

SPES

KURS

BAXO

YOSHI

STIPENDIA

(AutoIncroment, PK)

varchar(50)

varchar(70)

Int(1)

Int(1) Default 3

Int(2)

Int(6)



STUDENT jadvaliga fakat bitta talabani INSERT operatori bilan kiritish:
INSERT INTO STUDENT (FIO, SPES, KURS, baho, YOSHI, STIPENDIA)
VALUES (‘Pardabaev Islam`, ‘DI`, 2, 4, 18, 0);
Eslatma. Jadvalga ma`lumot kiritishda avtohisoblagich (AutoIncroment) o`rnatilgan maydon ko`rsatilmaydi va unga qiymat ham berish mumkin emas.
Agar kiritilayotgan ma`lumotlar jadvaldagi atributlar ketma-ketligi bo`yicha bo`lsa, u holda atributlar ko`rsatilishi shart emas. Ma`lumotlarni kiritish operatori birdaniga bir necha satrlarni kiritish imkoniga ham ega.
INSERT INTO STUDENT VALUES (‘Alimov N, ‘KI`, 3, 3, 21),
(‘Azizov B`, ‘DI`, 2, 5, 22, 0);

Agar jadval atributlari o`rin almashib kelsa, u holda kiritilayotgan qiymatlar ham mos o`rin almashishi shart. Shuningdek, atributlarning qabul qiladigan aniqlanmagan qiymat (NULL) va bo`sh qiymat (‘‘) lari farqlanadi.


INSERT INTO STUDENT (FIO, YOSHI, baho, SPES, KURS)
VALUES (‘Zaripov F`, 32, 3, ‘‘, 4);

Jadvalga ma`lumot kiritishda atribut xossasiga NOT NULL o`rnatilmagan bo`lmaganlaridan tashqari boshqa atributlarga qiymat berish shart emas. Bunday holatda agar atributga Default xossasiga qiymat berilgan bo`lsa, avtomatik shu qiymat, aks holda NULL qiymat yoziladi.


INSERT INTO STUDENT (FIO, YOSHI)
VALUES (‘Rajapov Sadulla`, 19), (‘Sadikov M`, 24);
Yuqoridagi so`rov natijalari quyidagicha bo`ladi.

ID_ST

FIO

SPES

KURS

BAXO

YOSHI

STIPENDIA

1

Pardabaev Islam

DI

2

4

18

0

2

Alimov N

KI

3

3

21

0

3

Azizov B

‘‘

2

5

22

0

4

Zaripov F

‘‘

4

3

32




5

Rajapov Sadulla`







3

19




6

Sadikov M







3

24




Agar jadvalni yaratishda ustun yoki atributga majburiy qiymat (NOT NULL) belgisi qo`yilgan bo`lsa, u holda INSERT operatorida joriy ustunning har bir satriga kiritiladigan qiymatg ko`rsatilishi kerak. Shuning uchun, agar jadvalning hamma ustuni majburiy qiymatli bo`lsa, u holda har bir yangi kiritladigan satrda barcha ustun uchun qiymat mavjud bo`lishi kerak va bunda ustunlar ro`yxatini ko`rsatish shart emas. Aks holda jadvalda kamida bitta maburiy qiymatli bo`lmagan ustun bo`lsa, u holda albatta ustunlar ro`yxatini ko`rsatish shart bo`ladi.
Qiymatlar ro`yxatida maxsus funksiyalar va ifodalar ko`rsatilish ham mumkin. Bunda ushbu funksiyalarning qiymatlari ma`lumotlarni kiritish momentida hisoblangan bo`lishi zarur.
INSERT operatorida ko`plab satrlar kiritilishi SQLda so`rov yaratuvchi va dasturchilarga yaxshi imkoniyat yaratadi. Bunda qiymatlar satri boshqa bir jadvaldan (ma`lum shartlar asosida) SELECT operatori orqali tanlab olinadi. Bu natijani esa to`g`ridan-to`g`ri INSERT operatori bilan boshqa jadvalga kiritish mumkin. Ammo faqat bitta jadvaldan olib yana shu jadvalga yozish mumkin emas.
Masalan FUQARO jadvalidan FAOLIYAT atributi “talaba” bo`lgan yozuvlardan faqat Familiya, ismi va yoshi maydonlarini STUDENT jadvaliga yozish qaralsin. Buni soddalashtirish uchun dastlab lozim bo`lgan tanlash so`rovi tuziladi. Ma`lumki, FUQARO jadvalida FAMILIYA va ISMI alohida atribut, lekin bu STUDENT jadvalida bitta atribut ekanligini nazarda tutib, ular so`rovda birlashtirib yuboriladi.
SELECT FAMILIYA || ISMI AS FIO, YOSHI
FROM FUQARO WHERE FAOLIYAT= ‘Talaba`
So`rov natijasi quyidagicha bo`ladi:

FIO

YOSHI

Berdanov Jamshid

20

Bozorboyev Sarvarbek

35

Bu so`rov natijasini STUDENT jadvaliga kiritish quyidagicha bo`ladi:
INSERT INTO STUDENT (FIO, YOSHI)
SELECT FAMILIYA || ISMI AS FIO, YOSHI
FROM FUQARO
WHERE FAOLIYAT= ‘Talaba`;
Bu so`rovning natijasi quyidagicha bo`ladi.

ID_ST

FIO

SPES

KURS

BAXO

YOSHI

STIPENDIA

1

Pardabaev Islam

DI

2

4

18

0

2

Alimov N

KI

3

3

21

0

3

Azizov B

‘‘

2

5

22

0

4

Zaripov F

‘‘

4

3

32




5

Rajapov Sadulla`







3

19




6

Sadikov M







3

24




7

Berdanov Jamshid







3

20




8

Bozorboyev Sarvarbek







3

35






2. UPDATE ma`lumotlarni yangilash


Ma`lumotlarni yangilash operatori o`zgarish yuz berganda, ya`ni MBning jadvalidagi aniq atributlarni shartsiz yoki ma`lum shartlar bajarilganda o`zgarmas qiymatlarga yangilash vazifasini bajaradi.
Shart(lar)ni qanoatlantirgan holatda UPDATE operatori bajarilishi jihatidan uch guruhga ajratiladi:

  • Ko`rsatilgan atributga o`zgarmas qiymat bilan yangilash;

  • Atributni oldingi qiymatini qayta ishlab yangilash;

  • To`plamlararo qiymatlaridan moslarini yangilash.

Operatorning umumiy sintaksis diagrammasi quyidagicha beriladi
UPDATE jadval_nomi
SET ustun_nomi=yangi_qiymat
[WHERE tanlash_sharti]

Endi bularni aniq misollarda qo`rib chiqiladi.


1) Atributni o`zgarmas qiymat bilan yangilash. Student jadvalidagi kurs atributi bo`sh qiymatga ega va yoshi 22 dan kam bo`lgan talabalarni kursini 1 kurs deb o`zgartirish talab etilsin.
UPDATE STUDENT
SET KURS=1 WHERE KURS IS NULL AND YOSHI<=22
Agar yuqoridagi misolda yangilash so`rovida shart berilmasa, Student jadvalidagi barcha yozuvdagi Kurs atributini 1 ga o`zgartiradi.
Yangilash so`rovida birdaniga bir nechta ustunni yangilash mumkin. Bizdan Yoshi=22 dan katta va Spes atributi mavjud bo`lmagan yozuvlarning Spes=“AX”, Kurs=0 qilib o`zgartirilsin.
UPDATE STUDENT
SET KURS=0, SPES=“AX”
WHERE SPES IS NULL AND YOSHI>22
2) Atribut qiymatini qayta ishlab yangilash. Barcha talabalar kursini bittaga oshirish talab etilgan bo`lsin.
UPDATE STUDENT
SET KURS= KURS+1
Yuqoridagi 3 ta yangilash so`rovining natijasi quyidagicha bo`ladi:

ID_ST

FIO

SPES

KURS

BAXO

YOSHI

STIPENDIA

1

Pardabaev Islam

DI

2

4

18

0

2

Alimov N

KI

4

3

21

0

3

Azizov B

‘‘

3

5

22

0

4

Zaripov F

‘‘

5

3

32




5

Rajapov Sadulla`




2

3

19




6

Sadikov M

AX

1

3

24




7

Berdanov Jamshid




2

3

20




8

Bozorboyev Sarvarbek

AX

1

3

35




3) To`plamlararo qiymatlaridan moslarini yangilash murakab so`rovdir kiradi. Misol uchun Student jadvalidagi Stipendia atributini Stipendia jadvalidagi Pul qiymati bo`yicha yangilash talab etilsin. Bunda dastlab jadvallardagi mos baho atributlari shartda taqqoslanadi va yangilashga Stipendia jadvalini Student atributiga Stipendia jadvalidagi Pul atribut qiymatlari beriladi.

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




Download 1,82 Mb.