मॉड्यूल पाठ (2/4)
अद्यतन करना और हटाना: अद्यतन करें और हटाएँ
UPDATE मौजूदा पंक्तियों को संशोधित करता है; DELETE उन्हें हटा देता है। दोनों साझा करते हैं
वही, मौलिक, सुनहरा नियम: WHERE खंड तय करता है कौन सी पंक्तियाँ
छूना. इसे भूलने का अर्थ है संपूर्ण तालिका को संशोधित/हटाना।
अद्यतन
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;उदाहरण:
-- Aumenta del 10% i prezzi di tutti i prodotti della categoria 5 (Computer):
UPDATE products
SET price = price * 1.10
WHERE category_id = 5;
-- Aggiorna due colonne contemporaneamente:
UPDATE orders
SET status = 'shipped',
shipped_at = NOW()
WHERE id = 12;SET col = espressione: अभिव्यक्ति पंक्ति के वर्तमान को संदर्भित कर सकती है
मान (price * 1.10), और NOW(), NULL, या का भी उपयोग कर सकते हैं
उप-प्रश्न.
मिटाना
DELETE FROM tabella
WHERE condizione;उदाहरण:
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;यहाँ भी लौट रहा हूँ
जैसे INSERT, UPDATE और DELETE भी RETURNING स्वीकार करते हैं तो आप जानते हैं
उन्होंने किस पर कार्रवाई की:
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;जो हटाया/संशोधित किया गया था उसे एक बार में लॉग इन करने के लिए उपयोगी।
विदेशी कुंजियाँ और विलोपन
किसी विदेशी कुंजी के माध्यम से किसी अन्य तालिका द्वारा संदर्भित पंक्ति को हटाने का प्रयास किया जा रहा है एक त्रुटि उत्पन्न करता है:
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"समाधान: पहले चाइल्ड पंक्तियाँ हटाएँ, या FK को परिभाषित करें
ON DELETE CASCADE जब आप तालिका बनाते हैं (हम इसे इसमें शामिल करेंगे
अगला डीडीएल पाठ)।
आपकी बारी
श्रेणी 5 (कंप्यूटर) में प्रत्येक उत्पाद की कीमत में 10% की वृद्धि। एक एकल अद्यतन विवरण.
संकेत दिखाएँ
SET के दाईं ओर की अभिव्यक्ति कॉलम को ही संदर्भित कर सकती है: कीमत * 1.10।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
3 से कम रेटिंग (बहुत नकारात्मक समीक्षा) वाली प्रत्येक समीक्षा को हटा दें।
संकेत दिखाएँ
जहां रेटिंग < 3.
3 प्रयासों के बाद समाधान उपलब्ध है