6.1 डेटाबेसची रचना बदलणे

आणि शेवटी, डेटाबेससह काम करण्याचा सर्वात मधुर भाग म्हणजे डेटाबेस बदलणे. जर तुम्हाला वाटत असेल की ही गोष्ट अगदी सोपी आहे, तर तुमच्यासाठी या विषयावरील एक किस्सा येथे आहे:


The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!

डेटाबेससह परिस्थिती अगदी तशीच आहे. तुम्हाला वेगळ्या टेबलमधील डेटाचा काही भाग काढायचा आहे का? ठीक आहे, आपल्याला आवश्यक आहे:

  • एक नवीन टेबल तयार करा
  • या नवीन टेबलमध्ये डेटा कॉपी करा
  • जुन्या टेबलमधून स्तंभ काढा
  • जुन्या सारणीचा संदर्भ असलेल्या सर्व SQL क्वेरी बदला
  • SQL क्वेरी जोडा जे नवीन टेबलमध्ये प्रवेश करेल
  • जुन्या पद्धतीने टेबल्ससह काम करणारा Java कोड बदला
  • बॅकअप बदला आणि स्क्रिप्ट पुनर्संचयित करा, कारण आता टेबल स्ट्रक्चर्स जुळत नाहीत
  • तुमच्याकडे डेव्हलपरसाठी चाचणी डेटा असल्यास, तुम्हाला ते देखील बदलणे आवश्यक आहे

जरी प्रत्यक्षात ते आणखी वाईट आहे:

नवीन डेटाबेस रचना:

  • प्रथम तुम्ही डेव्हलपरच्या मशीनवर टेबल स्ट्रक्चर बदला
  • मग तुम्हाला खात्री आहे की अशी रचना खरोखरच चांगली आहे
  • नवीन डेटाबेस संरचना मंजूर करा

स्थलांतर स्क्रिप्ट:

  • तुम्ही स्क्रिप्ट लिहा ज्यामुळे टेबल डेटा बदलेल, इ. रिअल डेटाबेसवर
  • या स्क्रिप्ट जुन्या डेटाबेस स्ट्रक्चरसह मशीनवर चालवा आणि ते कसे बदलतात ते पहा
  • नवीन बेसची सर्व गंभीर ठिकाणे सत्यापित करा

विक्रीवर अपडेट

  • उत्पादन डेटाबेस थांबवा
  • पूर्ण बॅकअप घ्या
  • स्क्रिप्ट कार्यान्वित करणे
  • बाजारात बरेच काही असल्याने, या स्क्रिप्ट तासनतास काम करू शकतात

तुम्ही उत्पादन लाँच केले आहे आणि आशा आहे की तुम्हाला सर्वकाही परत करावे लागणार नाही.

6.2 सारणी विधान बदला

दुसरीकडे, स्क्रिप्ट स्वतः, जी टेबलची रचना बदलते, अगदी सोपी आहे. काही मार्गांनी, ते टेबल तयार करण्याच्या स्क्रिप्टसारखे आहे. टेबल बदलाच्या विनंतीचे सामान्य दृश्य:

ALTER TABLE table
team 1,
team 2,
Team N

कमांड खूप भिन्न आहेत, परंतु तीन मुख्य गट ओळखले जाऊ शकतात:

  • ADD- टेबलमध्ये काहीतरी जोडते
  • MODIFY- टेबलमध्ये काहीतरी बदलते
  • DROP- टेबलमधील काहीतरी हटवते

आणि जेव्हा मी काही बोलतो तेव्हा ते डेटाबद्दल नाही तर टेबलच्या संरचनेबद्दल असते.

उदाहरणार्थ, तुम्ही टेबलमध्ये नवीन कॉलम जोडण्याचा निर्णय घेतला, त्यानंतर तुम्हाला खालील क्वेरी कार्यान्वित करण्याची आवश्यकता आहे:

ALTER TABLE table
	ADD COLUMN Name type

चला एक क्वेरी लिहू जी आमच्या कर्मचारी टेबलवर ईमेल स्तंभ जोडेल :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

आता ईमेल स्ट्रिंगची लांबी 10 वरून 100 पर्यंत बदलूया: यासाठी आपल्याला नवीन स्क्रिप्टची आवश्यकता आहे:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

जर तुम्हाला स्तंभाचे काही गुणधर्म बदलायचे असतील, परंतु त्याचा प्रकार बदलायचा नसेल, तर तुम्हाला कमांडची ALTER COLUM आवश्यकता आहे . डीफॉल्ट ईमेल मूल्य सेट करूया :

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

आणि शेवटी, आपल्याला त्याची आवश्यकता नसल्यास स्तंभ काढला जाऊ शकतो:

ALTER TABLE employee
	DROP COLUMN email 

6.3 प्राथमिक की जोडणे आणि काढणे

आणि आणखी काही उपयुक्त उदाहरणे.

समजा आपण आयडी कॉलमला प्राथमिक की म्हणून घोषित करायला विसरलो आहोत. आपण हे नेहमी याद्वारे स्वतंत्रपणे करू शकता ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

ते काढणे आणखी सोपे आहे:

ALTER TABLE employee
	DELETE PRIMARY KEY;