अपने मौजूदा SQL डेटा को कैसे अपडेट करें

एलन जी टेलर द्वारा

क्योंकि दुनिया लगातार बदल रही है, दुनिया के पहलुओं को मॉडल करने के लिए उपयोग किए जाने वाले SQL डेटाबेस को भी बदलने की जरूरत है। एक ग्राहक अपना पता बदल सकता है। स्टॉक में उत्पाद की मात्रा बदल सकती है। एक बास्केटबॉल खिलाड़ी के सीज़न के प्रदर्शन के आँकड़े हर बार दूसरे गेम में खेलने पर बदल जाते हैं। यदि आपके डेटाबेस में ऐसे आइटम हैं, तो आपको इसे समय-समय पर अपडेट करना होगा।



एसक्यूएल प्रदान करता हैअपडेट करेंतालिका में डेटा बदलने के लिए कथन। एकल . का उपयोग करकेअपडेट करेंकथन, आप तालिका में एक, कुछ या सभी पंक्तियों को बदल सकते हैं।अपडेट करेंकथन निम्नलिखित सिंटैक्स का उपयोग करता है:



UPDATE table_name SET column_1 = expression_1, column_2 = expression_2, ..., column_n = expression_n [WHERE predicates] ;

कहां हैखंड वैकल्पिक है। यह खंड उन पंक्तियों को निर्दिष्ट करता है जिन्हें आप अपडेट कर रहे हैं। यदि आप a . का उपयोग नहीं करते हैंकहां हैखंड, तालिका में सभी पंक्तियों को अद्यतन किया जाता है।सेटखंड उन स्तंभों के लिए नए मान निर्दिष्ट करता है जिन्हें आप बदल रहे हैं।

इस ग्राहक तालिका पर विचार करें।



नाम शहर एरिया कोड TELEPHONE
अबे एबेलसन स्प्रिंगफील्ड (७१४) 555-1111
बिल बेली डीकैचर (७१४) 555-2222
चक वुड फिलो (७१४) 555-3333
डॉन स्टेटसन फिलो (७१४) 555-4444
डॉल्फ़ स्टेटसन फिलो (७१४) 555-5555

ग्राहक सूचियाँ कभी-कभी बदलती हैं — जैसे-जैसे लोग चलते हैं, अपने फ़ोन नंबर बदलते हैं, इत्यादि। मान लीजिए कि अबे एबेलसन स्प्रिंगफील्ड से कंकाकी की ओर बढ़ता है। आप निम्न का उपयोग करके तालिका में उसका रिकॉर्ड अपडेट कर सकते हैंअपडेट करेंबयान:

UPDATE CUSTOMER SET City = 'Kankakee', Telephone = '666-6666' WHERE Name = 'Abe Abelson' ;

यह कथन तालिका 6-2 में दिखाए गए परिवर्तनों का कारण बनता है।

नाम शहर एरिया कोड TELEPHONE
अबे एबेलसन Kankakee (७१४) ६६६-६६६६
बिल बेली डीकैचर (७१४) 555-2222
चक वुड फिलो (७१४) 555-3333
डॉन स्टेटसन फिलो (७१४) 555-4444
डॉल्फ़ स्टेटसन फिलो (७१४) 555-5555

आप एकाधिक पंक्तियों को अद्यतन करने के लिए समान कथन का उपयोग कर सकते हैं। मान लें कि फिलो विस्फोटक जनसंख्या वृद्धि का अनुभव कर रहा है और अब उसे अपने क्षेत्र कोड की आवश्यकता है। आप फिलो में रहने वाले ग्राहकों के लिए एकल . का उपयोग करके सभी पंक्तियों को बदल सकते हैंअपडेट करेंबयान, इस प्रकार है:



UPDATE CUSTOMER SET AreaCode = '(619)' WHERE City = 'Philo' ;

तालिका अब तालिका 6-3 में दर्शाई गई तालिका की तरह दिखती है।

नाम शहर एरिया कोड TELEPHONE
अबे एबेलसन Kankakee (७१४) ६६६-६६६६
बिल बेली डीकैचर (७१४) 555-2222
चक वुड फिलो (६१९) 555-3333
डॉन स्टेटसन फिलो (६१९) 555-4444
डॉल्फ़ स्टेटसन फिलो (६१९) 555-5555

किसी तालिका की सभी पंक्तियों को अपडेट करना केवल कुछ पंक्तियों को अपडेट करने की तुलना में आसान है। आपको a . का उपयोग करने की आवश्यकता नहीं हैकहां हैबयान को प्रतिबंधित करने के लिए खंड। कल्पना कीजिए कि रैंटौल शहर ने प्रमुख राजनीतिक दबदबा हासिल कर लिया है और अब न केवल कांकाकी, डीकैचर और फिलो, बल्कि सभी शहरों और कस्बों को डेटाबेस में शामिल कर लिया है। आप एक ही कथन का उपयोग करके सभी पंक्तियों को अपडेट कर सकते हैं:

UPDATE CUSTOMER SET City = 'Rantoul' ;

तालिका 6-4 परिणाम दिखाती है।

नाम शहर एरिया कोड TELEPHONE
अबे एबेलसन रेंटौल (७१४) ६६६-६६६६
बिल बेली रेंटौल (७१४) 555-2222
चक वुड रेंटौल (६१९) 555-3333
डॉन स्टेटसन रेंटौल (६१९) 555-4444
डॉल्फ़ स्टेटसन रेंटौल (६१९) 555-5555

जब आप का उपयोग करते हैंकहां हैके साथ खंडअपडेट करेंकौन सी पंक्तियों को अद्यतन किया जाता है, इसकी सामग्री को प्रतिबंधित करने के लिए बयानकहां हैखंड एक हो सकता है सबसिलेक्ट - सेवा मेरेचुनते हैंकथन, जिसके परिणाम का उपयोग दूसरे द्वारा इनपुट के रूप में किया जाता हैचुनते हैंबयान।

मान लीजिए कि आप एक थोक व्यापारी हैं और आपके डेटाबेस में एक विक्रेता तालिका शामिल है जिसमें उन सभी निर्माताओं के नाम हैं जिनसे आप उत्पाद खरीदते हैं। आपके पास एक PRODUCT तालिका भी है जिसमें आपके द्वारा बेचे जाने वाले सभी उत्पादों के नाम और उनके लिए आपके द्वारा चार्ज किए जाने वाले मूल्य शामिल हैं। विक्रेता तालिका में स्तंभ हैंविक्रेता पहचान,विक्रेता का नाम,सड़क,शहर,राज्य, तथाज़िप. PRODUCT तालिका में हैउत्पाद आइ डि,उत्पाद का नाम,विक्रेता पहचान, तथाविक्रय कीमत.

आपका विक्रेता, क्यूम्यलोनिम्बस कॉर्पोरेशन, अपने सभी उत्पादों की कीमतों में 10 प्रतिशत की वृद्धि करने का निर्णय लेता है। अपने लाभ मार्जिन को बनाए रखने के लिए, आपको क्यूम्यलोनिम्बस से प्राप्त होने वाले उत्पादों पर अपनी कीमतें 10 प्रतिशत बढ़ानी चाहिए। आप निम्न का उपयोग करके ऐसा कर सकते हैंअपडेट करेंबयान:

UPDATE PRODUCT SET SalePrice = (SalePrice * 1.1) WHERE VendorID IN (SELECT VendorID FROM VENDOR WHERE VendorName = 'Cumulonimbus Corporation') ;

उप-चयन पाता हैविक्रेता पहचानजो क्यूम्यलोनिम्बस से मेल खाती है। फिर आप का उपयोग कर सकते हैंविक्रेता पहचानआप जिन पंक्तियों को अपडेट करना चाहते हैं, उन्हें खोजने के लिए PRODUCT तालिका में फ़ील्ड। सभी क्यूम्यलोनिम्बस उत्पादों की कीमतों में 10 प्रतिशत की वृद्धि; अन्य सभी उत्पादों पर कीमतें समान रहती हैं।