पीएल SQL इंसर्ट का उपयोग कैसे करें, अपडेट करें, हटाएं और स्टेटमेंट का चयन करें
how use pl sql insert
यह ट्यूटोरियल बताता है कि PL SQL INSERT, UPDATE, DELETE और SELECT कमांड का उपयोग प्रोग्रामिंग उदाहरणों के साथ कैसे करें:
इस लेख में, हम जारी रखेंगे PL / SQL श्रृंखला । में PL / SQL DataTypes, Constants और Variable ट्यूटोरियल, हमने पीएल SQL डेटा प्रकारों, चर, स्थिरांक और शाब्दिक के बारे में विस्तार से प्रोग्रामिंग उदाहरणों की मदद से सीखा है। यहां, हम पीएल एसक्यूएल डीएमएल स्टेटमेंट्स पर चर्चा करेंगे और वे कैसे काम करेंगे।
हम PL / SQL तालिकाओं में डेटा में हेरफेर करने के लिए PL SQL INSERT, DELETE, UPDATE और SELECT कमांड का पता लगाएंगे।
आइये, INSERT, DELETE, UPDATE और तालिकाओं पर कार्यान्वयन आदेशों को समझने की शुरुआत करें। सामूहिक रूप से इन्हें डाटा मैनिप्युलेशन लैंग्वेज (डीएमएल) स्टेटमेंट्स कहा जाता है।
PL SQL INSERT कमांड
INSERT INTO स्टेटमेंट का इस्तेमाल टेबल में डेटा डालने के लिए किया जाता है। इसे कहते हैं a डेटा हेरफेर भाषा । यह तालिका नाम और स्तंभ नाम और मानों को इनपुट के रूप में उपयोग करता है और तालिका में मूल्यों का सम्मिलन करता है।
वाक्य - विन्यास:
INSERT INTO <
> VALUES (<>, <>, …..);
तालिका का नाम और मूल्य डाला जाना PL SQL INSERT विवरण का अनिवार्य हिस्सा है। वैकल्पिक रूप से, हम उन स्तंभ नामों का भी उल्लेख कर सकते हैं, जहाँ मान डाले जाने हैं।
हमने नीचे दिए गए SQL स्टेटमेंट की मदद से EMPLOYEE टेबल बनाई है:
CREATE TABLE EMPLOYEE ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
PL SQL INSERT के साथ कोड कार्यान्वयन:
BEGIN INSERT INTO EMPLOYEE VALUES (1, 'FLEX', 34); INSERT INTO EMPLOYEE VALUES (2, 'HARRY', 35); END
उपरोक्त कोड का आउटपुट होना चाहिए:
SELECT * from EMPLOYEE;
INSERT का चयन करें
सभी रंगों में सम्मिलित करें
INSERT INTO SELECT का उपयोग सेलेक्ट स्टेटमेंट रिजल्ट पर कार्य करके पंक्तियों को एक टेबल में डालने के लिए किया जाता है। तालिका से एक पंक्ति प्राप्त करना और एक अलग तालिका में सम्मिलित करना आवश्यक हो सकता है।
INSERT INTO <> (col1, col2, col3) SELECT col1, col2, col3 FROM <> WHERE condition;
INSERT INTO SELECT कमांड को स्रोत और लक्ष्य तालिका के डेटा प्रकार समान होने की आवश्यकता है। यदि हमें स्रोत तालिका की संपूर्ण पंक्तियों को लक्ष्य तालिका में कॉपी करने की आवश्यकता होती है, तो हम WHERE की स्थिति को छोड़ सकते हैं।
हमने नीचे दिए गए SQL स्टेटमेंट की मदद से MANAGER नामक एक और तालिका बनाई है:
CREATE TABLE MANAGER ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
INSERT INTO SELECT के साथ कोड कार्यान्वयन:
BEGIN INSERT INTO MANAGER (CODE, NAME, AGE) SELECT CODE, NAME, AGE FROM EMPLOYEE WHERE CODE = 1; END;
उपरोक्त कोड का आउटपुट:
SELECT * from MANAGER;
INSERT आंशिक डेटा
हम आंशिक डेटा को किसी अन्य तालिका में भी सम्मिलित कर सकते हैं। आइए हम पहले बनाएं MANAGERDETAIL नीचे क्वेरी के साथ EMPLOYEE तालिका से तालिका।
CREATE TABLE MANAGERDETAIL AS SELECT * FROM EMPLOYEE WHERE 1 = 0;
यहाँ, कहाँ 1 = 0 EMPLOYEE तालिका के पहले कॉलम को संदर्भित करता है जो CODE है।
अगला, हम INMPERT INTO SELECT स्टेटमेंट का उपयोग EMPLOYEE तालिका से MANAGERDETAIL तालिका में डेटा को डुप्लिकेट करने के लिए करेंगे।
INSERT INTO SELECT के साथ कोड कार्यान्वयन;
BEGIN INSERT INTO MANAGERDETAIL SELECT CODE, NAME, AGE FROM EMPLOYEE WHERE CODE! = 0 END;
उपरोक्त कोड का आउटपुट:
SELECT * from MANAGERDETAIL;
उपरोक्त उदाहरण में, हमने INSERT कमांड में कॉलम नामों का उल्लेख नहीं किया है, क्योंकि SELECT कमांड के आउटपुट में मान हैं जो MANAGERDETAIL टेबल कॉलम के साथ मेल खाते हैं। इसके अलावा, हमने क्लॉज़ WHERE के साथ एक शर्त शामिल की है।
INSERT आंशिक डेटा और कानूनी
हम एक तालिका में आंशिक डेटा और शाब्दिक मूल्य सम्मिलित कर सकते हैं।
नीचे दिए गए क्वेरी के साथ पहले MANAGERCONTACT टेबल बनाएं:
CREATE TABLE MANAGERCONTACT ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
अब, हम फिर से EMPLOYEE तालिका की मदद लेते हैं और EMPLOYEE तालिका से MANAGERCONTACT तालिका के डेटा की नकल करने का प्रयास करते हैं।
INSERT INTO के साथ कोड कार्यान्वयन:
BEGIN INSERT INTO MANAGERCONTACT (CODE, NAME, AGE) SELECT CODE, NAME, 0 FROM EMPLOYEE; END;
उपरोक्त कोड का आउटपुट:
SELECT * from MANAGERCONTACT;
उपरोक्त उदाहरण में, हमने EMPLOYEE तालिका से मान प्राप्त किए हैं और INSERT बयान में 0 शाब्दिक को भी शामिल किया है, जिसने AGAG स्तंभ के मानों को MANAGERCONTACT तालिका में 0 से संशोधित किया है।
INSERT ALL
INSERT सभी कथन का उपयोग एक ही तालिका या एकाधिक तालिकाओं में एक से अधिक पंक्ति जोड़ने के लिए किया जाता है। इसे मल्टी-टेबल कमांड भी कहा जाता है और यह दो प्रकार की सशर्त और बिना शर्त है।
# 1) सभी समावेशी
तालिका में एक से अधिक पंक्ति सम्मिलित करने के लिए, INSERT ALL कथन का उपयोग किया जाता है।
वाक्य - विन्यास:
INSERT ALL INTO <
> (c1, c2, c3) VALUES (v1, v2, v3) INTO <
> (c1, c2, c3) VALUES (v4, v5, v6) INTO <
> (c1, c2, c3) VALUES (v7, v8, v9)
यहाँ, c1, c2 और c3 कॉलम नाम हैं, और v1, v2 और v3 सम्मिलित किए जाने वाले मान हैं। मामले में, हमें उपवर्ग के बजाय शाब्दिक मूल्य का उपयोग करना होगा; हमें नीचे क्वेरी का उपयोग करना होगा:
SELECT * FROM dual;
हमने नीचे दिए गए SQL स्टेटमेंट की मदद से SOCCERPLAYERS टेबल बनाई है:
CREATE TABLE SOCCERPLAYERS ( PLAYERID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COUNTRY VARCHAR (15), PRIMARY KEY (PLAYERID) );
INSERT ALL के साथ कोड कार्यान्वयन:
BEGIN INSERT ALL INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (4, 'DANIEL', 'USA') INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (8, 'DANNY', 'ITALY') INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (7, 'FRANK', 'FRANCE') SELECT 1 FROM dual; END;
उपरोक्त कोड का आउटपुट:
SELECT * from SOCCERPLAYERS;
उपरोक्त उदाहरण में, तीन पंक्तियों को एक बार में एक तालिका में सम्मिलित किया गया है जिसमें INSERT ALL कमांड है।
कई तालिकाओं में एक से अधिक पंक्ति सम्मिलित करने के लिए, INSERT ALL कथन का उपयोग किया जाता है।
वाक्य - विन्यास:
INSERT ALL INTO <> (c1, c2, c3) VALUES (v1, v2, v3) INTO <> (c1, c2, c3) VALUES (v4, v5, v6) INTO <> (c1, c2, c3) VALUES (v7, v8, v9) Subquery;
यहाँ, c1, c2 और c3 कॉलम नाम हैं, और v1, v2 और v3 सम्मिलित किए जाने वाले मान हैं। Table_name1, table_name2 और table_name3 तालिका नाम हैं।
# 2) व्यक्तिगत प्रवेश सभी
INSERT सभी कथन कुछ शर्तों के आधार पर एक पंक्ति में एक से अधिक तालिकाएँ सम्मिलित कर सकते हैं।
वाक्य - विन्यास:
INSERT (ALL | FIRST) WHEN cond1 THEN INTO table_name1 <> VALUES <> WHEN cond2 THEN INTO table_name2 <> VALUES <> ELSE INTO table_name3 <> VALUES <> Subquery;
कीवर्ड ALL का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि WHERE क्लॉज़ के तहत सभी शर्तों को निष्पादित किया जाएगा। यदि कोई शर्त पूरी होती है, तो संबंधित INTO क्लॉज चलेगा।
यदि कीवर्ड FIRST का उपयोग किया जाता है, तो एक उपकुंजी से प्राप्त प्रत्येक व्यक्तिगत पंक्ति के लिए, Oracle ऊपर से नीचे तक खंड में मापदंड निष्पादित करता है। एक बार जब कोई शर्त पूरी हो जाती है, तो संबंधित INTO क्लॉज चलेगा और उस पंक्ति के लिए दूसरे WHEN क्लॉज पर कूद जाएगा।
हमने नीचे दिए गए SQL कथनों की मदद से VEHICLE, CARS, SMALLCARS और LARGECARS टेबल बनाए हैं:
CREATE TABLE VEHICLE ( CARID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COLOR VARCHAR (15), PRIMARY KEY (CARID) );
नीचे दिए गए मानों को वाहन तालिका में डालें:
INSERT INTO VEHICLE VALUES (1, 'AUDI', 'RED'); INSERT INTO VEHICLE VALUES (4, 'BMW', 'WHITE'); INSERT INTO VEHICLE VALUES (7, 'KIA', 'GREEN'); CREATE TABLE CARS ( CARID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COLOR VARCHAR (15), PRIMARY KEY (CARID) ); CREATE TABLE SMALLCARS AS SELECT * FROM CARS; CREATE TABLE LARGECARS AS SELECT * FROM CARS;
INSERT ALL के साथ कोड कार्यान्वयन।
BEGIN INSERT ALL WHEN CARID = 1 THEN INTO CARS WHEN CARID = 4 THEN INTO SMALLCARS WHEN CARID = 7 THEN INTO LARGECARS SELECT CARID, NAME, COLOR FROM VEHICLE; END;
उपरोक्त कोड का आउटपुट:
SELECT * from CARS;
SELECT * from SMALLCARS;
SELECT * from LARGECARS;
उपरोक्त उदाहरण में, CARDID मान के आधार पर प्रत्येक तीन तालिकाओं में एक पंक्ति डाली गई है।
INSERT सभी विवरण के साथ कुछ प्रतिबंध हैं:
इसका उपयोग केवल तालिकाओं में मान डालने के लिए किया जाता है। यह विचारों या भौतिक विचारों के साथ काम नहीं करता है।
यह दूरस्थ तालिकाओं में मान डालने में सक्षम नहीं है।
एक INSERT INTO कमांड को संभालने वाले स्तंभों की संख्या 999 से अधिक नहीं होनी चाहिए।
तालिका संग्रह की अभिव्यक्ति का उपयोग बहु-तालिका INSERT कमांड में नहीं किया जा सकता है।
एक बहु-तालिका INSERT सबक्वेरी एक अनुक्रम का उपयोग करने में सक्षम नहीं है।
पीएल एसक्यूएल अपडेट कमांड
अद्यतन मान का उपयोग तालिका में मानों को संशोधित करने के लिए किया जाता है। इसे ए भी कहा जाता है डेटा हेरफेर भाषा । यह तालिका के नाम, कॉलम और मानों को इनपुट के रूप में उपयोग करता है और तालिका पर मूल्यों के संशोधन को निष्पादित करता है।
वाक्य - विन्यास:
UPDATE <
> SET <>=<>, <>=<>,… WHERE <>;
SET कीवर्ड का उपयोग नए मान के साथ स्तंभ मान को बदलने के लिए किया जाता है। वैकल्पिक रूप से, WHERE कीवर्ड का उपयोग किया जाता है, यदि छोड़ा गया है, तो पूरी तालिका में निर्दिष्ट कॉलम का मूल्य संशोधित किया जाएगा।
एक पंक्ति के अद्यतन एकल रंग
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
अद्यतन के साथ कोड कार्यान्वयन:
BEGIN UPDATE EMPLOYEE SET NAME = 'HENRY' WHERE CODE=1; END;
उपरोक्त कोड का आउटपुट:
SELECT * from EMPLOYEE;
एक पंक्ति के अद्यतन बहु रंग
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
अद्यतन के साथ कोड कार्यान्वयन:
BEGIN UPDATE EMPLOYEE SET NAME = 'COMO', AGE = 30 WHERE CODE=2; END;
उपरोक्त कोड का आउटपुट:
SELECT * from EMPLOYEE;
अद्यतन एकाधिक पंक्तियों
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
अद्यतन के साथ कोड कार्यान्वयन:
BEGIN UPDATE EMPLOYEE SET AGE = AGE +1; END;
उपरोक्त कोड का आउटपुट:
SELECT * from EMPLOYEE;
उपरोक्त उदाहरण में, सभी कर्मचारियों की AGE 1 से बढ़ी।
PL SQL हटाएं कमांड
DELETE कथन का उपयोग तालिका से संपूर्ण रिकॉर्ड निकालने के लिए किया जाता है। इसे ए भी कहा जाता है डेटा हेरफेर भाषा।
वाक्य - विन्यास:
DELETE FROM <
> WHERE <>;
कीवर्ड FROM अनिवार्य नहीं है और DELETE विवरण उसी परिणाम का परिणाम देगा यदि FROM को क्वेरी में जोड़ा गया है या नहीं जोड़ा गया है। वैकल्पिक रूप से, WHERE कीवर्ड का उपयोग किया जाता है, यदि छोड़ा गया है, तो पूरी तालिका हटा दी जाएगी।
टेबल से DELETE सिंगल रो
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
DELETE के साथ कोड कार्यान्वयन:
BEGIN DELETE FROM EMPLOYEE WHERE CODE=2; END;
उपरोक्त कोड का आउटपुट:
SELECT * from EMPLOYEE;
टेबल से मल्टीपल रोल्स डिलीट करें
चलिए फिर से MANAGERDETAIL टेबल पर विचार करते हैं।
DELETE के साथ कोड कार्यान्वयन:
BEGIN DELETE FROM MANAGERDETAIL WHERE CODE > 0; END;
उपरोक्त कोड का आउटपुट:
SELECT * from MANAGERDETAIL;
टेबल से DELETE ENTIRE ROWS
आइए हम फिर से वाहन तालिका पर विचार करें।
DELETE के साथ कोड कार्यान्वयन:
BEGIN DELETE FROM VEHICLE; END;
उपरोक्त कोड का आउटपुट:
SELECT * from VEHICLE;
PL SQL कमांड का चयन करें
डेटाबेस से डेटा प्राप्त करने के लिए SELECT स्टेटमेंट का उपयोग किया जाता है। SELECT INTO स्टेटमेंट का उपयोग डेटाबेस से मानों को प्राप्त करने और उन्हें पीएल / एसक्यूएल द्वारा शुरू किए गए स्थानीय चरों पर संग्रहीत करने के लिए किया जाता है।
यदि हम केवल एक SELECT स्टेटमेंट का उपयोग करते हैं, तो यह एक एकल रिकॉर्ड देता है। मामले में एक सेलेक्ट स्टेटमेंट कई मानों को ला रहा है, TOO_MANY_ROWS अपवाद PL / SQL द्वारा फेंका गया है। SELECT INTO स्टेटमेंट का उपयोग करते हुए, हम वैरिएबल को कम से कम एक मान प्रदान करते हैं। हालाँकि, यदि डेटाबेस से कोई रिकॉर्ड नहीं मिला है, तो कोई डेटा नहीं मिला अपवाद फेंक दिया जाता है।
स्तंभों की संख्या और उनका प्रकार INTO कीवर्ड में चर की संख्या और उनके प्रकार के बराबर होना चाहिए। मान डेटाबेस से उसी क्रम में प्राप्त किए जाते हैं जैसा कि SELECT स्टेटमेंट में परिभाषित किया गया है।
WHECT का चयन कथन के अंदर कीवर्ड वैकल्पिक है और हमें कुछ मानदंड पूरा करने वाले रिकॉर्ड प्राप्त करने की अनुमति देता है। यह ध्यान रखना महत्वपूर्ण है कि DELETE, UPDATE और INSERT कमांड के साथ SELECT क्वेरी में INTO क्लॉज नहीं है।
वाक्य - विन्यास:
SELECT <>, <>, ..<> INTO <>, <>, … <> FROM <
> WHERE <>;
एक टेबल के सभी रंगों से दूर डेटा
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
चयन के साथ कोड कार्यान्वयन:
BEGIN SELECT * FROM EMPLOYEE WHERE CODE=1; END;
उपरोक्त कोड का आउटपुट:
अपवाद का चयन करते हुए चयन कथन के साथ कोड कार्यान्वयन:
BEGIN SELECT * FROM EMPLOYEE WHERE CODE=2; END;
उपरोक्त कोड का आउटपुट:
कोई भी डेटा अपवाद नहीं मिला है क्योंकि SELECT स्टेटमेंट निर्दिष्ट शर्त के साथ मेल खाने में विफल रही है क्योंकि डेटाबेस में CODE 2 के साथ कोई कर्मचारी नहीं है।
एक टेबल के रंग से FETCH डेटा
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
BEGIN SELECT CODE FROM EMPLOYEE; END;
उपरोक्त कोड का आउटपुट:
एक टेबल के मल्टीपल रंगों से फ़ेटा डेटा
आइए हम फिर से EMPLOYEE तालिका पर विचार करें।
BEGIN SELECT CODE, NAME FROM EMPLOYEE; END;
उपरोक्त कोड का आउटपुट:
उपरोक्त उदाहरण में, दो कॉलम CODE और NAME को SELECT स्टेटमेंट में जोड़ा गया है।
अक्सर पूछे जाने वाले प्रश्न और उत्तर
Q # 1) INSERT, UPDATE और SQL में DELETE क्या है?
उत्तर: INSERT, UPDATE और DELETE SQL में कमांड हैं जो डेटा को ऑपरेट और अपडेट करने में मदद करते हैं। INSERT कथन तालिका में पंक्तियों को सम्मिलित करता है। DELETE कथन तालिका से पंक्तियों को हटाता है और अद्यतन कथन तालिका की पंक्तियों में मानों को अद्यतन करता है।
Q # 2) क्या हम SQL में देखने के लिए INSERT, UPDATE और DELETE कर सकते हैं?
उत्तर: हाँ, हम SQL में देखने के लिए INSERT, UPDATE और DELETE कर सकते हैं। यदि दृश्य तालिकाओं के बीच शामिल हो गया है, तो हम केवल INSERT और अद्यतन क्रियाएँ कर सकते हैं, लेकिन DELETE कार्रवाई नहीं कर सकते। किसी दृश्य को हटाने के लिए DROP कथन का उपयोग किया जाता है।
Q # 3) क्या INSERT DDL या DML है?
उत्तर: INSERT एक DML या डेटा हेरफेर भाषा है)। अन्य डीएमएल स्टेटमेंट्स में UPDATE, DELETE इत्यादि शामिल हैं। DDL स्टेटमेंट टेबल, स्कीमा और डेटाबेस बनाने में सक्षम है।
Q # 4) क्या हम क्वेरी को हटाने में JOIN का उपयोग कर सकते हैं?
उत्तर: हाँ, हम तालिका से पंक्तियों को हटाने के लिए DELETE कमांड में INNER JOIN स्टेटमेंट का उपयोग कर सकते हैं।
Q # 5) ट्रंकैट और डिलीट कमांड में क्या अंतर है?
उत्तर: TRUNCATE एक DDL कथन है जबकि DELETE DML है। TRUNCATE कमांड पूर्ण तालिका को निकालने में सक्षम है। यह तालिका की अखंडता नहीं रखता है। DELETE कथन केवल तालिका पर विशेष डेटा हटा सकता है। यह विलोपन के लिए शर्तों को भी शामिल कर सकता है।
Q # 6) डीएमएल, डीसीएल और डीडीएल क्या हैं?
उत्तर: SQL स्टेटमेंट प्रकार के होते हैं - DML, DCL और DML।
डेटा डेफिनिशन लैंग्वेज या DDL में ALTER, DROP, CREATE, RENAME, TRUNCATE, और COMMENT जैसी कमांड शामिल हैं। डेटा मैनिपुलेशन लैंग्वेज या डीएमएल में INSERT, DELETE, MERGE, UPDATE, CALL, LOCK TABLE और EXPLAIN PLAN जैसे कमांड शामिल हैं।
डेटा कंट्रोल लैंग्वेज या DCL में GRANT और REVOKE जैसे कमांड शामिल हैं।
Q # 7) क्या ट्रंकेट ड्रॉप से तेज है?
उत्तर: हां, TRUNCATE ऑपरेशन DROP से तेज है। TRUNCATE कमांड केवल तालिका से डेटा हटाती है। DROP कमांड तालिका संरचना और तालिका से डेटा मिटा देता है।
निष्कर्ष
इस ट्यूटोरियल में, हमने पीएल एसक्यूएल कमांड्स की कुछ बुनियादी अवधारणाओं के बारे में विस्तार से चर्चा की है जो इस पर ज्ञान विकसित करने के लिए आवश्यक हैं। हमने नीचे सूचीबद्ध निम्नलिखित विषयों को कवर किया है: