Ma'lumotlarni o'chirish
Kirish: ushbu darsda siz jadvaldan bir yoki bir nechta qatorlarni o'chirish uchun PostgreSQL DELETE buyrug'idan qanday foydalanishni o'rganasiz.
PostgreSQL DELETE buyrug'i jadvaldan bir yoki bir nechta qatorlarni butunlay olib tashlaydigan kuchli vositadir. Mana DELETE buyrug'ining sintaksisi:
DELETE FROM table_name
WHERE condition;
Ushbu sintaksisda:
DELETE FROM bandida qatorlarini o'chirmoqchi bo'lgan jadval nomini ko'rsating.WHERE bandida shartni bering.WHERE bandi ixtiyoriy bo'lgani sababli, siz uni DELETE buyrug'ida tushirib qoldirishingiz mumkin. Bunday holda, DELETE buyrug'i jadvaldagi barcha qatorlarni o'chirib yuboradi.
Agar WHERE bandidagi shartga hech qanday qator mos kelmasa, DELETE buyrug'i jadvaldan hech qanday qatorni o'chirmaydi.
PostgreSQL DELETE buyrug'i o'chirilgan qatorlar sonini qaytaradi:
DELETE count;
Agar count nolga teng bo'lsa, DELETE buyrug'i jadvaldan hech qanday qatorni o'chirmagan bo'ladi.
Biz inventories jadvalidan qatorlarni o'chiramiz:
CREATE TABLE inventories (
name VARCHAR(255),
brand VARCHAR(50),
quantity INT,
price DECIMAL(19, 2)
);
INSERT INTO inventories (name, brand, quantity, price)
VALUES
('iPhone 14 Pro', 'Apple', 10, 999.99),
('Galaxy S23 Ultra', 'Samsung', 15, 1199.99),
('Pixel 7 Pro', 'Google', 8, 899.99),
('Xperia 1 IV', 'Sony', 7, 1299.99);
Quyidagi so'rov inventories jadvalidan bitta qatorni o'chirish uchun DELETE buyrug'idan foydalanadi:
DELETE FROM inventories
WHERE name = 'iPhone 14 Pro';
Natija:
DELETE 1
Ushbu misolda WHERE bandidagi shart bitta qatorga to'g'ri keladi. Shuning uchun DELETE buyrug'i faqat o'sha qatorni o'chiradi. Natija DELETE buyrug'i bitta qatorni muvaffaqiyatli o'chirganini bildiradi.
Quyidagi so'rov inventories jadvalidan barcha qatorlarni o'chirish uchun DELETE buyrug'idan foydalanadi:
DELETE FROM inventories;
Ushbu DELETE buyrug'i WHERE bandidan foydalanmaydi, shuning uchun u inventories jadvalidagi qolgan barcha qatorlarni olib tashlaydi. Bu jadvalni butunlay tozalashni xohlaganingizda, masalan, unga yangi ma'lumotlarni qayta kiritishdan oldin foydali bo'lishi mumkin.
Natija:
DELETE 3
Natija DELETE buyrug'i inventories jadvalidan uchta qatorni olib tashlaganini ko'rsatadi.
DELETE buyrug'i o'chirilgan qatorlarni qaytaruvchi ixtiyoriy RETURNING bandiga ega:
DELETE FROM table_name
WHERE condition
RETURNING column1, column2, ...;
Ushbu sintaksisda o'chirilgan qatordan qaytarishni xohlagan ustunlar ro'yxatini vergul bilan ajratib ko'rsating. Agar siz o'chirilgan qatorning barcha ustunlarini qaytarmoqchi bo'lsangiz, yulduzcha (*) belgisidan foydalanishingiz mumkin:
DELETE FROM table_name
WHERE condition
RETURNING *;
Misol uchun, birinchi navbatda, inventories jadvaliga yangi qator kiriting:
INSERT INTO inventories (name, brand, quantity, price)
VALUES ('iPhone 15 Pro', 'Apple', 5, 1299.99);
Ikkinchi, 'iPhone 15 Pro' mahsulotini o'chiring va o'chirilgan qatorni qaytaring:
DELETE FROM inventories
WHERE name = 'iPhone 15 Pro'
RETURNING *;
Natija:
name | brand | quantity | price
---------------+-------+----------+---------
iPhone 15 Pro | Apple | 5 | 1299.99
DELETE buyrug'idan foydalaning.RETURNING bandidan foydalaning.