Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में CREATE TABLE AS SELECT से मौजूदा टेबल से विशिष्ट पंक्तियों के साथ नई टेबल बनाएं

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;

यह तरीका बड़े डेटासेट के सबसेट बनाने, आर्काइविंग, या रिपोर्टिंग टेबल बनाने के लिए अत्यंत कुशल है।

  1. - MySQL में NOT IN का उपयोग करके केवल विशिष्ट पंक्तियाँ हटाएं

    MySQL में DELETE स्टेटमेंट के साथ NOT IN ऑपरेटर का उपयोग करके आप उन पंक्तियों को हटा सकते हैं जो दी गई सूची में नहीं हैं। यह विशिष्ट रिकॉर्ड रखते हुए बाकी हटाने के लिए उपयोगी है। टेबल बनाएं और डेटा डालें mysql> CREATE TABLE DemoTable1830 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

  1. - MySQL में INSERT INTO SELECT से एक टेबल से दूसरी टेबल में पंक्तियाँ कॉपी करें

    INSERT INTO ... SELECT स्टेटमेंट का उपयोग करके एक टेबल से दूसरी टेबल में पंक्तियाँ कॉपी करें (शर्त के साथ)। स्रोत टेबल mysql> CREATE TABLE DemoTable1879 (Id INT, Name VARCHAR(20)); mysql> INSERT INTO DemoTable1879 VALUES(101, Chris Brown), (102, David Miller), (103, Adam Smith); लक्ष्य टेबल

  1. - MySQL में विशिष्ट पंक्ति प्राप्त करना

    WHERE, ORDER BY और LIMIT से विशिष्ट पंक्ति चुनें टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1972 ( Section char(1), StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1972 values(D,Chris); ... क्वेरी: C से बड़े सेक्शन को क्रमबद्ध करके पहले 2