Hozirgacha biz faqat jadvaldan ma'lumot o'qib oldik — SELECT yordamida mavjud qatorlarni chiqarib keldik. Ammo amalda ma'lumotlar bazasiga doimo yangi ma'lumot qo'shib turish kerak bo'ladi. Masalan, onlayn do'konga yangi mahsulot kelganda, uni mahsulotlar jadvaliga yangi qator sifatida yozib qo'yish lozim.
Yangi qator qo'shish uchun INSERT operatoridan foydalanamiz.
INSERT operatorining asosiy shakli quyidagicha:
INSERT INTO jadval_nomi (ustun1, ustun2, ...) VALUES (qiymat1, qiymat2, ...);Bu yerda:
Birinchi ustun nomiga birinchi qiymat, ikkinchi ustun nomiga ikkinchi qiymat mos keladi. Tartib muhim: ustunlar va qiymatlar bir xil ketma-ketlikda turishi shart.
Masalan, mahsulotlar jadvaliga Sichqoncha nomli yangi mahsulot qo'shaylik:
INSERT INTO mahsulotlar (id, nomi, kategoriya, narx, ombor)
VALUES (10, 'Sichqoncha', 'Elektronika', 120000, 60);Bu so'rov jadvalga quyidagi yangi qatorni qo'shadi:
| id | nomi | kategoriya | narx | ombor |
|---|---|---|---|---|
| 10 | Sichqoncha | Elektronika | 120000 | 60 |
Eslatma: Matn qiymatlari (masalan,
'Sichqoncha') bittalik qo'shtirnoq ichida yoziladi. Sonlar (masalan,120000) esa qo'shtirnoqsiz yoziladi.
Muhim bir narsani yodda tuting: SELECT dan farqli o'laroq, INSERT ekranga hech narsa chiqarmaydi. U faqat jadvalni jimgina o'zgartiradi — yangi qatorni qo'shadi, xolos.
Demak, qator chindan ham qo'shilganini ko'rish uchun, INSERT dan keyin alohida SELECT so'rovi yozishimiz kerak:
INSERT INTO mahsulotlar (id, nomi, kategoriya, narx, ombor)
VALUES (10, 'Sichqoncha', 'Elektronika', 120000, 60);
SELECT nomi, narx FROM mahsulotlar WHERE id = 10;Bu yerda ikkita alohida so'rov bor, har biri nuqta-vergul (;) bilan tugaydi. Avval INSERT ishlaydi va yangi qatorni qo'shadi, so'ng SELECT o'sha qatorni o'qib chiqaradi:
Sichqoncha|120000Endi WHERE id = 10 sharti aynan yangi qo'shilgan qatorni topadi, chunki uning id si 10 ga teng.
Muhim: Yangi qatorning
idqiymati jadvalda takrorlanmasligi kerak.mahsulotlarjadvalidaidustuni har bir mahsulotni yagona qilib ajratib turadigan kalitdir — agar mavjudidni qaytadan qo'shsangiz, xatolik yuz beradi.
Yangi qator qo'shilgandan so'ng natijani ko'rishda, agar bir nechta qator chiqsa, har doimgidek ORDER BY bilan tartibni belgilang. Masalan, id si 8 dan katta yoki teng mahsulotlarni id tartibida chiqaramiz:
SELECT nomi, narx FROM mahsulotlar WHERE id >= 8 ORDER BY id;Yangi mahsulotni qo'shgandan keyin bu so'rov hammasini tartibli ko'rsatadi:
Stul|250000
Sichqoncha|120000Eslatma:
INSERTbilanSELECTni birga ishlatganda, har bir so'rov oxiriga;qo'yishni unutmang. Aks holda ma'lumotlar bazasi ikki so'rovni qayerda ajratishni bilmaydi.
mahsulotlar jadvaliga yangi qator qo'shing: id=9, nomi='Sumka', kategoriya='Aksessuar', narx=150000, ombor=30. So'ngra id si 8 dan kichik bo'lmagan (ya'ni id >= 8) mahsulotlarning nomi va narxini id tartibida chiqaruvchi SELECT so'rovini yozing.