मूल्ये () विधानात घाला

आम्ही टेबल कसे तयार करायचे ते शोधून काढले, आता एसक्यूएल क्वेरी वापरून टेबलमध्ये डेटा कसा जोडायचा ते पाहू या.

खरं तर, हे करणे खूप सोपे आहे, परंतु अनेक बारकावे आहेत. टेबलमध्ये डेटा घालण्यासाठी सर्वात सोपा पर्याय दोन गोष्टी निर्दिष्ट करणे आवश्यक आहे:

  • स्तंभ नावे
  • स्तंभ मूल्ये (डेटा)

स्तंभांची नावे निर्दिष्ट करणे आवश्यक आहे, कारण बरेचदा स्तंभांमध्ये डीफॉल्ट मूल्ये असतात जी डेटा घालताना निर्दिष्ट केलेली नसतात. आणि सहसा प्रत्येक टेबलमध्ये किमान एक असा कॉलम असतो, उदाहरणार्थ रो आयडी.

टेबलमध्ये डेटा घालण्यासाठी क्वेरीचे सामान्य स्वरूप असे दिसते:

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’);

सिलेक्ट स्टेटमेंटमध्ये घाला

टेबलमध्‍ये डेटा घालण्‍यासाठी आणखी एक सामान्य परिस्थिती म्हणजे तो दुसर्‍या टेबल, स्कीमा किंवा अगदी डीबीएमएसमधून घेणे.

हे करण्यासाठी, आणखी एक 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 पृष्ठावर अधिक वाचू शकता.