Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
MySQL + SQL · Lesson 150

दूसरी Table से Insert

Tables के बीच rows copy करना

अक्सर आपको एक table से दूसरी में rows copy करनी होती हैं — पुराना data archive करना, records हटाना, या summary table बनाना। MySQL का INSERT INTO ... SELECT यह एक statement में करता है, filter और transform करने को SELECT की पूरी ताक़त के साथ।

💡 INSERT INTO target SELECT ... FROM source — एक query में rows copy कीजिए, साथ-साथ filter करके।

INSERT INTO ... SELECT

INSERT INTO archive (id, name)
SELECT id, name FROM users;
Query OK, 5 rows affected (0.01 sec)

SELECT users से rows पढ़ता है, और INSERT उन्हें archive में डालता है। कोई values हाथ से type नहीं होतीं — data सीधे source table से आता है।

सिर्फ़ कुछ rows copy

INSERT INTO archive (id, name)
SELECT id, name FROM users
WHERE active = 0;

सिर्फ़ मेल खाती rows copy करने को SELECT में WHERE जोड़िए। यहाँ सिर्फ़ inactive users archive होते हैं। जो भी filter आप SELECT में लिख सकें यहाँ चलता है।

विशिष्ट columns copy

INSERT INTO summary (customer, total)
SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id;

SELECT विशिष्ट columns चुन सकता है और aggregate भी कर सकता है। यहाँ हम प्रति customer कुल खर्च की summary table बनाते हैं। Selected columns target columns से क्रम और type में मेल खाने चाहिए।

Copy करते समय बदलना

INSERT INTO products_new (id, name, price)
SELECT id, UPPER(name), price * 1.1
FROM products;

चूँकि यह पूरा SELECT है, आप copy करते समय data बदल सकते हैं — यहाँ names uppercase बनते हैं और prices 10% बढ़ते हैं। यह migrations और cleanups को सुविधाजनक है।

Query से table बनाना

CREATE TABLE archive AS
SELECT * FROM users WHERE active = 0;

CREATE TABLE ... AS SELECT एक नई table बनाकर उसे query से एक step में भरता है। ध्यान दीजिए यह data और column types copy करता है, पर primary keys, indexes या constraints नहीं — ज़रूरत हो तो वे बाद में जोड़िए।

आम गलतियाँ

  • बेमेल columns। Selected columns target list से क्रम और type में मेल खाने चाहिए।
  • WHERE भूलना। इसके बिना, सारी rows copy होती हैं।
  • CREATE TABLE AS से keys की उम्मीद। यह data copy करता है, keys या indexes नहीं।
  • Duplicate-key errors। मौजूदा keys वाली table में copy करना टकरा सकता है — IGNORE या filter इस्तेमाल कीजिए।

सारांश

  • INSERT INTO ... SELECT एक table से दूसरी में rows copy करता है।
  • सिर्फ़ मेल खाती rows copy करने को WHERE जोड़िए।
  • विशिष्ट columns या aggregates select कीजिए; वे target से मेल खाने चाहिए।
  • Copy करते समय expressions से data बदलिए।
  • CREATE TABLE ... AS SELECT नई table बनाकर भरता है (keys नहीं)।

आगे, कई rows जोड़िए inserting multiple rows में, या summarise कीजिए GROUP BY और HAVING से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

MySQL में एक table से दूसरी में rows कैसे copy करूँ?
INSERT INTO ... SELECT इस्तेमाल कीजिए: INSERT INTO archive (id, name) SELECT id, name FROM users WHERE active = 0;। यह SELECT से rows पढ़कर उन्हें target table में एक statement में insert करता है।
दूसरी table में सिर्फ़ कुछ rows कैसे copy करूँ?
SELECT में WHERE clause जोड़िए: सिर्फ़ मेल खाती rows copy होती हैं। जैसे, सिर्फ़ inactive users, या सिर्फ़ पिछले साल के orders copy करना, SELECT हिस्से में filter करके।
क्या सिर्फ़ विशिष्ट columns copy कर सकता हूँ?
हाँ। Target columns list कीजिए और मेल खाते columns select कीजिए: INSERT INTO t2 (a, b) SELECT x, y FROM t1;। Selected columns की संख्या और types target columns से मेल खाने चाहिए।
Query से नई table कैसे बनाऊँ?
CREATE TABLE ... AS SELECT इस्तेमाल कीजिए: CREATE TABLE archive AS SELECT * FROM users WHERE active = 0;। यह नई table बनाकर उसे query results से एक step में भरता है, हालाँकि यह keys और indexes copy नहीं करता।
क्या copy करते समय data बदल सकता हूँ?
हाँ। SELECT expressions शामिल कर सकता है, तो आप copy करते समय values बदल सकते हैं — जैसे, SELECT id, UPPER(name), price * 1.1 FROM products names uppercase में और prices 10% बढ़ाकर copy करता है।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicMySQL Practical File Programs (Class 12 IT 802) आपकी प्रगति: 150 / 151 (99%) · Lesson 151 / 151 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें