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

SQLite - एक तालिका बदलें

SQLite, SQL मानक ALTER TABLE . के सीमित उपसमुच्चय का समर्थन करता है बयान।

SQLite में, ALTER TABLE कमांड उपयोगकर्ता को किसी तालिका का नाम बदलने या मौजूदा तालिका में एक नया कॉलम जोड़ने की अनुमति देता है।

एक कॉलम जोड़ें

ADD COLUMN सिंटैक्स का उपयोग मौजूदा तालिका में एक नया कॉलम जोड़ने के लिए किया जाता है।

आइए कलाकारों . में एक कॉलम जोड़ें तालिका:

ALTER TABLE Artists
ADD COLUMN Bio TEXT;

और फिर .schema . के साथ तालिका की जांच करें आदेश:

sqlite> .schema Artists
CREATE TABLE Artists(
  ArtistId    INTEGER PRIMARY KEY, 
  ArtistName  TEXT NOT NULL
, Bio TEXT);

ADD COLUMN . का उपयोग करते समय निम्नलिखित प्रतिबंध लागू होते हैं SQLite में सिंटैक्स:

  • कॉलम में PRIMARY KEY नहीं हो सकती है या UNIQUE बाधा।
  • कॉलम का डिफ़ॉल्ट मान CURRENT_TIME . नहीं हो सकता है , CURRENT_DATE , CURRENT_TIMESTAMP , या कोष्ठक में व्यंजक।
  • यदि एक NOT NULL बाधा निर्दिष्ट है, तो कॉलम में NULL . के अलावा एक डिफ़ॉल्ट मान होना चाहिए ।
  • यदि विदेशी कुंजी बाधाएं सक्षम हैं और एक REFERENCES वाला कॉलम है क्लॉज जोड़ा गया है, कॉलम में NULL . का डिफ़ॉल्ट मान होना चाहिए ।

तालिका का नाम बदलें

RENAME TO सिंटैक्स आपको किसी तालिका का नाम बदलने की अनुमति देता है।

आइए हमारी एक टेबल का नाम बदलें:

ALTER TABLE Albums
RENAME TO Albums1;

और इसे .tables . से जांचें आदेश:

sqlite> .tables
Albums1  Artists

अब, आगे के किसी भी ऑपरेशन के लिए टेबल के नए नाम का उपयोग करना होगा। तो हम इस तरह से डेटा का चयन कर सकते हैं:

SELECT AlbumName, Year 
FROM Artists AS a INNER JOIN Albums1 AS r
ON a.ArtistId = r.ArtistId
WHERE a.ArtistName = 'Joe Satriani';
AlbumName             Year                                              
--------------------  --------------------------------------------------
Surfing with the Ali  1987                                              
Flying in a Blue Dre  1989                                              
Black Swans and Worm  2010                                              

कॉलम अपडेट करना या छोड़ना

SQLite DROP COLUMN जैसे क्लॉज का समर्थन नहीं करता है , ALTER COLUMN , और ADD CONSTRAINT , जो SQL मानक का हिस्सा हैं।

हालांकि, SQLite के साथ इन चीजों को करने के अन्य तरीके भी हैं।

एक कॉलम बदलें

मान लें कि हम वर्ष . का नाम बदलना चाहते हैं रिलीज़ दिनांक . के लिए कॉलम . साथ ही, हम NOT NULL को हटाना चाहते हैं प्रतिबंध।

ऐसा करने के लिए, आप एक नई तालिका (नई कॉलम परिभाषा के साथ) बना सकते हैं, पुरानी तालिका के डेटा के साथ तालिका को पॉप्युलेट कर सकते हैं, फिर एक बार पूर्ण होने पर, पुरानी तालिका को हटा सकते हैं और मूल नाम को दर्शाने के लिए नए का नाम बदल सकते हैं।

नई तालिका बनाएं

सबसे पहले, नई तालिका बनाएं (सूचना ReleaseDate Year . के बजाय )।

CREATE TABLE Albums(
  AlbumId     INTEGER PRIMARY KEY, 
  AlbumName   TEXT NOT NULL,
  ReleaseDate TEXT,
  ArtistId INTEGER NOT NULL,
  FOREIGN KEY(ArtistId) REFERENCES Artists(ArtistId)
);

तो अब हमारे पास हमारे डेटाबेस में निम्नलिखित टेबल हैं:

sqlite> .tables
Albums   Albums1  Artists

डेटा डालें

फिर पुरानी तालिका से डेटा डालें।

INSERT का उपयोग करें कथन जो पुरानी तालिका से डेटा का चयन करता है और उसे नई तालिका में सम्मिलित करता है। इस तरह:

INSERT INTO Albums (AlbumId, AlbumName, ReleaseDate, ArtistId)
SELECT AlbumId, AlbumName, Year, ArtistId
FROM Albums1;

सत्यापित करें कि डेटा नई तालिका में डाला गया था:

sqlite> SELECT * FROM Albums;
AlbumId   AlbumName                        ReleaseDate  ArtistId  
--------  -------------------------------  -----------  ----------
1         Killers                          1981         7         
2         Powerslave                       1984         7         
3         Surfing with the Alien           1987         1         
4         Heavy as a Really Heavy Thing    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 Cheese       1991         13        
10        Flying in a Blue Dream           1989         1         
11        Black Swans and Wormhole Wizard  2010         1         
12        Somewhere in Time                1986         7         
13        Big Red Car                      1995         17        

पुरानी तालिका छोड़ें

अब जब नई तालिका बनाई गई है और डेटा से भर गई है, तो हमारे पास पुरानी तालिका को हटाने, उसे संशोधित करने या उसे वैसे ही छोड़ने का विकल्प है।

आइए इसे अभी के लिए छोड़ दें, हम इसे बाद में हटा देंगे।

एक कॉलम छोड़ें

एक कॉलम ड्रॉप करने के लिए, आप एक SELECT . से एक टेबल बना सकते हैं बयान। SELECT . में कथन, उस कॉलम को छोड़ दें जिसे आप छोड़ना चाहते हैं - SQLite केवल वे कॉलम बनाएगा जो SELECT में शामिल हैं बयान।

CREATE TABLE Albums2 AS 
SELECT AlbumId, AlbumName, ArtistId 
FROM Albums1;

और फिर यह देखने के लिए जांचें कि डेटा सफलतापूर्वक नई तालिका में डाला गया है:

sqlite> select * from Albums2;
AlbumId   AlbumName                        ArtistId  
--------  -------------------------------  ----------
1         Killers                          7         
2         Powerslave                       7         
3         Surfing with the Alien           1         
4         Heavy as a Really Heavy Thing    11        
5         Yummy Yummy                      17        
6         Out of the Loop                  6         
7         Suck on This                     13        
8         Pork Soda                        13        
9         Sailing the Seas of Cheese       13        
10        Flying in a Blue Dream           1         
11        Black Swans and Wormhole Wizard  1         
12        Somewhere in Time                7         
13        Big Red Car                      17        

तो अब हमारे पास हमारे डेटाबेस में निम्नलिखित टेबल हैं:

sqlite> .tables
Albums   Albums1  Albums2  Artists

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite में किसी तिथि से दिन, महीना और वर्ष कैसे निकालें?

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

  3. ContentValues ​​​​के माध्यम से डेटाबेस में टाइम स्टैम्प डालें

  4. संपत्ति फ़ोल्डर में डीबी के साथ ListView को कैसे पॉप्युलेट करें?

  5. SQLite onUpgrad () निराशा