mysql alter table how add column table mysql
उदाहरण के साथ एक कॉलम, इंडेक्स, बाधा, परिवर्तन तालिका का नाम आदि जोड़ने / छोड़ने के लिए MySQL ALTER टेबल कमांड के बारे में जानें:
MySQL अलर्ट कमांड का उपयोग किसी मौजूदा कॉलम को नया कॉलम जोड़कर या मौजूदा कॉलम को हटाकर या डेटा प्रकार के कॉलम को बदलने के लिए किया जाता है।
सीधे शब्दों में, ALTER कमांड का उपयोग मौजूदा टेबल की संरचना को जोड़ने / हटाने / अपडेट करने, टेबल का नाम बदलने, इत्यादि को संशोधित करने के लिए किया जाता है।
यह लगभग असंभव है कि किसी दिए गए स्कीमा की सभी आवश्यकताएं पहले से उपलब्ध हैं, इसलिए यह आवश्यक है कि तालिका संरचना को आवश्यकतानुसार अद्यतन करने का एक तरीका होना चाहिए।
आप क्या सीखेंगे:
MySQL अलर्ट टेबल
वाक्य - विन्यास:
ALTER TABLE table_name (alter_option1, alter_option2...)
यहां table_name उस तालिका का नाम है जिस पर हम परिवर्तन कार्रवाई करना चाहते हैं। के साथ एक या एक से अधिक चेंज_ओपेशन निर्दिष्ट किए जा सकते हैं तालिका में परिवर्तन आज्ञा।
आइए MySQL द्वारा प्रदान किए गए विभिन्न प्रमुख रूप से उपयोग किए जाने वाले_परिवर्तन देखें।
नमूना डेटा और तालिका सेटअप
के विभिन्न उपयोगों को समझने के उद्देश्य से उम्र कमांड, हम 2 सैंपल टेबल का उपयोग करेंगे - कर्मचारी और विभाग, जिसमें नीचे उल्लिखित संरचना है।
हम दोनों तालिकाओं में कुछ डमी डेटा भी जोड़ रहे हैं।
हमने इन तालिकाओं के बीच कोई विदेशी कुंजी बाधाओं को जोड़ा नहीं है। हम चर्चा करते हुए नीचे दिए गए अनुभागों में दिखाए गए उदाहरणों में ALTER कमांड का उपयोग करके उन्हें जोड़ना सीखेंगे।
CREATE TABLE IF NOT EXISTS Employee_Department ( id INT, name VARCHAR(100), PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name VARCHAR(100), id INT, address VARCHAR(100), department_id INT, PRIMARY KEY (id) ); INSERT INTO `employee_department`(`name`,`id`) VALUES ('Information Technology',1),('HR',2),('Finance',3),('Accounting',4),('Housekeeping',5 ),('Security',6),('Support',7),('Contract Staff',8),('Sales',9),('Management',10); INSERT INTO `employee` (`id`,`name`,`address`) VALUES (1,'Alyssa Villarreal','Ap #558-3012 Nulla Street'),(2,'Vanna Parks','103-986 Cursus Rd.'),(3,'Quyn Byers','770 Nulla Avenue'),(4,'Kristen Hall','Ap #622-9967 Nullam St.'),(5,'Chelsea Stone','6017 Elementum St.'),(6,'Sacha Sweeney','239-7402 Etiam St.'),(7,'Sophia Charles','799 -745 Tellus. Rd.'),(8,'Jennifer Joyner','5803 Ligula. Avenue'),(9,'Mercedes Head','Ap #375-7999 Facilisis Rd.'),(10,'Reagan Holland','P.O. Box 625, 5744 Proin Avenue');
ALTER टेबल कमांड का उपयोग करने के विभिन्न तरीके
MySQL अलर्ट कमांड का उपयोग कई चीजों के लिए किया जा सकता है जैसे कि कॉलम जोड़ना / ड्रॉप करना, इंडेक्स / ड्रॉप इंडेक्स या बाधा जोड़ना और टेबल को स्वयं अपडेट करना। उदाहरणों की सहायता से विभिन्न परिदृश्यों को देखें।
जोड़ें रंग
उपरोक्त नमूना तालिकाओं के साथ, तालिका के कर्मचारी में 'INT_ टाइप' विभाग का एक नया कॉलम जोड़ें।
ALTER TABLE employee ADD COLUMN department_id INT
ड्रॉप रंग
एक नया कॉलम जोड़ने के समान, द MySQL अलर्ट आदेश का उपयोग तालिका से मौजूदा कॉलम को गिराने के लिए किया जा सकता है।
कर्मचारी तालिका से उपर्युक्त स्तंभ विभाग_ को निकालने का प्रयास करें।
ALTER TABLE employee DROP COLUMN department_id
कृपया ध्यान दें कि एक COLUMN ड्रॉप करते समय, आपको केवल कॉलम नाम और उसके डेटा प्रकार का उल्लेख करना होगा।
मान्य करने के लिए यदि ALTER कमांड सफल हुआ, तो आप SHOW COLUMNS कमांड चला सकते हैं।
SHOW COLUMNS FROM employee;
आउटपुट:
मैदान | प्रकार | शून्य | चाभी | चूक | अतिरिक्त |
---|---|---|---|---|---|
नाम | वर्चर (100) | हाँ | शून्य | ||
ईद | पूर्णांक | हाँ | शून्य | ||
पता | वर्चर (100) | हाँ | शून्य |
अब आप 'कर्मचारी' तालिका में कोई विभाग_आईडी कॉलम नहीं देख सकते।
बाधाओं को जोड़ें / छोड़ें
आइए अब देखें कि बाधा को जोड़ने के लिए ALTER का उपयोग कैसे किया जा सकता है।
किसी मौजूदा तालिका के लिए बाधाओं को जोड़ने या हटाने के लिए ALTER कमांड का उपयोग किया जा सकता है। आइए एक पूर्ववर्ती प्रमुख बाधा का एक उदाहरण देखें जिसे 2 तालिकाओं के बीच जोड़ना होगा।
हम कर्मचारी तालिका में कर्मचारी तालिका में FOREIGN KEY CONSTRAINT जोड़ने के लिए ALTER कमांड का उपयोग करेंगे।
कर्मचारी तालिका में Department_id नामक एक नया कॉलम जोड़ें।
ALTER TABLE employee ADD COLUMN department_id INT
अब, FOREIGN KEY बाधा जोड़ें।
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
इस बाधा को मान्य करने के लिए, हम तालिका परिभाषा देखने के लिए SHOW कमांड का उपयोग कर सकते हैं।
SHOW CREATE TABLE employee;
टेबल | तालिका बनाएं |
---|---|
कर्मचारी | बनाएँ टेबल `कर्मचारी` ( `name` varchar (100) DEFAULT NULL, `आईडी` इंट डेफॉल्ट नाल, `पता` वर्चर (100) DEFAULT NULL, `Department_id` int DEFAULT NULL, प्रमुख `डिपार्टमेंट_आईडी` (` डिपार्टमेंट_आईडी`), CONSTRAINT `employee_ibfk_1` FOREIGN KEY (` Department_id`) संदर्भ `कर्मचारी_डेपबॉक्स` (` आईडी`) ) इंजन = इनोबीडी डिफॉल्ट चार्ट = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
आप पाएंगे कि विभाग_आईडी कॉलम पर बनाया गया एक प्रमुख कुंजी अवरोध है।
आइए अब देखते हैं कि हम पूर्व कमांड कुंजी को हटाने के लिए कैसे बदल सकते हैं जो हमने अभी जोड़ा था।
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
कृपया ध्यान दें कि आपको बनाई गई बाधा के नाम का उपयोग करना होगा। इसलिए उपरोक्त SHOW कमांड आउटपुट में, आप बाधा नाम को देख सकते हैं जिसे MySQL ने FOREIGN KEY बाधा के लिए बनाया है ‘ employee_ibfk_1 '
यह देखने के लिए कि नीचे दिखाया गया है, तो बाधा को हटाकर SHOW कमांड चलाएं:
SHOW CREATE TABLE employee;
टेबल | तालिका बनाएं |
---|---|
कर्मचारी | बनाएँ टेबल `कर्मचारी` ( `name` varchar (100) DEFAULT NULL, `आईडी` इंट डेफॉल्ट नाल, `पता` वर्चर (100) DEFAULT NULL, `Department_id` int DEFAULT NULL, प्रमुख `डिपार्टमेंट_आईडी` (` डिपार्टमेंट_आईडी`) ) इंजन = इनोबीडी डिफॉल्ट चार्ट = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
अनुक्रमणिका जोड़ें / छोड़ें
MySQL अलर्ट टेबल कमांड आपको टेबल के खिलाफ INDEXES बनाने या छोड़ने की अनुमति देता है।
चार अलग-अलग प्रकार के सूचकांक हो सकते हैं जिन्हें ALTER TABLE कमांड का उपयोग करके जोड़ा जा सकता है।
# 1) प्राथमिक कुंजी जोड़ें: यह कमांड किसी दिए गए कॉलम (या कॉलम) के खिलाफ एक प्राथमिक कुंजी सूचकांक जोड़ता है
नीचे दिए गए उदाहरण में, कर्मचारी तालिका का उपयोग करें और to Id 'कॉलम में प्राथमिक कुंजी सूचकांक जोड़ें।
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) अद्वितीय जोड़ें: दिए गए कॉलम के विरुद्ध अद्वितीय इंडेक्स जोड़ता या बनाता है
मान लीजिए कि काल्पनिक रूप से हम केवल एक तालिका में अद्वितीय नाम चाहते हैं। नीचे दिखाए गए अनुसार कर्मचारी तालिका में UN नाम ’कॉलम पर एक अद्वितीय सूचकांक जोड़ें।
ALTER TABLE employee ADD UNIQUE (name);
# 3) INDEX जोड़ें: किसी भी कॉलम के खिलाफ एक साधारण सूचकांक जोड़ें।
कर्मचारी तालिका में 'पता' फ़ील्ड पर एक सामान्य सूचकांक जोड़ें।
ALTER TABLE employee ADD INDEX (name);
# 4) FULLTEXT इंडेक्स जोड़ें: यह एक विशेष प्रकार का सूचकांक है जिसका उपयोग पाठ खोज उद्देश्यों के लिए किया जाता है।
हम कर्मचारी तालिका में column नाम ’कॉलम के मानों पर एक पूर्ण सूचकांक जोड़ेंगे।
ALTER TABLE employee ADD FULLTEXT(address);
उपरोक्त सभी 4 उदाहरणों के लिए, हम चला सकते हैं शो का निर्माण आदेश अनुक्रमित के बारे में विवरण प्राप्त करने के लिए।
SHOW CREATE TABLE employee;
टेबल | तालिका बनाएं |
---|---|
कर्मचारी | बनाएँ टेबल `कर्मचारी` ( `name` varchar (100) DEFAULT NULL, `आईडी` इंट नॉट, `पता` वर्चर (100) DEFAULT NULL, `Department_id` int DEFAULT NULL, प्राथमिक कुंजी (`आईडी`), अद्वितीय कुंजी `नाम` (` नाम`), कुंजी `name_2` (` नाम`), पूर्ण कुंजी 'पता' (`पता ') ) इंजन = इनोबीडी डिफॉल्ट चार्ट = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
उपरोक्त आउटपुट में, आप देखेंगे कि create_table कॉलम में मूल्य के अनुसार सभी इंडेक्स बनाए गए हैं।
इंडेक्स बनाने के समान, तालिका से मौजूदा इंडेक्स को छोड़ने के लिए ALTER कमांड का भी उपयोग किया जा सकता है।
उदाहरण:
ALTER TABLE employee DROP INDEX address;
उपरोक्त कमांड उस FULLTEXT इंडेक्स को DROP करेगा जो हमने एड्रेस फील्ड के लिए जोड़ा है।
नाम बताइए ‘पता’। यह आउटपुट में इंडेक्स नाम से मेल खाना चाहिए शो का निर्माण आज्ञा।
कॉलम का डिफ़ॉल्ट मान बदलें
तालिका में परिवर्तन कमांड को मौजूदा कॉलम के लिए DEFAULT मान को सेट / परिवर्तित करने के लिए भी उपयोग किया जा सकता है।
Android के लिए सबसे अच्छा मुफ्त संगीत डाउनलोडर अनुप्रयोग
आइए एक उदाहरण देखें, जहां हम विभाग_एड कॉलम के डिफ़ॉल्ट मान को example 1 'में बदल देंगे। इसके साथ, इस तालिका में कोई भी नया आवेषण बदल जाएगा / विभाग_एड कॉलम के मान को 1 पर सेट कर देगा
ALTER TABLE employee ALTER department_id SET DEFAULT 1
कर्मचारी तालिका में एक नया रिकॉर्ड जोड़ें:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
और अब इस रिकॉर्ड के लिए विभाग_ की क्वेरी दें और देखें कि क्या मूल्य निर्धारित किया जा रहा है।
SELECT department_id FROM employee where id=11 //Output department_id 1
अद्यतन तालिका का नाम
MySQL अलर्ट टेबल कमांड का उपयोग किसी मौजूदा टेबल के नाम को अपडेट करने के लिए भी किया जा सकता है। कई बार स्कीमा संरचना को अपडेट करने की आवश्यकता होती है, जिसमें टेबल नामों को बदलना / अपडेट करना शामिल हो सकता है।
उदाहरण - हम टेबल का नाम बदलकर 'कर्मचारी' को 'एम्प्लॉई_डेट्स' कर देंगे।
ALTER TABLE table_name RENAME TO new_table_name;
बार बार पूछे जाने वाले प्रश्न
Q # 1) मैं MySQL में टेबल संरचना कैसे बदल सकता हूँ?
उत्तर: MySQL MySQL में मौजूदा तालिका की संरचना को बदलने के लिए ALTER कमांड प्रदान करता है। आप जैसे ALTER कमांड के साथ विभिन्न ऑपरेशन कर सकते हैं,
- स्तंभ जोड़ना / छोड़ना
- सूचकांक या बाधा को जोड़ना / हटाना
- एक टेबल का नाम बदलकर
Q # 2) क्या ALTER कमांड एक टेबल को लॉक करता है?
उत्तर: यह संस्करणों पर निर्भर हो सकता है - MySQL के पुराने संस्करणों में ALTER स्टेटमेंट के निष्पादन के दौरान एक टेबल को लॉक करना। सामान्य तौर पर, लॉकिंग होता है यानी ALTER के दौरान कोई भी पढ़ता और लिखता है।
उदाहरण के लिए - किसी मौजूदा तालिका के लिए एक नया स्तंभ जोड़ने से तालिका की सभी पंक्तियाँ स्पर्श हो जाएँगी जिसमें स्तंभ जोड़ा जा रहा है और जब तालिका में लाखों की संख्या में रिकॉर्ड होते हैं, तो ALTER कार्रवाई को निष्पादित करने में कुछ समय लग सकता है। इस स्थिति में, रीडिंग / राइट्स पर होने वाली लॉकिंग महंगी होगी क्योंकि डेटाबेस डाउन और दुर्गम होगा।
Q # 3) क्या हम ALTER तालिका में एक से अधिक कॉलम जोड़ सकते हैं?
उत्तर: हां, ALTER कमांड का इस्तेमाल एक स्टेटमेंट में कई कॉलम जोड़ने के लिए किया जा सकता है।
आइए एक उदाहरण देखें जहां हमारे पास कॉलम आईडी, नाम और पता के साथ एक टेबल कर्मचारी है और मान लें कि हम नाम के 2 और कॉलम जोड़ना चाहते हैं - उच्चतम_शिक्षा (प्रकार varchar) और phone_number (प्रकार varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
आइए तालिका की जानकारी देखें
SHOW COLUMNS FROM employee;
आउटपुट:
मैदान | प्रकार | शून्य | चाभी | चूक | अतिरिक्त |
---|---|---|---|---|---|
नाम | वर्चर (100) | हाँ | संयुक्त | शून्य | |
ईद | पूर्णांक | ऐसा न करें | पंचायती राज | शून्य | |
पता | वर्चर (100) | हाँ | शून्य | ||
विभाग_द | पूर्णांक | हाँ | एक | ||
उच्चतम शिक्षा | वर्चर (50) | हाँ | शून्य | ||
फ़ोन नंबर | वर्चर (20) | हाँ | शून्य |
ऊपर दिए गए आउटपुट में आप कॉलम देख सकते हैं, उच्चतम_शिक्षा और फोन_नंबर जोड़े गए हैं।
निष्कर्ष
इस ट्यूटोरियल में, हमने विभिन्न usages के बारे में जाना MySQL अलर्ट टेबल कमांड। ALTER एक महत्वपूर्ण कमांड है क्योंकि इसका उपयोग कई उद्देश्यों के लिए MySQL में मौजूदा टेबल की संरचना को बदलने के लिए किया जा सकता है।
इसका उपयोग चीजों के लिए किया जा सकता है जैसे - किसी स्तंभ को जोड़ना / हटाना, अनुक्रमित या बाधा को जोड़ना, या किसी मौजूदा तालिका का नाम बदलने के लिए भी उपयोग किया जा सकता है।
MySQL सीखने वाले किसी व्यक्ति को ALTER टेबल कमांड की गहन समझ होनी चाहिए, क्योंकि इसका उपयोग ज्यादातर डेटाबेस के रखरखाव चरणों के दौरान किया जाता है जहां मौजूदा टेबल स्कीमा को बदलना आवश्यक है।
अनुशंसित पाठ
- MySQL उदाहरणों के साथ तालिका ट्यूटोरियल बनाएँ
- MySQL तालिका में सम्मिलित करें - स्टेटमेंट सिंटैक्स और उदाहरण डालें
- MySQL डेटा प्रकार | MySQL में विभिन्न डेटा प्रकार क्या हैं
- उदाहरणों के साथ MySQL के प्रमुख कुंजी बाधा की मूल बातें
- MySQL JOIN ट्यूटोरियल: इनर, आउटर, क्रॉस, लेफ्ट, राइट और सेल्फ
- MySQL Create Database - MySQL में डेटाबेस कैसे बनायें
- शीर्ष 40 सर्वश्रेष्ठ MySQL साक्षात्कार प्रश्न और उत्तर (2021 प्रश्न)
- हैश टेबल इन सी ++: हैश टेबल और हैश मैप्स को लागू करने के लिए कार्यक्रम