पायथन SQLite - डेटा हटाएं

SQLite तालिका से रिकॉर्ड हटाने के लिए, आपको DELETE FROM कथन का उपयोग करने की आवश्यकता है। विशिष्ट रिकॉर्ड को निकालने के लिए, आपको इसके साथ WHERE क्लॉज़ का उपयोग करना होगा।

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

SQLite में DELETE क्वेरी का सिंटैक्स निम्नलिखित है -

DELETE FROM table_name [WHERE Clause]

उदाहरण

मान लें कि हमने निम्नलिखित क्वेरी का उपयोग करके CRICKETERS नाम के साथ एक तालिका बनाई है -

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

और अगर हमने INSERT कथनों का उपयोग करते हुए इसमें 5 रिकॉर्ड डाले हैं -

sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

निम्नलिखित कथन से उस क्रिकेटर का रिकॉर्ड नष्ट हो जाता है जिसका अंतिम नाम 'संगकारा' है।

sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>

यदि आप SELECT स्टेटमेंट का उपयोग करके तालिका की सामग्री को पुनः प्राप्त करते हैं, तो आप केवल 4 रिकॉर्ड देख सकते हैं क्योंकि हमने एक को हटा दिया है।

sqlite> SELECT * FROM CRICKETERS;
First_Name   Last_Name    Age    Place_Of_B   Country
----------   ----------   ----   ----------   --------
Shikhar      Dhawan       46     Delhi        India
Jonathan     Trott        39     CapeTown     SouthAfrica
Virat        Kohli        31     Delhi        India
Rohit        Sharma       33     Nagpur       India
sqlite>

यदि आप WH कथन के बिना DELETE FROM कथन को निष्पादित करते हैं, तो निर्दिष्ट तालिका से सभी रिकॉर्ड हटा दिए जाएंगे।

sqlite> DELETE FROM CRICKETERS;
sqlite>

चूंकि आपने सभी रिकॉर्ड हटा दिए हैं, अगर आप CRICKETERS तालिका की सामग्री को पुनः प्राप्त करने का प्रयास करते हैं, तो SELECT स्टेटमेंट का उपयोग करके आपको नीचे दिखाए गए अनुसार एक खाली परिणाम सेट मिलेगा -

sqlite> SELECT * FROM CRICKETERS;
sqlite>

पायथन का उपयोग करके डेटा हटाना

SQLite डेटाबेस में मौजूदा तालिका में रिकॉर्ड जोड़ने के लिए -

  • Sqlite3 पैकेज आयात करें।

  • डेटाबेस के नाम को एक पैरामीटर के रूप में पारित करके कनेक्ट () विधि का उपयोग करके एक कनेक्शन ऑब्जेक्ट बनाएं ।

  • cursor()पद्धति एक कर्सर ऑब्जेक्ट लौटाती है जिसका उपयोग करके आप SQLite3 के साथ संवाद कर सकते हैं। (ऊपर बनाई गई) कनेक्शन ऑब्जेक्ट पर कर्सर () ऑब्जेक्ट को आमंत्रित करके एक कर्सर ऑब्जेक्ट बनाएं।

  • फिर, कर्सर ऑब्जेक्ट पर एग्जीक्यूट () विधि को लागू करें, पास करके DELETE एक पैरामीटर के रूप में बयान।

उदाहरण

पायथन उदाहरण के बाद EMPLOYEE तालिका के रिकॉर्ड को 25 से अधिक आयु मान के साथ हटा दिया जाता है।

import sqlite3
#Connecting to sqlite
conn = sqlite3.connect('example.db')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Retrieving contents of the table
print("Contents of the table: ")
cursor.execute('''SELECT * from EMPLOYEE''')
print(cursor.fetchall())

#Deleting records
cursor.execute('''DELETE FROM EMPLOYEE WHERE AGE > 25''')

#Retrieving data after delete
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

उत्पादन

Contents of the table:
[
   ('Ramya', 'Rama priya', 27, 'F', 9000.0), 
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Sharukh', 'Sheik', 26, 'M', 8300.0), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]
Contents of the table after delete operation
[
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]