मुख्य सामग्री पर जाएं
मॉड्यूल 8 · पाठ 2 का 4पाठ्यक्रम में 30/57~10 min
मॉड्यूल पाठ (2/4)

अद्यतन करना और हटाना: अद्यतन करें और हटाएँ

UPDATE मौजूदा पंक्तियों को संशोधित करता है; DELETE उन्हें हटा देता है। दोनों साझा करते हैं वही, मौलिक, सुनहरा नियम: WHERE खंड तय करता है कौन सी पंक्तियाँ छूना. इसे भूलने का अर्थ है संपूर्ण तालिका को संशोधित/हटाना।

अद्यतन

SQL
UPDATE tabella
SET    colonna1 = nuovo_valore,
       colonna2 = altra_espressione
WHERE  condizione;

उदाहरण:

SQL
-- 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, या का भी उपयोग कर सकते हैं उप-प्रश्न.

मिटाना

SQL
DELETE FROM tabella
WHERE  condizione;

उदाहरण:

SQL
-- 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 स्वीकार करते हैं तो आप जानते हैं उन्होंने किस पर कार्रवाई की:

SQL
DELETE FROM reviews
WHERE  rating < 3
RETURNING id, customer_id, rating;

जो हटाया/संशोधित किया गया था उसे एक बार में लॉग इन करने के लिए उपयोगी।

विदेशी कुंजियाँ और विलोपन

किसी विदेशी कुंजी के माध्यम से किसी अन्य तालिका द्वारा संदर्भित पंक्ति को हटाने का प्रयास किया जा रहा है एक त्रुटि उत्पन्न करता है:

SQL
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"

समाधान: पहले चाइल्ड पंक्तियाँ हटाएँ, या FK को परिभाषित करें ON DELETE CASCADE जब आप तालिका बनाते हैं (हम इसे इसमें शामिल करेंगे अगला डीडीएल पाठ)।

आपकी बारी

व्यायाम#sql.m8.l2.e1
प्रयास: 0लोड हो रहा है...

श्रेणी 5 (कंप्यूटर) में प्रत्येक उत्पाद की कीमत में 10% की वृद्धि। एक एकल अद्यतन विवरण.

संपादक लोड हो रहा है...
संकेत दिखाएँ

SET के दाईं ओर की अभिव्यक्ति कॉलम को ही संदर्भित कर सकती है: कीमत * 1.10।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#sql.m8.l2.e2
प्रयास: 0लोड हो रहा है...

3 से कम रेटिंग (बहुत नकारात्मक समीक्षा) वाली प्रत्येक समीक्षा को हटा दें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

जहां रेटिंग < 3.

3 प्रयासों के बाद समाधान उपलब्ध है