मूल्यों में डालें () कथन

हमने यह पता लगाया कि तालिकाएँ कैसे बनाई जाती हैं, आइए अब विस्तार से देखें कि SQL क्वेरी का उपयोग करके तालिका में डेटा कैसे जोड़ा जाए।

वास्तव में, यह करना बहुत सरल है, लेकिन कई बारीकियाँ हैं। तालिका में डेटा डालने के लिए सबसे सरल विकल्प के लिए दो चीजों को निर्दिष्ट करने की आवश्यकता होती है:

  • स्तंभ नाम
  • स्तंभ मान (डेटा)

कॉलम नाम निर्दिष्ट होना चाहिए, क्योंकि बहुत बार कॉलम में डिफ़ॉल्ट मान होते हैं जो डेटा सम्मिलित करते समय निर्दिष्ट नहीं होते हैं। और आमतौर पर प्रत्येक तालिका में कम से कम एक ऐसा स्तंभ होता है, उदाहरण के लिए पंक्ति आईडी।

तालिका में डेटा डालने के लिए क्वेरी का सामान्य रूप इस तरह दिखता है:

INSERT INTO table (column1, column2, column3) VALUES
    (value1, value2, value3),
    (value1, value2, value3),
    (value1, value2, value3);

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

INSERT INTO user (name, level, created_time) VALUES
	('Rabinovich', 5, ‘2022-06-06’);

चयन कथन में सम्मिलित करें

किसी तालिका में डेटा डालने के लिए एक अन्य सामान्य परिदृश्य इसे किसी अन्य तालिका, स्कीमा या यहां तक ​​कि एक DBMS से लेना है।

ऐसा करने के लिए, एक और INSERT INTO क्वेरी प्रारूप है, जिसमें VALUES भाग के बजाय, आप डेटा का चयन करने के लिए एक क्वेरी निर्दिष्ट कर सकते हैं।

ऐसे अनुरोध का सामान्य रूप है:

INSERT INTO table (column1, column2, column3)
SELECT-request;

आइए एक क्वेरी लिखें जो कर्मचारी तालिका से सभी उपयोगकर्ताओं को उपयोगकर्ता तालिका में जोड़ेगी:

INSERT INTO user (name, created_time)
   SELECT employee.name, employee.join_date
   FROM employee;

कर्मचारी तालिका में हमारे पास विभिन्न डेटा हैं, लेकिन उनमें से हम केवल दो क्षेत्रों का चयन करते हैं - कंपनी में आने का नाम और समय।

साथ ही, उपयोगकर्ता तालिका के लिए आपको उपयोगकर्ता स्तर - स्तर निर्दिष्ट करने की आवश्यकता होती है। कर्मचारी तालिका में कर्मचारियों का कोई स्तर नहीं है, इसलिए हम इस तथ्य का उपयोग करेंगे कि उपयोगकर्ता तालिका में स्तर फ़ील्ड के लिए डिफ़ॉल्ट मान है। हम केवल स्तर निर्दिष्ट नहीं करते हैं और SQL डिफ़ॉल्ट मान सेट करेगा।

मान लीजिए कि हम डिफ़ॉल्ट मान से संतुष्ट नहीं हैं, और हम चाहते हैं कि स्तर 99 हो, और user.created_time को आज की तारीख से बदल दें, तो हम इसे लिख सकते हैं:

INSERT INTO user (name, level, created_time)
   SELECT employee.name, 99, CURDATE()
   FROM employee;

और भी बहुत कुछ है जो किया जा सकता है, लेकिन मुझे लगता है कि अभी के लिए इतना ही काफी होगा। आप आधिकारिक MySQL पेज पर अधिक पढ़ सकते हैं।