INSERT INTO क्या है?
INSERT INTO का उपयोग तालिकाओं में डेटा को संग्रहीत करने के लिए किया जाता है। INSERT कमांड डेटा संग्रहीत करने के लिए तालिका में एक नई पंक्ति बनाता है। डेटा आमतौर पर डेटाबेस के शीर्ष पर चलने वाले एप्लिकेशन प्रोग्राम द्वारा आपूर्ति की जाती है।
मूल वाक्य रचना
आइए INSERT INTO MySQL कमांड के मूल सिंटैक्स को देखें:
INSERT INTO `table_name` (column_1, column_2,…) VALUES (value_1, value_2,…);
यहां
- INSERT INTO `table_name` वह कमांड है जो MySQL सर्वर को` tablename` नामक तालिका में एक नई पंक्ति जोड़ने के लिए कहता है।
- (column_1, column_2,…) नई MySQL पंक्ति में अपडेट किए जाने वाले कॉलम निर्दिष्ट करता है
- VALUES (value_1, value_2,…) नई पंक्ति में जोड़े जाने वाले मानों को निर्दिष्ट करता है
नई तालिका में सम्मिलित किए जाने वाले डेटा मानों की आपूर्ति करते समय, निम्नलिखित पर विचार किया जाना चाहिए:
- स्ट्रिंग डेटा प्रकार - सभी स्ट्रिंग मान एकल उद्धरणों में संलग्न होने चाहिए।
- संख्यात्मक डेटा प्रकार- सभी संख्यात्मक मूल्यों को एकल या दोहरे-उद्धरणों में संलग्न किए बिना सीधे आपूर्ति की जानी चाहिए।
- दिनांक डेटा प्रकार - 'YYYY-MM-DD' प्रारूप में एकल उद्धरणों में दिनांक मानों को संलग्न करें।
उदाहरण:
मान लीजिए कि हमारे पास नए पुस्तकालय सदस्यों की निम्नलिखित सूची है जिन्हें डेटाबेस में जोड़ने की आवश्यकता है।
पूरे नाम | जन्म की तारीख | लिंग | भौतिक पता | डाक पता | संपर्क संख्या | ईमेल पता |
---|---|---|---|---|---|---|
लियोनार्ड हॉफ़स्टैटर | पुरुष | वुडक्रेस्ट | 0845738767 है | |||
शेल्डन कूपर | पुरुष | वुडक्रेस्ट | 0976736763 | |||
राजेश कुथरापाली | पुरुष | फेयरव्यू | 0938867763 | |||
लेस्ली विंकल | 14/02/1984 | पुरुष | 0987636553 | |||
हॉवर्ड वोलोविट्ज | 24/08/1981 | पुरुष | साउथ पार्क | पीओ बॉक्स 4563 | 0987786553 | इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा। |
आइए एक-एक करके डेटा को इंसर्ट करें। हम लियोनार्ड हॉफस्टैटर से शुरुआत करेंगे। हम संपर्क नंबर को एक संख्यात्मक डेटा प्रकार के रूप में मानेंगे और एकल उद्धरणों में संख्या को संलग्न नहीं करेंगे।
INSERT INTO `के सदस्य` (`full_names`,` लिंग`, `physical_address`,` contact_number`) VALUES ('लियोनार्ड हॉफ़स्टैटर', 'पुरुष', 'वुडक्रेस्ट', 0845738767);
उपरोक्त स्क्रिप्ट का निष्पादन लियोनार्ड के संपर्क नंबर से 0 हो जाता है। ऐसा इसलिए है क्योंकि मान को एक संख्यात्मक मान के रूप में माना जाएगा, और शुरुआत में शून्य (0) गिरा दिया जाता है क्योंकि यह महत्वपूर्ण नहीं है।
ऐसी समस्याओं से बचने के लिए, मूल्य को नीचे दिखाए गए अनुसार एकल उद्धरणों में संलग्न किया जाना चाहिए -
INSERT INTO `मेंबर्स (` full_names`, `लिंग`,` physical_address`, `contact_number`) वैल्यूज़ ('शेल्डन कूपर', 'माले', 'वुडक्रेस्ट', '0976736763');
उपरोक्त मामले में, शून्य (0) नहीं गिराया जाएगा
जब तक सही मानों को सही स्तंभों पर मैप नहीं किया जाता है तब तक MySQL में INSERT क्वेरी पर कॉलम के क्रम को बदलने का कोई प्रभाव नहीं पड़ता है।
नीचे दिखाया गया क्वेरी उपरोक्त बिंदु प्रदर्शित करता है।
INSERT INTO `मेंबर्स (` contact_number`, `लिंग`,` full_names`, `physical_address`) वैल्यूज़ ('0938867763', 'माले', 'राजेश बुथराप्पाली', 'वुडक्रेस्ट');
उपरोक्त प्रश्नों ने जन्म की तारीख को छोड़ दिया। डिफ़ॉल्ट रूप से, MySQL INSERT क्वेरी में छोड़े गए स्तंभों में NULL मान सम्मिलित करेगा।
आइए अब लेस्ली के लिए रिकॉर्ड डालें, जिसमें जन्म की तारीख है। दिनांक मान को 'YYYY-MM-DD' प्रारूप का उपयोग करके एकल उद्धरणों में संलग्न किया जाना चाहिए।
INSERT INTO `के सदस्य` (`full_names`,` date_of_birth`, `लिंग`,` physical_address`, `contact_number`) VALUES ('लेस्ली विंकल', '1984-02-14', 'पुरुष', 'वुडक्रेस्ट', ' 0987636553 ');
उपरोक्त सभी प्रश्नों ने कॉलम निर्दिष्ट किए और उन्हें MySQL इंसर्ट स्टेटमेंट के मानों में मैप किया। यदि हम तालिका में सभी स्तंभों के लिए मानों की आपूर्ति कर रहे हैं, तो हम MySQL सम्मिलित क्वेरी से कॉलम को छोड़ सकते हैं।
उदाहरण:-
INSERT INTO `के सदस्य` VALUES (9, 'हॉवर्ड
वोलोविट्ज', 'माले', '1981-08-24', 'साउथपार्क', 'पीओ बॉक्स 4563', '0987786553', 'lwowowitz [at] email.me')) ;
अब सदस्य की तालिका में सभी पंक्तियों को देखने के लिए SELECT स्टेटमेंट का उपयोग करते हैं।
SELECT * FROM `members`;
सदस्यता संख्या | पूरे नाम | लिंग | जन्म की तारीख | भौतिक पता | डाक पता | contct_ संख्या | ईमेल |
---|---|---|---|---|---|---|---|
1 | जेनेट जोन्स | महिला | 21-07-1980 | पहला स्ट्रीट प्लॉट नंबर 4 | निजी थैला | 0759 253 542 | इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा। |
२ | जेनेट स्मिथ जोन्स | महिला | 23-06-1980 | मेलरोज़ 123 | शून्य | शून्य | इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा। |
३ | रॉबर्ट फिल | पुरुष | 12-07-1989 | तीसरी गली ३४ | शून्य | 12345 है | इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा। |
४ | ग्लोरिया विलियम्स | महिला | 14-02-1984 | दूसरी गली २३ | शून्य | शून्य | शून्य |
५ | लियोनार्ड हॉफ़स्टैटर | पुरुष | शून्य | वुडक्रेस्ट | शून्य | 845738767 | शून्य |
६ | शेल्डन कूपर | पुरुष | शून्य | वुडक्रेस्ट | शून्य | 976736763 | शून्य |
। | राजेश कुथरापाली | पुरुष | शून्य | वुडक्रेस्ट | शून्य | 938867763 है | शून्य |
। | लेस्ली विंकल | पुरुष | 14-02-1984 | वुडक्रेस्ट | शून्य | 987636553 | शून्य |
९ | हॉवर्ड वोलोविट्ज | पुरुष | 24-08-1981 | साउथ पार्क | पीओ बॉक्स 4563 | 987786553 | इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा। |
नोटिस लियोनार्ड Hofstadter के लिए संपर्क नंबर शून्य (0) से संपर्क नंबर गिरा दिया है। अन्य संपर्क नंबरों ने शुरुआत में शून्य (0) को गिराया नहीं है।
किसी अन्य तालिका से तालिका में सम्मिलित करना
INSERT कमांड का उपयोग किसी अन्य तालिका से तालिका में डेटा डालने के लिए भी किया जा सकता है। मूल सिंटैक्स नीचे दिखाया गया है।
INSERT INTO table_1 तालिका 2 से * चयन करें;
आइए अब एक व्यावहारिक उदाहरण देखें। हम प्रदर्शन उद्देश्यों के लिए फिल्म श्रेणियों के लिए एक डमी तालिका बनाएंगे। हम नई श्रेणियों को तालिका श्रेणियां_आर्काइव कहेंगे। नीचे दिखाई गई स्क्रिप्ट तालिका बनाती है।
रचनात्मक तालिका `श्रेणियां_आर्काइव` (` श्रेणी_आईडी` इंट (11) AUTO_INCREMENT, `श्रेणी_नाम` varchar (150) DEFAULT NULL,` टिप्पणी `varchar (500) DEFAULT पूर्ण, प्राथमिक कुंजी (` category_id`))
तालिका बनाने के लिए उपरोक्त स्क्रिप्ट निष्पादित करें।
आइए अब श्रेणियां तालिका से सभी पंक्तियों को श्रेणियों की संग्रह तालिका में सम्मिलित करें। नीचे दी गई स्क्रिप्ट हमें वह हासिल करने में मदद करती है।
INSERT में `श्रेणियां_आर्काइव` का चयन करें * से` श्रेणियों`;
उपरोक्त स्क्रिप्ट को निष्पादित करने से श्रेणियों की तालिका से सभी पंक्तियों को संग्रह तालिका में सम्मिलित किया जाता है। ध्यान दें कि स्क्रिप्ट के काम करने के लिए टेबल संरचनाएं समान होनी चाहिए। एक अधिक मजबूत स्क्रिप्ट वह है जो सम्मिलित तालिका में स्तंभ नामों को डेटा वाले तालिका में लोगों के लिए मैप करती है।
नीचे दी गई क्वेरी इसके उपयोग को प्रदर्शित करती है।
INSERT INTO `category_archive` (category_id, category_name, टिप्पणी) SELECT category_id, category_name, टिप्पणियों से` श्रेणियां`;
चयन क्वेरी का निष्पादन
का चयन करें
नीचे दिए गए निम्न परिणाम देता है।
श्रेणी ID | श्रेणी नाम | टिप्पणियों |
---|---|---|
1 | कॉमेडी | हास्य के साथ फिल्में |
२ | प्रेम प्रसंगयुक्त | प्रेम कथाएँ |
३ | महाकाव्य | कहानी वाली आस्तिक फिल्में |
४ | डरावनी | शून्य |
५ | कल्पित विज्ञान | शून्य |
६ | थ्रिलर | शून्य |
। | कार्य | शून्य |
। | रूमानी सुखान्तिकी | शून्य |
९ | कार्टून | शून्य |
१० | कार्टून | शून्य |
PHP उदाहरण: MySQL टेबल में डालें
SQL क्वेरी को निष्पादित करने के लिए mysqli_query फ़ंक्शन का उपयोग किया जाता है।
फ़ंक्शन का उपयोग निम्न क्वेरी प्रकारों को निष्पादित करने के लिए किया जा सकता है;
- डालने
- चुनते हैं
- अपडेट करें
- हटाना
इसमें निम्नलिखित सिंटैक्स है।
mysqli_query($db_handle,$query);
यहां,
"mysqli_query (
...) "SQL क्वेरी को निष्पादित करने वाला फ़ंक्शन है।"$ क्वेरी" निष्पादित होने वाली SQL क्वेरी है
"$ link_identifier" वैकल्पिक है, इसका उपयोग सर्वर कनेक्शन लिंक में पास करने के लिए किया जा सकता है
उदाहरण
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) {die("Connection failed: " . mysqli_connect_error());}$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";if (mysqli_query($conn, $sql)) {echo "New record created successfully".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
सारांश
- INSERT कमांड का उपयोग तालिका में नए डेटा को जोड़ने के लिए किया जाता है। एक बार कमांड निष्पादित होने पर MySql एक नई पंक्ति जोड़ देगा।
- दिनांक और स्ट्रिंग मान एकल उद्धरणों में संलग्न होने चाहिए।
- संख्यात्मक मूल्यों को उद्धरणों में संलग्न करने की आवश्यकता नहीं है।
- INSERT कमांड का उपयोग एक टेबल से दूसरे में डेटा डालने के लिए भी किया जा सकता है।