5-
laboratoriya ishi
SQL tilining skalyar ifodalarining maxsus jihatlarining
muhokamasi
Ishdan maqsad:
ma‘lumotlar bazasini boshqarish dasturiy vositasi
yordamida masofaviy serverga ulanishni sozlash va serverdagi
ma‘lumotlarni qayta ishlash, tahrirlash koʻnikmalariga ega boʻlish.
Masalaning qoʻyilishi:
ma‘lumotlar bazasini boshqarish vositalari
yordamida masofaviy serverdagi ma‘lumotlarni qayta ishlash.
Uslubiy koʻrsatmalar
: SQL soʻrovlar tilida ishlatiladigan soʻrovlarni
oʻrganishda davom etamiz. WHERE shart berish buyrugʻini oʻrganamiz.
UPDATE yangilash hamda DELETE oʻchirish buyruqlarini ham koʻrib
chiqamiz.
Ma‘lumotlarni filtrlash uchun WHERE bandidan foydalaniladi,
shundan soʻng filtrlash amalga oshiriladigan shart koʻrsatiladi:
1
WHERE
shart
Agar shart toʻgʻri boʻlsa, u holda qator olingan tanlovga kiritiladi.
Sifatida taqqoslash operatsiyalaridan foydalanish mumkin. Ushbu
53
operatsiyalar ikkita ifodani taqqoslaydi. PostgreSQL da quyidagi
taqqoslash operatorlaridan foydalanish mumkin:
=: tenglik uchun taqqoslash
<>: tengsizlik uchun solishtirish
<: kamroq
>: dan ortiq
! <: dan kam emas
!>: ortiq emas
<=: kichik yoki teng
> =: kattaroq yoki teng
Masalan, Apple tomonidan ishlab chiqarilgan barcha mahsulotlarni
topamiz:
1.
2.
SELECT
* FROM
Products
WHERE
Manufacturer = 'Apple';
5.1-rasm. SQL soʻrovlar oynasida soʻrovlar ishlatilishi
Shuni ta'kidlash kerakki, bu holda belgilarning holati juda muhim,
masalan, "Olma" qatori "APPLE" yoki "olma" qatoriga teng emas.
Yana bir misol - narxi 29 000 dan past boʻlgan barcha mahsulotlarni
topamiz:
1.
2.
SELECT
* FROM
Products
WHERE
Price < 39000;
Shart sifatida murakkabroq ifodalardan foydalanish mumkin. Masalan,
umumiy qiymati 90 000 dan ortiq boʻlgan barcha mahsulotlarni topamiz:
54
1.
2.
SELECT
* FROM
Products
WHERE
Price * ProductCount > 90000;
5.2-rasm. SQL soʻrovlar oynasida soʻrovlar ishlatilishi
Mantiqiy amallar.
Mantiqiy operatorlar PostgreSQL-da bir nechta shartlarni bitta shartga
birlashtirish uchun ishlatilishi mumkin:
AND: mantiqiy AND operatsiyasi. U ikkita ifodani birlashtiradi:
1.
ifoda1 AND
ifoda2
Faqat bu ikkala ifoda bir vaqtning oʻzida toʻgʻri boʻlsa, AND
operatorining umumiy sharti ham toʻgʻri boʻladi. Ya'ni, agar birinchi shart
ham, ikkinchisi ham toʻgʻri boʻlsa.
OR: mantiqiy YOKI operatsiya. Shuningdek, u ikkita iborani
birlashtiradi:
1.
ifoda1 OR
ifoda2
Agar ushbu ifodalardan kamida bittasi toʻgʻri boʻlsa, OR operatorining
umumiy sharti ham toʻgʻri boʻladi. Ya'ni, birinchi shart yoki ikkinchi shart
toʻgʻri boʻlsa.
NOT: mantiqiy inkor operatsiyasi. Agar bu amaldagi ifoda notoʻgʻri
boʻlsa, u holda umumiy shart rost boʻladi.
1.
NOT
ifoda
55
Misol uchun, ishlab chiqaruvchisi Samsung boʻlgan va bir vaqtning
oʻzida narxi 50 000 dan ortiq boʻlgan barcha mahsulotlarni tanlaymiz:
1.
2.
SELECT
* FROM
Products
WHERE
Manufacturer = 'Samsungʻ
AND
Price > 50000;
5.3-rasm. PostgreSQL-da mantiqiy VA operatori
Endi operatorni OR ga almashtiramiz. Ya'ni, biz ishlab chiqaruvchisi
Samsung yoki narxi 50 000 dan yuqori boʻlgan barcha mahsulotlarni
tanlaymiz:
1.
2.
SELECT
* FROM
Products
WHERE
Manufacturer = 'Samsungʻ
OR
Price > 50000;
5.4-rasm. PostgreSQL da mantiqiy OR operatori
NO operatorining qoʻllanilishi - biz ishlab chiqaruvchisi Samsung
boʻlmagan barcha mahsulotlarni tanlaymiz:
56
1.
2.
SELECT
* FROM
Products
WHERE
NOT
Manufacturer = 'Samsungʻ;
5.5-rasm. PostgreSQL-da mantiqiy NOT operatori
Ammo koʻp hollarda siz NOT operatorisiz qilishingiz mumkin.
Shunday qilib, oldingi misolda biz quyidagicha yozishimiz mumkin:
1.
2.
SELECT
* FROM
Products
WHERE
Manufacturer <> 'Samsungʻ
Bundan tashqari, bitta SELECT buyrugʻida siz bir vaqtning oʻzida bir
nechta operatorlardan foydalanishingiz mumkin:
1.
2.
SELECT
* FROM
Products
WHERE
Manufacturer = 'Samsungʻ
OR
Price > 30000 AND
ProductCount > 2;
AND operatori ustuvorlikka ega boʻlganligi sababli, birinchi navbatda
Price> 30000 AND ProductCount> 2 sub ifodasi, keyin esa OR operatori
bajariladi. Ya'ni, bu yerda siz 2 dan ortiq zaxiraga ega va bir vaqtning
oʻzida narxi 30 000 dan yuqori boʻlgan tovarlarni yoki ishlab chiqaruvchisi
Samsung boʻlgan tovarlarni tanlaysiz.
Qavslar yordamida amallar tartibini ham qayta belgilashimiz mumkin:
1
2
SELECT
* FROM
Products
WHERE
(Manufacturer = 'Samsungʻ
OR
Price > 30000) AND
ProductCount > 2;
57
IS NULL
Bir qator ustunlar null boʻlishi mumkin. Bu qiymat boʻsh satrga teng
emas. '' NULL har qanday qiymatning toʻliq yoʻqligini bildiradi. Va
bunday qiymatni tekshirish uchun IS NULL operatori ishlatiladi.
Misol
uchun,
ProductCount
maydoni
oʻrnatilmagan barcha
mahsulotlarni tanlaymiz:
1.
2.
SELECT
* FROM
Products
WHERE
ProductCount IS
NULL;
Agar, aksincha, ProductCount maydoni NULL boʻlmagan qatorlarni
olishingiz kerak boʻlsa, siz NOT operatoridan foydalanishingiz mumkin:
1.
2.
SELECT
* FROM
Products
WHERE
ProductCount IS
NULL;
UPDATE buyrugʻi PostgreSQL ma‘lumotlar bazasidagi ma‘lumotlarni
yangilash uchun ishlatiladi. U quyidagi umumiy rasmiy sintaksisga ega:
1.
2.
3.
UPDATE
имя_таблицы
SET
столбец1 = значение1, столбец2 = значение2, ...
столбецN = значениеN
[WHERE
условие_обновления]
Masalan, barcha mahsulotlar narxini 3000 ga oshiramiz:
1.
2.
UPDATE
Products
SET
Price = Price + 3000;
58
5.6-rasm. PostgreSQL-da UPDATE operatori
Bunday holda, yangilanish barcha qatorlar uchun amal qiladi. WHERE
bandidan foydalanib, siz yangilanadigan qatorlarni belgilash uchun
shartdan foydalanishingiz mumkin - agar qator shartga mos kelsa, u
yangilanadi. Misol uchun, ishlab chiqaruvchining nomini "Samsung" dan
"Samsung Inc." ga oʻzgartiramiz:
1.
2.
3.
UPDATE
Products
SET
Manufacturer = 'Samsung Inc.'
WHERE
Manufacturer = 'Samsungʻ;
59
5.7-rasm. PostgreSQL-da UPDATE operatori ishlatilishi
Bundan tashqari, bir vaqtning oʻzida bir nechta ustunlarni
yangilashingiz mumkin:
1.
2.
3.
4.
UPDATE
Products
SET
Manufacturer = 'Samsungʻ,
ProductCount = ProductCount + 3
WHERE
Manufacturer = 'Samsung Inc.';
Ma‘lumotlarni oʻchirish. DELETE buyrugʻi.
PostgreSQL ma‘lumotlarni oʻchirish uchun DELETE buyrugʻidan
foydalanadi. U quyidagi sintaksisga ega:
1.
2.
DELETE
FROM
имя_таблицы
[WHERE
условие_удаления]
Masalan, ishlab chiqaruvchisi Apple boʻlgan qatorlarni olib tashlaymiz:
1.
2.
DELETE
FROM
Products
WHERE
Manufacturer='Apple';
|