SQL ALTER TABLE स्टेटमेंट टेबल में एक कॉलम जोड़ता, बदलता, या हटाता है। यह स्टेटमेंट आपको टेबल बनाने के बाद उसे संशोधित करने देता है, भले ही टेबल रिकॉर्ड संग्रहीत करता हो।
आप तय कर सकते हैं कि आपको SQL टेबल में बदलाव करने की आवश्यकता है। उदाहरण के लिए, आप एक कॉलम का नाम बदलना चाह सकते हैं या टेबल में एक नया कॉलम जोड़ना चाह सकते हैं। ये सभी परिवर्तन SQL ALTER TABLE कमांड के साथ संभव हैं।
SQL ALTER TABLE
ALTER TABLE कमांड आपको मौजूदा टेबल को बदलने की अनुमति देता है:
- एक कॉलम जोड़कर।
- एक प्रतिबंध जोड़कर।
- एक कॉलम हटाकर।
- डेटा प्रकार बदलकर।
- एक कॉलम का नाम बदलकर।
यह ट्यूटोरियल, उदाहरणों के संदर्भ में, SQL ALTER TABLE कमांड का उपयोग करके टेबल को कैसे बदला जाए, इस पर चर्चा करेगा।
टेबल सेट अप करना
इस ट्यूटोरियल के लिए, हम एक व्यवसाय के लिए डेटाबेस टेबल को संशोधित करने जा रहे हैं। यह डेटाबेस व्यवसाय के लिए काम करने वाले प्रत्येक कर्मचारी के बारे में जानकारी संग्रहीत करता है। हमारी टेबल को "employees" कहा जाता है और इसमें निम्नलिखित मान हैं:
अपनी टेबल बनाने के बाद, हमने महसूस किया कि हम इसकी संरचना बदलना चाहते हैं। हम SQL ALTER TABLE कमांड का उपयोग करके ऐसा कर सकते थे।
टेबल बनाने का तरीका सीखने के लिए, हमारे SQL CREATE TABLE गाइड को देखें।
SQL ALTER TABLE: टेबल में कॉलम जोड़ें
आप ALTER TABLE कमांड का उपयोग करके SQL टेबल में एक कॉलम जोड़ सकते हैं। मौजूदा टेबल में एक नया कॉलम जोड़ने के लिए सिंटैक्स इस प्रकार है:
ALTER TABLE table_name ADD column_name data_type constraints;
मान लीजिए कि हम अपने "employees" टेबल में एक नया कॉलम जोड़ना चाहते हैं जो प्रत्येक कर्मचारी का फोन नंबर संग्रहीत करता है। इस कॉलम को "phone_number" कहा जाना चाहिए। कॉलम को VARCHAR() डेटा प्रकार का उपयोग करना चाहिए - जो हमें अधिकतम लंबाई वाली स्ट्रिंग संग्रहीत करने की अनुमति देता है - और इसमें कोई प्रतिबंध नहीं होना चाहिए।
हम निम्न स्टेटमेंट का उपयोग करके इस कॉलम को बना सकते हैं:
ALTER TABLE employees ADD phone_number VARCHAR(60);
यह कमांड "employees" डेटाबेस में एक टेबल में एक नया कॉलम जोड़ता है। अब, जब हम अपने डेटाबेस की संरचना देखते हैं, तो हमारे पास "phone_number" नामक एक नया कॉलम है:
| Field | Type | Default |
| name | varchar(60) | NULL |
| title | varchar(60) | NULL |
| department | varchar(60) | NULL |
| employee_number | varchar(60) | NULL |
| phone_number | varchar(60) |
यदि आप SQL में डेटाबेस में कॉलम जोड़ने के बारे में अधिक सीखने में रुचि रखते हैं, तो हमारे SQL add column गाइड को देखें।
SQL ALTER TABLE: टेबल में प्रतिबंध जोड़ें
पिछले खंड में, हमने अपनी टेबल में एक नया कॉलम जोड़ा: phone_number। लेकिन, हम टेबल में कोई प्रतिबंध जोड़ना भूल गए।
इस उदाहरण में, इसका मतलब है कि हमारा डेटाबेस संभावित रूप से कई कर्मचारियों के लिए समान फोन नंबर संग्रहीत कर सकता है, जो व्यावहारिक नहीं है।
इसे ठीक करने के लिए, हम अपनी टेबल में "phone_number" कॉलम पर UNIQUE प्रतिबंध जोड़ सकते हैं। SQL में कॉलम पर प्रतिबंध जोड़ने के लिए सिंटैक्स इस प्रकार है:
ALTER TABLE table_name ADD UNIQUE (column_name);
यह कमांड हमारे "phone_number" कॉलम पर प्रतिबंध जोड़ता है:
ALTER TABLE employees ADD UNIQUE (phone_number);
यदि हम कोई अन्य प्रतिबंध जोड़ना चाहते थे, तो हम "UNIQUE" को किसी अन्य SQL प्रतिबंध से बदलकर ऐसा कर सकते थे।
SQL ALTER TABLE: टेबल से कॉलम हटाएं
आप टेबल से कॉलम हटाने के लिए ALTER TABLE कमांड का भी उपयोग कर सकते हैं। इस ऑपरेशन को करने के लिए सिंटैक्स इस प्रकार है:
ALTER TABLE table_name DROP COLUMN column_name;
मान लीजिए हम अपनी टेबल से "department" कॉलम हटाना चाहते हैं। हम बाद में एक नया कॉलम बनाने का इरादा रखते हैं जो कर्मचारी के विभाग को दूसरी टेबल से जोड़ता है। हम निम्न कमांड का उपयोग करके इस कॉलम को हटा सकते हैं:
ALTER TABLE employees DROP COLUMN department;
इस कमांड को निष्पादित करने पर, हमारी टेबल से "department" कॉलम हटा दिया जाता है। तो, हमारी टेबल की संरचना अब इस प्रकार दिखाई देती है:
| Field | Type | Default |
| name | varchar(60) | NULL |
| title | varchar(60) | NULL |
| employee_number | varchar(60) | NULL |
| phone_number | varchar(60) |
SQL ALTER TABLE: कॉलम का डेटा प्रकार बदलें
आप ALTER TABLE कमांड का उपयोग कॉलम का डेटा प्रकार बदलने के लिए कर सकते हैं। कॉलम का डेटा प्रकार बदलने के लिए सिंटैक्स है:
ALTER TABLE table_name ALTER COLUMN column_name new_data_type;
इस कमांड के MySQL और Oracle (प्री-10G) के लिए, और Oracle 10G और बाद के संस्करणों के लिए दो वैकल्पिक संस्करण हैं। ये हैं:
ALTER TABLE table_name MODIFY COLUMN column_name new_data_type; (MySQL, Oracle pre-10G) ALTER TABLE table_name MODIFY column_name new_data_type; (Oracle 10G+ and later)
जब हमने अपनी प्रारंभिक "employees" टेबल बनाई, तो हमने अपने "employee_number" फ़ील्ड को नंबर के बजाय VARCHAR() असाइन करने की गलती की। इस गलती को सुधारने के लिए, हम निम्न कमांड का उपयोग कर सकते थे:
ALTER TABLE employees ALTER COLUMN employee_number INT;
यह कमांड हमारे "employee_number" कॉलम का प्रकार INT में बदल देता है। तो, हमारे डेटाबेस के लिए नई संरचना इस प्रकार है:
| Field | Type | Default |
| name | varchar(60) | NULL |
| title | varchar(60) | NULL |
| employee_number | varchar(60) | NULL |
| phone_number | int |
SQL ALTER TABLE: टेबल का नाम बदलें
ALTER TABLE कमांड आपको SQL टेबल का नाम बदलने की भी अनुमति देता है। टेबल का नाम बदलने के लिए सिंटैक्स है:
ALTER TABLE current_table RENAME new_table;
मान लीजिए हम अपनी टेबल "employees" का नाम "old_employees_2019" बदलना चाहते हैं। हम ऐसा इस कमांड का उपयोग करके कर सकते हैं:
ALTER TABLE employees RENAME old_employees_2019;
आप MySQL में ALTER TABLE कमांड का उपयोग करके टेबल का नाम नहीं बदल सकते। MySQL में, ALTER TABLE के बजाय, आप RENAME table कमांड का उपयोग कर सकते हैं।
हम MySQL में अपनी टेबल का नाम बदलने के लिए निम्न कमांड का उपयोग करेंगे:
RENAME TABLE employees TO old_employees_2019;
निष्कर्ष
SQL ALTER TABLE कमांड आपको SQL में टेबल की संरचना बदलने की अनुमति देता है। आप डेटाबेस में टेबल जोड़ सकते हैं, टेबल से हटा सकते हैं, या टेबल बदल सकते हैं। इसके अलावा, आप टेबल से जुड़े प्रतिबंधों को संशोधित कर सकते हैं, जैसे UNIQUE या NOT NULL।
क्या आप SQL के बारे में अधिक सीखना चाहते हैं? हमारा How to Learn SQL गाइड पढ़ें। आपको SQL सीखने के तरीके पर शीर्ष सुझाव मिलेंगे। आपको विशेषज्ञों द्वारा क्यूरेट किए गए शिक्षण संसाधनों की सूची भी मिलेगी जो आपके ज्ञान को बनाने में मदद करेंगे।