Oracle PL / SQL इन्सर्ट, अपडेट, डिलीट & चयन में (उदाहरण)

विषय - सूची:

Anonim

इस ट्यूटोरियल में, हम पीएल / एसक्यूएल में एसक्यूएल का उपयोग करना सीखेंगे। SQL वास्तविक घटक है जो डेटाबेस में डेटा को लाने और अद्यतन करने का ध्यान रखता है जबकि PL / SQL वह घटक है जो इन डेटा को संसाधित करता है। इसके अलावा, इस लेख में, हम पीएल / एसक्यूएल ब्लॉक के भीतर एसक्यूएल को संयोजित करने के तरीके के बारे में भी चर्चा करेंगे।

इस ट्यूटोरियल में, आप सीखेंगे-

  • डेटा प्रविष्टि
  • डेटा अपडेट
  • डेटा डिलीट करना
  • डेटा चयन

पीएम / एसक्यूएल में डीएमएल लेनदेन

DML का मतलब डेटा मैनिपुलेशन लैंग्वेज है । इन बयानों का उपयोग मुख्य रूप से हेरफेर गतिविधि करने के लिए किया जाता है। यह नीचे के संचालन से संबंधित है।

  • डेटा प्रविष्टि
  • डेटा अपडेट
  • डेटा डिलीट करना
  • डेटा चयन

PL / SQL में, हम केवल SQL कमांड का उपयोग करके डेटा हेरफेर कर सकते हैं।

डेटा प्रविष्टि

PL / SQL में, हम SQL कमांड INSERT INTO का उपयोग करके किसी भी तालिका में डेटा सम्मिलित कर सकते हैं। यह कमांड इनपुट के रूप में टेबल का नाम, टेबल कॉलम और कॉलम वैल्यू लेगा और बेस टेबल में वैल्यू डालेगा।

INSERT कमांड प्रत्येक कॉलम के लिए मान देने के बजाय 'SELECT' स्टेटमेंट का उपयोग करके दूसरे टेबल से सीधे मान ले सकता है। 'SELECT' स्टेटमेंट के माध्यम से, हम उतनी पंक्तियाँ सम्मिलित कर सकते हैं जितनी कि आधार तालिका में है।

वाक्य - विन्यास:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • उपरोक्त सिंटैक्स INSERT INTO कमांड को दर्शाता है। तालिका नाम और मान एक अनिवार्य फ़ील्ड हैं, जबकि स्तंभ नाम अनिवार्य नहीं हैं यदि सम्मिलित विवरण में तालिका के सभी स्तंभों के मान हैं।
  • यदि मूल्यों को अलग-अलग दिखाया गया है तो 'VALUES' शब्द अनिवार्य है।

वाक्य - विन्यास:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • उपरोक्त सिंटैक्स INSERT INTO कमांड को दर्शाता है जो सेलेक्ट कमांड का उपयोग करके मूल्यों को सीधे से लेता है।
  • कीवर्ड 'VALUES' इस मामले में मौजूद नहीं होना चाहिए क्योंकि मान अलग से नहीं दिए गए हैं।

डेटा अपडेट

डेटा अपडेट का तात्पर्य तालिका में किसी भी कॉलम के मूल्य का अपडेट है। यह 'अद्यतन' कथन का उपयोग करके किया जा सकता है। यह कथन इनपुट के रूप में टेबल का नाम, कॉलम का नाम और मूल्य लेता है और डेटा को अपडेट करता है।

वाक्य - विन्यास:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • उपरोक्त सिंटैक्स UPDATE दिखाता है। कीवर्ड 'सेट' निर्देश देता है कि पीएल / एसक्यूएल इंजन दिए गए मान के साथ कॉलम के मूल्य को अपडेट करें।
  • 'WHERE ’क्लॉज वैकल्पिक है। यदि यह क्लॉज़ नहीं दिया जाता है, तो संपूर्ण तालिका में उल्लिखित कॉलम का मूल्य अपडेट किया जाएगा।

डेटा डिलीट करना

डेटा विलोपन का अर्थ है डेटाबेस तालिका से एक पूर्ण रिकॉर्ड को हटाना। इस उद्देश्य के लिए 'DELETE' कमांड का उपयोग किया जाता है।

वाक्य - विन्यास:

BEGINDELETEFROM
WHERE ;END;
  • उपरोक्त सिंटैक्स DELETE कमांड दिखाता है। कीवर्ड 'FROM' वैकल्पिक है और 'FROM' क्लॉज के साथ या कमांड के समान व्यवहार करता है।
  • 'WHERE ’क्लॉज वैकल्पिक है। यदि यह क्लॉज़ नहीं दिया जाता है, तो पूरी तालिका हटा दी जाएगी।

डेटा चयन

डेटा प्रक्षेपण / लाने का अर्थ है डेटाबेस तालिका से आवश्यक डेटा को पुनः प्राप्त करना। इसे 'INTO' क्लॉज के साथ कमांड 'SELECT' का उपयोग करके प्राप्त किया जा सकता है। 'SELECT' कमांड डेटाबेस से मान लाएगा, और 'INTO' क्लॉज इन मानों को PL / SQL ब्लॉक के लोकल वेरिएबल में असाइन करेगा।

नीचे उन बिंदुओं पर विचार किया गया है, जिन्हें 'सेलेक्ट' स्टेटमेंट में माना जाना चाहिए।

  • 'SELECT' स्टेटमेंट में 'INTO' क्लॉज का उपयोग करते हुए केवल एक रिकॉर्ड वापस आना चाहिए क्योंकि एक वेरिएबल केवल एक वैल्यू को होल्ड कर सकता है। यदि _ TOO_MANY_ROWS ’की तुलना में than SELECT’ स्टेटमेंट एक से अधिक मान देता है, तो अपवाद उठाया जाएगा।
  • 'SELECT' स्टेटमेंट 'INTO' क्लॉज में वैरिएबल को वैल्यू असाइन करेगा, इसलिए वैल्यू को पॉप्युलेट करने के लिए इसे टेबल से कम से कम एक रिकॉर्ड प्राप्त करना होगा। यदि इसे कोई रिकॉर्ड नहीं मिला, तो अपवाद 'NO_DATA_FOUND' उठाया जाता है।
  • 'SELECT' क्लॉज में कॉलम और उनके डेटाटाइप की संख्या को 'INTO' क्लॉज में वेरिएबल्स की संख्या और उनके डेटाटाइप्स के साथ मेल खाना चाहिए।
  • मानों को एक ही क्रम में लिया और आबाद किया जाता है जैसा कि कथन में वर्णित है।
  • 'WHERE ’क्लॉज वैकल्पिक है जो उन रिकॉर्ड्स पर अधिक प्रतिबंध लगाने की अनुमति देता है जो कि लाने जा रहे हैं।
  • शर्तों के मूल्यों को परिभाषित करने के लिए अन्य डीएमएल बयानों की 'WHERE' स्थिति में 'SELECT' स्टेटमेंट का उपयोग किया जा सकता है।
  • The INSERT ’, ATE UPDATE’, E DELETE ’स्टेटमेंट का उपयोग करते समय The SELECT’ स्टेटमेंट में ause INTO ’क्लॉज नहीं होना चाहिए क्योंकि इससे इन मामलों में कोई वैरिएबल पॉप्युलेट नहीं होगा।

वाक्य - विन्यास:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • उपरोक्त सिंटैक्स SELECT-INTO कमांड को दर्शाता है। कीवर्ड 'FROM' अनिवार्य है जो उस तालिका के नाम की पहचान करता है जिससे डेटा प्राप्त करने की आवश्यकता है।
  • 'WHERE ’क्लॉज वैकल्पिक है। यदि यह क्लॉज़ नहीं दिया जाता है, तो संपूर्ण तालिका का डेटा प्राप्त किया जाएगा।

उदाहरण 1 : इस उदाहरण में, हम यह देखने जा रहे हैं कि PL / SQL में DML ऑपरेशन कैसे करें। हम नीचे के चार रिकॉर्ड एम्पायर टेबल में डालने जा रहे हैं।

EMP_NAME कर्मचारी सं वेतन मैनेजर
बीबीबी 1000 25000 एएए
XXX 1001 10000 बीबीबी
YYY 1002 10000 बीबीबी
ZZZ 1003 7500 बीबीबी

फिर हम 'XXX' के वेतन को 15000 में अपडेट करने जा रहे हैं, और हम कर्मचारी रिकॉर्ड 'ZZZ' को हटाने जा रहे हैं। अंत में, हम 'XXX' कर्मचारी के विवरण को प्रस्तुत करने जा रहे हैं।

DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):‭COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/

आउटपुट:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

कोड स्पष्टीकरण:

  • कोड लाइन 2-5 : चर की घोषणा।
  • कोड लाइन 7-14 : रिकॉर्ड्स को एम्पायर टेबल में सम्मिलित करना।
  • कोड लाइन 15 : सम्मिलित लेनदेन करना।
  • कोड लाइन 17-19 : कर्मचारी के वेतन को अपडेट करना 'XXX' से 15000 तक
  • कोड लाइन 20 : अद्यतन लेनदेन करना।
  • कोड लाइन 22 : 'ZZZ' का रिकॉर्ड हटाना
  • कोड लाइन 23 : डिलीट ट्रांजैक्शन को कमिट करना।
  • कोड लाइन 25-27 : 'XXX' के रिकॉर्ड का चयन करना और चर l_emp_name, l_emp_no, l_salary, l_manager में पॉप्युलेट करना।
  • कोड लाइन 28-32 : भ्रूण के रिकॉर्ड मूल्य को प्रदर्शित करना।