Bu modulda jadvalning butun hayoti ko’rib chiqildi: uni yaratish, ma’lumot bilan to’ldirish, yozuvlarni o’zgartirish, keraksizini o’chirish va oxirida jadvalning o’zini olib tashlash.
Jadval yaratish
Jadval CREATE TABLE bilan quriladi. Qavs ichida har bir ustun uchun nom, ma’lumot turi va kerak bo’lsa cheklov yoziladi.
CREATE TABLE talabalar (
id INTEGER PRIMARY KEY,
ism VARCHAR(50) NOT NULL,
guruh VARCHAR(10),
ball INTEGER DEFAULT 0
);
Natija:
CREATE TABLE
Jadval yaratilgach, uning tuzilmasi kelgusi barcha so’rovlar uchun shartnoma bo’lib qoladi: ball ustuniga matn yozib bo’lmaydi, ismsiz qator qo’shib bo’lmaydi.
Agar shu nomli jadval allaqachon mavjud bo’lsa, so’rov xato beradi. Buni oldini olishning ikki yo’li bor: nomni o’zgartirish yoki CREATE TABLE IF NOT EXISTS yozish. Boshlovchilar tez-tez ustunlar orasiga vergul qo’yishni unutadi — bunda baza xato o’rnini syntax error at or near ko’rinishida ko’rsatadi va ko’pincha xato aslida bir satr yuqorida bo’ladi.
INSERT — yozuv qo’shish
INSERT INTO jadvalga yangi qator qo’shadi. Ustunlar ro’yxati va qiymatlar tartibi bir-biriga mos kelishi shart.
INSERT INTO talabalar (id, ism, guruh, ball)
VALUES (1, 'Aziz', '101', 85);
Bir so’rovda bir nechta qator qo’shish mumkin — bu bittalab qo’shishdan tezroq:
INSERT INTO talabalar (id, ism, guruh, ball) VALUES
(2, 'Malika', '102', 92),
(3, 'Bobur', '101', 74);
Natija:
INSERT 0 3
Ustun ro’yxatini butunlay tushirib qoldirish mumkin, lekin tavsiya etilmaydi: u holda qiymatlar jadvaldagi ustunlar tartibiga bog’lanib qoladi va jadvalga yangi ustun qo’shilishi bilan barcha eski so’rovlar buziladi. Matn qiymatlari bitta tirnoq ichida yoziladi; qo’shtirnoq SQL’da ustun nomi uchun ishlatiladi, shuning uchun "Aziz" deb yozilgan qiymat baza tomonidan ustun nomi sifatida o’qiladi va column "Aziz" does not exist xatosini beradi.
UPDATE — mavjud yozuvni o’zgartirish
UPDATE allaqachon mavjud qatorlarni yangilaydi. SET qaysi ustun qanday qiymat olishini, WHERE esa qaysi qatorlarga tegishini belgilaydi.
UPDATE talabalar
SET ball = 90
WHERE id = 3;
Natija:
UPDATE 1
Natijadagi son nechta qator o’zgarganini ko’rsatadi — uni har doim tekshirib boring. UPDATE 0 chiqsa, shart hech bir qatorga tushmagan; UPDATE 500 chiqsa, ehtimol shart juda keng.
Eng qimmatga tushadigan xato — WHEREni unutish:
UPDATE talabalar SET ball = 90;
Bu so’rov jadvaldagi barcha talabalarning bahosini 90 qilib qo’yadi va uni bekor qilish uchun "orqaga" tugmasi yo’q. Xavfsiz odat: avval xuddi shu WHERE bilan SELECT yozib, nechta va qaysi qator tushishini ko’ring, keyin uni UPDATEga aylantiring.
DELETE — qatorlarni o’chirish
DELETE qatorlarni o’chiradi, jadvalning o’zi va uning tuzilmasi joyida qoladi.
DELETE FROM talabalar
WHERE ball < 60;
Natija:
DELETE 2
DELETE uchun ham WHERE qoidasi aynan UPDATEdagidek: shartsiz DELETE FROM talabalar; jadvalni butunlay bo’shatadi. Odatda ma’lumotni fizik o’chirish o’rniga faol = FALSE kabi belgi qo’yish afzalroq — o’chirilgan buyurtma yoki foydalanuvchi keyin hisobot uchun kerak bo’lib qolishi mumkin.
DROP — jadvalni olib tashlash
DROP TABLE jadvalning o’zini, uning tuzilmasi, cheklovlari va butun ma’lumoti bilan birga yo’q qiladi.
DROP TABLE talabalar;
Natija:
DROP TABLE
Shundan keyin SELECT * FROM talabalar; so’rovi relation "talabalar" does not exist xatosini beradi — jadval endi mavjud emas.
| Buyruq | Nima o’chadi | Jadval qoladimi |
|---|---|---|
DELETE |
Shartga tushgan qatorlar | Ha, tuzilma butun |
DELETE (WHERE’siz) |
Barcha qatorlar | Ha, bo’sh holda |
DROP TABLE |
Jadval va butun ma’lumot | Yo’q |
Uchala buyruqni ajratib turadigan oddiy qoida: DELETE — daftardan satrni o’chirish, DROP — daftarni yoqib yuborish. Ishlab turgan bazada DROP yozishdan oldin zaxira nusxa borligiga ishonch hosil qiling.
Amaliyot
kitoblarjadvalini yarating:id(birlamchi kalit),nomi(bo’sh bo’lmasin),muallif,yilvanarxustunlari bilan.- Bitta
INSERTso’rovi bilan jadvalga uchta kitob qo’shing. - Bitta kitobning narxini 10 foizga oshiring — faqat o’sha kitob o’zgarishiga ishonch hosil qiling.
- 2000-yildan oldin chop etilgan kitoblarni o’chiring. Avval xuddi shu shart bilan
SELECTyozib, qaysi qatorlar tushishini tekshiring. - Mashq uchun
kitoblar_testnomli nusxa jadval yarating, unga bir nechta qator qo’shing vaDELETEbilanDROPfarqini o’z ko’zingiz bilan ko’ring: avval qatorlarni o’chiring, keyin jadvalni.
Endi modul testini yeching — INSERT, UPDATE, DELETE va DROP orasidagi farqni mustahkamlaysiz.