इस ट्यूटोरियल में, हम अधिक सामान्य अपडेट से अधिक विशिष्ट तरीकों की ओर बढ़ते हुए SQL का उपयोग करके तालिका में पंक्तियों को अपडेट करने के विभिन्न तरीकों के बारे में जानेंगे।
पूर्ण अपडेट
यदि प्रत्येक फ़ील्ड को समान मान पर अपडेट करने की आवश्यकता है, तो आप एक साधारण UPDATE
. का उपयोग करके ऐसा कर सकते हैं आदेश।
UPDATE table
SET col = new_value;
सशर्त अपडेट
कॉलम का वर्तमान मान शर्त से मेल खाता है या नहीं, इस पर निर्भर करते हुए एक सशर्त अद्यतन करने के लिए, आप एक WHERE
जोड़ सकते हैं खंड जो इसे निर्दिष्ट करता है। डेटाबेस को पहले पंक्तियाँ मिलेंगी जो WHERE
. से मेल खाती हैं खंड और उसके बाद केवल उन पंक्तियों पर अद्यतन करें।
UPDATE table
SET col = new_value
WHERE col = old_value;
इस पर विस्तार करने के लिए, आप WHERE
. में कुछ भी जोड़ सकते हैं जब तक यह एक वैध अभिव्यक्ति है, तब तक आप इसे पसंद करते हैं। तो उसी तालिका में किसी अन्य कॉलम के मूल्य के आधार पर एक अद्यतन करने के लिए, आप निम्न को निष्पादित कर सकते हैं:
UPDATE table
SET col = new_value
WHERE other_col = some_other_value;
चूंकि WHERE
क्लॉज में कोई भी मान्य अभिव्यक्ति हो सकती है, आपके पास अपडेट करने की भी संभावना है जहां कई कॉलम मानदंडों को पूरा करते हैं
UPDATE table
SET col = new_value
WHERE col = old_value
AND other_col = some_other_value;
UPDATE table
SET col = new_value
WHERE col = old_value
OR other_col = some_other_value;
जैसा कि आप देख सकते हैं, आप WHERE
. का विस्तार कर सकते हैं आपको जो चाहिए उसे अपडेट करने के लिए पंक्तियों को फ़िल्टर करने के लिए जितना चाहें उतना क्लॉज करें।
अब यदि आप किसी अन्य तालिका की स्थिति के आधार पर एक तालिका में पंक्तियों को अद्यतन करना चाहते हैं तो क्या होगा? यह प्रश्न कुछ अलग तरीकों की ओर ले जाता है जिससे आप ऐसा कर सकते हैं।
चूंकि WHERE
खंड में कोई भी मान्य अभिव्यक्ति हो सकती है, आप एक सबक्वेरी का उपयोग कर सकते हैं:
UPDATE table
SET col = new_value
WHERE other_col IN (
SELECT other_col
FROM other_table
WHERE conditional_col = 1
);
आप SET
. में एक सबक्वेरी का भी उपयोग कर सकते हैं यदि आप कॉलम को किसी अन्य तालिका में किसी मान पर सेट करना चाहते हैं तो कथन का भाग
UPDATE table
SET col = (
SELECT other_col
FROM other_table
WHERE other_table.table_id = table.id
);
UPDATE
. के बाद कई तालिकाओं को निर्दिष्ट करना शायद एक आसान तरीका है खंड। केवल SET
एक्सप्रेशन अपडेट करेगा लेकिन अतिरिक्त तालिकाओं को सूचीबद्ध करने से तालिकाओं को शामिल किया जा सकेगा।
UPDATE table, other_table
SET table.col = other_table.other_col
WHERE table.id = other_table.table_id;
इसी तरह WHERE
. का विस्तार करने के लिए खंड, यदि आपके पास कई टेबल हैं जिन पर शामिल होने की आवश्यकता है, तो आपको आवश्यक सभी तालिकाओं को शामिल करने के लिए तालिकाओं की मात्रा का विस्तार किया जा सकता है।