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

MySQL में एक टेबल से दूसरी टेबल में पंक्तियाँ कैसे ले जाएँ?

INSERT INTO SELECT स्टेटमेंट का उपयोग

MySQL में एक टेबल से दूसरी टेबल में डेटा ले जाने (move) के लिए INSERT INTO ... SELECT स्टेटमेंट का उपयोग करें। यह एक ही क्वेरी में स्रोत टेबल से डेटा पढ़कर लक्ष्य टेबल में डाल देता है।

सिंटैक्स

INSERT INTO yourDestinationTableName 
SELECT * FROM yourOriginalTable 
WHERE someCondition;

चरण-दर-चरण उदाहरण

1. दो टेबल बनाएं

mysql> CREATE TABLE StudentTable (
    -> Id INT,
    -> Name VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.65 sec)

mysql> CREATE TABLE Employee (
    -> EmployeeId INT,
    -> EmployeeName VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.54 sec)

2. Employee टेबल में डेटा डालें

mysql> INSERT INTO Employee VALUES(1, 'Carol');
mysql> INSERT INTO Employee VALUES(2, 'John');
mysql> INSERT INTO Employee VALUES(3, 'Johnson');
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 1          | Carol        |
| 2          | John         |
| 3          | Johnson      |
+------------+--------------+
3 rows in set (0.00 sec)

3. विशिष्ट पंक्ति ले जाएँ (WHERE क्लॉज के साथ)

mysql> INSERT INTO StudentTable 
    -> SELECT * FROM Employee 
    -> WHERE EmployeeId = 3 AND EmployeeName = 'Johnson';
Query OK, 1 row affected (0.17 sec)
mysql> SELECT * FROM StudentTable;
+------+---------+
| Id   | Name    |
+------+---------+
| 3    | Johnson |
+------+---------+
1 row in set (0.00 sec)

4. सभी पंक्तियाँ ले जाएँ (WHERE क्लॉज के बिना)

mysql> INSERT INTO StudentTable SELECT * FROM Employee;
Query OK, 3 rows affected (0.15 sec)

mysql> SELECT * FROM StudentTable;
+------+---------+
| Id   | Name    |
+------+---------+
| 1    | Carol   |
| 2    | John    |
| 3    | Johnson |
+------+---------+
3 rows in set (0.00 sec)

महत्वपूर्ण बिंदु

  • दोनों टेबल्स की कॉलम संरचना (संख्या, क्रम, डेटा प्रकार) मेल खानी चाहिए
  • WHERE क्लॉज वैकल्पिक है - इसे छोड़ने पर सभी पंक्तियाँ कॉपी हो जाती हैं
  • यह ऑपरेशन कॉपी करता है, मूव नहीं करता। मूल टेबल से डेटा हटाने के लिए अलग से DELETE चलाना होगा
  • डुप्लिकेट से बचने के लिए UNIQUE कंस्ट्रेंट या PRIMARY KEY का उपयोग करें
  1. - MySQL में UPDATE JOIN से दूसरी टेबल के डेटा से पहली टेबल अपडेट करें

    UPDATE ... JOIN सिंटैक्स UPDATE targetTable tbl1 JOIN sourceTable tbl2 ON tbl1.commonCol = tbl2.commonCol SET tbl1.targetCol = tbl2.sourceCol; उदाहरण स्रोत टेबल (demo54): पूरा डेटा insert into demo54 values(John,Smith), (John,Smith), (David,Smith); लक्ष्य टेबल (demo55): lastName NULL insert int

  1. - MySQL में INSERT INTO SELECT से दूसरी टेबल के मान लेकर नई टेबल भरें

    सिंटैक्स insert into targetTable(col1, col2) select sourceCol1, sourceCol2 from sourceTable where condition; उदाहरण insert into demo83(id,username) select id,name from demo82 where id=101; परिणाम +------+----------+ | id | username | +------+----------+ | 101 | Bob | | 101 | David |

  1. - MySQL में एक टेबल से दूसरी टेबल में डेटा सम्मिलित करना

    परिचय MySQL में INSERT INTO ... SELECT स्टेटमेंट का उपयोग करके एक टेबल से डेटा चुनकर दूसरी टेबल में सम्मिलित किया जा सकता है। पहली टेबल निर्माण और डेटा select * from DemoTable1; +------+-----------+ | Id | FirstName | +------+-----------+ | 101 | Adam | | 102 | John | +------+-------