SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite - डेटा हटाएं

DELETE किसी तालिका में डेटा को हटाने के लिए कथन का उपयोग किया जा सकता है।

WHERE क्लॉज का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि वास्तव में किन पंक्तियों को हटाया जाना चाहिए।

WHERE द्वारा लागू की गई फ़िल्टरिंग शर्तों के आधार पर आप सभी पंक्तियों, कुछ पंक्तियों या किसी को भी नहीं हटा सकते हैं खंड।

एक साधारण डिलीट

सबसे पहले, आइए एक कलाकार को हटाते हैं:

sqlite> SELECT * FROM Artists;
ArtistId  ArtistName            Bio                                     
--------  --------------------  ----------------------------------------
1         Joe Satriani                                                  
2         Steve Vai                                                     
3         The Tea Party                                                 
4         Noiseworks                                                    
5         Wayne Jury                                                    
6         Mr Percival                                                   
7         Iron Maiden                                                   
8         Atmasphere            Australian jazz band centred around poly
9         Ian Moss                                                      
10        Magnum                                                        
11        Strapping Young Lad                                           
12        Slayer                                                        
13        Primus                                                        
14        Pat Metheny                                                   
15        Frank Gambale                                                 
16        Mothers of Invention                                          
17        The Wiggles                                                   

ठीक है, आइए कलाकार संख्या 12 को हटा दें (कातिल)।

यहां सरल डिलीट स्टेटमेंट दिया गया है जो उस रिकॉर्ड को कलाकारों . से हटा देता है तालिका:

DELETE FROM Artists
WHERE ArtistId = 12;

इसलिए, इसे चलाने के बाद, हम सत्यापित कर सकते हैं कि रिकॉर्ड वास्तव में SELECT . के साथ हटा दिया गया था कथन:

sqlite> SELECT * FROM Artists WHERE ArtistId = 12;
sqlite>                                                                     

(कोई परिणाम नहीं)।

विदेशी कुंजी प्रतिबंध के साथ डेटा हटाना

यदि आप किसी विदेशी कुंजी द्वारा संदर्भित रिकॉर्ड को हटाने का प्रयास करते हैं, तो आपको एक त्रुटि मिलनी चाहिए। प्राथमिक कुंजी रिकॉर्ड को हटाने से पहले आपको पहले विदेशी कुंजी रिकॉर्ड को हटाना होगा।

उदाहरण के लिए, कलाकार आईडी 17 ( कलाकारों . से तालिका) को एल्बम . में दो रिकॉर्ड द्वारा संदर्भित किया जाता है तालिका (देखें ArtistId कॉलम):

sqlite> SELECT * FROM Albums WHERE ArtistId = 17;
AlbumId   AlbumName             ReleaseDate   ArtistId    
--------  --------------------  ------------  ------------
5         Yummy Yummy           1994          17          
13        Big Red Car           1995          17          

इसलिए अगर हम कलाकार को हटाने की कोशिश करते हैं 17 कलाकार तालिका से (जिसमें प्राथमिक कुंजी होती है), हमें एक त्रुटि मिलनी चाहिए।

ये रहा डिलीट स्टेटमेंट:

DELETE FROM Artists
WHERE ArtistId = 17;

और ये रहा परिणाम:

sqlite> DELETE FROM Artists
   ...> WHERE ArtistId = 17;
Error: FOREIGN KEY constraint failed
sqlite> 

इसलिए, प्राथमिक कुंजी को हटाने से पहले हमें विदेशी कुंजी रिकॉर्ड को हटाना होगा।

अगर आपको विदेशी कुंजी बाधा विफल नहीं हुई संदेश, आपको विदेशी कुंजी बाधा जाँच को सक्षम करने की आवश्यकता हो सकती है। PRAGMA foreign_keys = ON; चलाएं विदेशी कुंजी बाधा जांच सक्षम करने के लिए।

संबद्ध रिकॉर्ड हटाएं

तो चलिए एल्बम . में संबंधित रिकॉर्ड को हटाते हैं तालिका, उपरोक्त डिलीट स्टेटमेंट को फिर से आज़माने से पहले।

DELETE FROM Albums
WHERE ArtistId = 17;

जांचें कि उन्हें हटा दिया गया था:

sqlite> SELECT * FROM Albums WHERE ArtistId = 17;
sqlite> 

(कोई परिणाम नहीं)।

आइए अब मूल डिलीट स्टेटमेंट को फिर से देखें:

DELETE FROM Artists
WHERE ArtistId = 17;

आशाजनक लग रहा है — कोई त्रुटि नहीं:

sqlite> DELETE FROM Artists
   ...> WHERE ArtistId = 17;
sqlite> 	

और एक SELECT कथन विलोपन की पुष्टि करता है:

sqlite> SELECT * FROM Artists WHERE ArtistId = 17;
sqlite> 

कोई परिणाम नहीं।

सभी पंक्तियां हटाएं

आप WHERE . को छोड़ कर किसी तालिका की सभी पंक्तियों को हटा सकते हैं खंड।

हमारे पास एक अतिरिक्त टेबल है ( Albums1 ), तो चलिए उस पर कोशिश करते हैं।

सबसे पहले, आइए देखें कि इसमें वास्तव में डेटा है:

sqlite> SELECT * FROM Albums1;
AlbumId   AlbumName             Year          ArtistId    
--------  --------------------  ------------  ------------
1         Killers               1981          7           
2         Powerslave            1984          7           
3         Surfing with the Ali  1987          1           
4         Heavy as a Really He  1995          11          
5         Yummy Yummy           1994          17          
6         Out of the Loop       2007          6           
7         Suck on This          1989          13          
8         Pork Soda             1993          13          
9         Sailing the Seas of   1991          13          
10        Flying in a Blue Dre  1989          1           
11        Black Swans and Worm  2010          1           
12        Somewhere in Time     1986          7           
13        Big Red Car           1995          17          

ऐसा होता है। तो चलिए आगे बढ़ते हैं और यह सब मिटा देते हैं:

DELETE FROM Albums1;

आइए अब इसकी सामग्री को दोबारा जांचें:

sqlite> SELECT * FROM Albums1;
sqlite> 

(कोई परिणाम नहीं)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uncaught TypeError कॉर्डोवा 3.5 के साथ अपरिभाषित-SQLite प्लगइन की विधि 'ओपनडेटाबेस' को कॉल नहीं कर सकता है

  2. synatx त्रुटि के पास (कोड 1) Android SQLite डालें

  3. SQLite चार () कैसे काम करता है

  4. टीसीएल मोड में SQLite क्वेरी परिणामों को कैसे प्रारूपित करें

  5. ऑफ़लाइन अंतर्राष्ट्रीयकरण ऐप कैसे बनाएं:कई भाषाओं का समर्थन करें