MySQL में CREATE TABLE ... AS SELECT स्टेटमेंट का उपयोग करके किसी मौजूदा टेबल से डेटा कॉपी करते हुए, विशिष्ट शर्तों के आधार पर फ़िल्टर की गई पंक्तियों के साथ एक नई टेबल बनाई जा सकती है। यह बैकअप, टेस्टिंग, या सबसेट बनाने के लिए बहुत उपयोगी है।
सिंटैक्स
CREATE TABLE new_table_name AS SELECT column_list FROM existing_table_name WHERE condition;
व्यावहारिक उदाहरण
स्रोत टेबल बनाएं:
mysql> CREATE TABLE DemoTable1318 (
Id INT,
FirstName VARCHAR(10),
LastName VARCHAR(10),
Age INT
);
डेटा डालें:
mysql> INSERT INTO DemoTable1318 VALUES(1, 'Chris', 'Brown', 21); mysql> INSERT INTO DemoTable1318 VALUES(2, 'David', 'Miller', 24); mysql> INSERT INTO DemoTable1318 VALUES(3, 'Carol', 'Taylor', 23);
सभी रिकॉर्ड देखें:
mysql> SELECT * FROM DemoTable1318;
+------+-----------+----------+------+ | Id | FirstName | LastName | Age | +------+-----------+----------+------+ | 1 | Chris | Brown | 21 | | 2 | David | Miller | 24 | | 3 | Carol | Taylor | 23 | +------+-----------+----------+------+
विशिष्ट पंक्तियों के साथ नई टेबल बनाएं (Age 21 या 23 वाले)
mysql> CREATE TABLE DemoTable1319
-> AS SELECT * FROM DemoTable1318
-> WHERE Age IN (21, 23);
नई टेबल के रिकॉर्ड देखें:
mysql> SELECT * FROM DemoTable1319;
+------+-----------+----------+------+ | Id | FirstName | LastName | Age | +------+-----------+----------+------+ | 1 | Chris | Brown | 21 | | 3 | Carol | Taylor | 23 | +------+-----------+----------+------+
मुख्य विशेषताएं
- कॉलम परिभाषाएं स्वचालित - नई टेबल चयनित कॉलम के डेटा प्रकार और नाम विरासत में लेती है
- डेटा कॉपी होता है - चयनित पंक्तियों का डेटा नई टेबल में डाल दिया जाता है
- इंडेक्स/कुंजी नहीं कॉपी होते - प्राथमिक कुंजी, विदेशी कुंजी, इंडेक्स,
AUTO_INCREMENTआदि नहीं बनाए जाते WHEREक्लॉज वैकल्पिक है - छोड़ने पर सभी पंक्तियां कॉपी होती हैं
विशिष्ट कॉलम चुनने के लिए
CREATE TABLE DemoTable1319 AS SELECT Id, FirstName, Age FROM DemoTable1318 WHERE Age > 20;
चेतावनी
यदि नई टेबल में प्राथमिक कुंजी या AUTO_INCREMENT चाहिए, तो टेबल बनाने के बाद ALTER TABLE से जोड़ें:
ALTER TABLE DemoTable1319 MODIFY Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
यह तरीका बड़े डेटासेट के सबसेट बनाने, आर्काइविंग, या रिपोर्टिंग टेबल बनाने के लिए अत्यंत कुशल है।