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

SQLite ALTER TABLE

सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite ALTER TABLE का उपयोग कैसे करें मौजूदा तालिका की संरचना को बदलने के लिए कथन।

SQL-मानक और अन्य डेटाबेस सिस्टम के विपरीत, SQLite ALTER TABLE की बहुत सीमित कार्यक्षमता का समर्थन करता है बयान।

SQLite ALTER TABLE . का उपयोग करके कथन, आप दो कार्य कर सकते हैं:

  1. तालिका का नाम बदलें।
  2. तालिका में एक नया कॉलम जोड़ें।
  3. एक कॉलम का नाम बदलें (संस्करण 3.20.0 में समर्थित जोड़ा गया)

तालिका का नाम बदलने के लिए SQLite ALTER TABLE का उपयोग करना

किसी तालिका का नाम बदलने के लिए, आप निम्न का उपयोग करते हैं तालिका का नाम बदलें कथन:

ALTER TABLE existing_table
RENAME TO new_table;Code language: SQL (Structured Query Language) (sql)

तालिका का नाम बदलने से पहले ये महत्वपूर्ण बिंदु हैं जिन्हें आपको जानना चाहिए:

  • वैकल्पिक तालिका केवल डेटाबेस के भीतर एक तालिका का नाम बदलता है। आप संलग्न डेटाबेस के बीच तालिका को स्थानांतरित करने के लिए इसका उपयोग नहीं कर सकते हैं।
  • टेबल से जुड़े इंडेक्स और ट्रिगर जैसे डेटाबेस ऑब्जेक्ट नई टेबल से जुड़े होंगे।
  • यदि ट्रिगर में किसी तालिका को विचारों या कथनों द्वारा संदर्भित किया जाता है, तो आपको दृश्यों और ट्रिगर की परिभाषा को मैन्युअल रूप से बदलना होगा।

आइए तालिका का नाम बदलने का एक उदाहरण लेते हैं।

सबसे पहले, डिवाइस . नाम की एक टेबल बनाएं जिसमें तीन कॉलम हैं:name, मॉडल , धारावाहिक; और उपकरणों . में एक नई पंक्ति डालें टेबल।

CREATE TABLE devices (
   name TEXT NOT NULL,
   model TEXT NOT NULL,
   Serial INTEGER NOT NULL UNIQUE
);

INSERT INTO devices (name, model, serial)
VALUES('HP ZBook 17 G3 Mobile Workstation','ZBook','SN-2015');Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

दूसरा, टेबल का नाम बदलें . का उपयोग करें उपकरणों को बदलने के लिए कथन उपकरण . के लिए तालिका तालिका इस प्रकार है:

ALTER TABLE devices
RENAME TO equipment;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

तीसरा, उपकरण . से क्वेरी डेटा RENAME को सत्यापित करने के लिए तालिका ऑपरेशन।

SELECT
	name,
	model,
	serial
FROM
	equipment;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

टेबल में नया कॉलम जोड़ने के लिए SQLite ALTER TABLE का उपयोग करना

आप SQLite ALTER TABLE . का उपयोग कर सकते हैं मौजूदा तालिका में एक नया कॉलम जोड़ने के लिए कथन। इस परिदृश्य में, SQLite मौजूदा कॉलम सूची के अंत में नया कॉलम जोड़ता है।

निम्नलिखित ALTER TABLE ADD COLUMN . के सिंटैक्स को दर्शाता है कथन:

ALTER TABLE table_name
ADD COLUMN column_definition;Code language: SQL (Structured Query Language) (sql)

नए कॉलम पर कुछ प्रतिबंध हैं:

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

उदाहरण के लिए, आप स्थान . नाम का एक नया कॉलम जोड़ सकते हैं उपकरण . के लिए टेबल:

ALTER TABLE equipment 
ADD COLUMN location text;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

कॉलम का नाम बदलने के लिए SQLite ALTER TABLE का उपयोग करना

SQLite ने ALTER TABLE RENAME COLUMN का उपयोग करके कॉलम का नाम बदलने के लिए समर्थन जोड़ा संस्करण 3.20.0 में बयान

निम्नलिखित ALTER TABLE RENAME COLUMN . का सिंटैक्स दिखाता है कथन:

ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;

किसी स्तंभ का नाम बदलने के तरीके के बारे में अधिक जानकारी के लिए, उसका नाम बदलने वाला स्तंभ ट्यूटोरियल देखें।

अन्य कार्यों के लिए SQLite ALTER TABLE का उपयोग करना

यदि आप अन्य क्रियाएं करना चाहते हैं, जैसे, एक कॉलम ड्रॉप करें, तो आप निम्न चरणों का उपयोग करें:

निम्नलिखित स्क्रिप्ट उपरोक्त चरणों को दर्शाती है:

-- disable foreign key constraint check
PRAGMA foreign_keys=off;

-- start a transaction
BEGIN TRANSACTION;

-- Here you can drop column
CREATE TABLE IF NOT EXISTS new_table( 
   column_definition,
   ...
);
-- copy data from the table to the new_table
INSERT INTO new_table(column_list)
SELECT column_list
FROM table;

-- drop the table
DROP TABLE table;

-- rename the new_table to the table
ALTER TABLE new_table RENAME TO table; 

-- commit the transaction
COMMIT;

-- enable foreign key constraint check
PRAGMA foreign_keys=on;Code language: SQL (Structured Query Language) (sql)

SQLite टेबल ड्रॉप कॉलम बदलें उदाहरण

SQLite ALTER TABLE DROP COLUMN . का समर्थन नहीं करता है बयान। एक कॉलम ड्रॉप करने के लिए, आपको ऊपर दिए गए चरणों का उपयोग करना होगा।

निम्न स्क्रिप्ट दो टेबल बनाती है उपयोगकर्ता और पसंदीदा , और इन तालिकाओं में डेटा डालें:

CREATE TABLE users(
	UserId INTEGER PRIMARY KEY,
	FirstName TEXT NOT NULL,
	LastName TEXT NOT NULL,
	Email TEXT NOT NULL,
	Phone TEXT NOT NULL
);

CREATE TABLE favorites(
	UserId INTEGER,
	PlaylistId INTEGER,
	FOREIGN KEY(UserId) REFERENCES users(UserId),
	FOREIGN KEY(PlaylistId) REFERENCES playlists(PlaylistId)
);

INSERT INTO users(FirstName, LastName, Email, Phone)
VALUES('John','Doe','[email protected]','408-234-3456');

INSERT INTO favorites(UserId, PlaylistId)
VALUES(1,1);Code language: SQL (Structured Query Language) (sql)

निम्न कथन उपयोगकर्ताओं . से डेटा लौटाता है टेबल:

SELECT * FROM users;Code language: SQL (Structured Query Language) (sql)

और निम्न कथन पसंदीदा . से डेटा लौटाता है टेबल:

SELECT * FROM favorites;Code language: SQL (Structured Query Language) (sql)

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

सबसे पहले, विदेशी कुंजी बाधा जांच अक्षम करें:

PRAGMA foreign_keys=off;

दूसरा, एक नया लेन-देन शुरू करें:

BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)

तीसरा, उपयोगकर्ताओं . का डेटा रखने के लिए एक नई तालिका बनाएं फ़ोन . को छोड़कर तालिका कॉलम:

CREATE TABLE IF NOT EXISTS persons (
	UserId INTEGER PRIMARY KEY,
	FirstName TEXT NOT NULL,
	LastName TEXT NOT NULL,
	Email TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

चौथा, उपयोगकर्ताओं . से डेटा कॉपी करें व्यक्तियों . के लिए टेबल:

INSERT INTO persons(UserId, FirstName, LastName, Email)
SELECT UserId, FirstName, LastName, Email 
FROM users;
Code language: SQL (Structured Query Language) (sql)

पांचवां, उपयोगकर्ताओं को छोड़ दें टेबल:

DROP TABLE users;Code language: SQL (Structured Query Language) (sql)

छठा, व्यक्तियों का नाम बदलें उपयोगकर्ताओं . के लिए तालिका टेबल:

ALTER TABLE persons RENAME TO users;Code language: SQL (Structured Query Language) (sql)

सातवां, लेन-देन करें:

COMMIT;Code language: SQL (Structured Query Language) (sql)

आठवां, विदेशी कुंजी बाधा जांच सक्षम करें:

PRAGMA foreign_keys=on;Code language: SQL (Structured Query Language) (sql)

ये हैं उपयोगकर्ता फ़ोन . छोड़ने के बाद तालिका कॉलम:

SELECT * FROM users;Code language: SQL (Structured Query Language) (sql)

सारांश

  • वैकल्पिक तालिका का उपयोग करें मौजूदा तालिका की संरचना को संशोधित करने के लिए कथन।
  • उपयोग करें तालिका का नाम बदलने के लिए कथन।
  • ALTER TABLE table_name ADD COLUMN column_definition का उपयोग करें तालिका में कॉलम जोड़ने के लिए कथन।
  • ALTER TABLE table_name RENAME COLUMN current_name to new_name का उपयोग करें कॉलम का नाम बदलने के लिए।

  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. execSQL () अद्यतन के साथ अद्यतन नहीं होता है

  3. पूर्व-आबादी वाले डेटाबेस के साथ रूम पर्सिस्टेंस लाइब्रेरी का उपयोग कैसे करें?

  4. sqlite में ROW_NUMBER का उपयोग कैसे करें

  5. एंड्रॉइड:बल्क इंसर्ट, जब इंसर्ट हेल्पर पदावनत हो जाता है