6.1 Wijzigen van de structuur van de database
En tot slot, het leukste aan het werken met databases is het veranderen van de database. Als je denkt dat dit iets heel eenvoudigs is, dan is hier een anekdote over dit onderwerp:
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!
De situatie is precies hetzelfde met databases. Wil je een deel van de gegevens uit de aparte tabel halen? Oké, je hebt nodig:
- maak een nieuwe tabel aan
- kopieer de gegevens naar deze nieuwe tabel
- verwijder kolommen uit de oude tabel
- verander alle SQL-query's die naar de oude tabel verwezen
- voeg SQL-query's toe die toegang hebben tot de nieuwe tabel
- verander de Java-code die op de oude manier met tabellen werkte
- verander de back-up- en herstelscripts, aangezien de tabelstructuren nu niet overeenkomen
- als u testgegevens voor ontwikkelaars heeft, moet u deze ook wijzigen
Hoewel het in werkelijkheid nog erger is:
Nieuwe databasestructuur:
- eerst verander je de tabelstructuur op de machine van de ontwikkelaar
- dan ben je ervan overtuigd dat zo'n structuur echt beter is
- de nieuwe databasestructuur goedkeuren
Migratiescripts:
- je schrijft scripts die tabelgegevens, etc. in een echte database veranderen
- voer deze scripts uit op een machine met de oude databasestructuur en kijk hoe deze verandert
- verifieer alle kritieke plaatsen van de nieuwe basis
Update in de uitverkoop
- stop de productiedatabase
- maak een volledige back-up
- uitvoeren van scripts
- aangezien er meestal veel op de markt zijn, kunnen deze scripts uren werken
Je lanceert de prod en hoopt dat je niet alles terug hoeft te draaien.
6.2 ALTER TABLE-verklaring
Aan de andere kant is het script zelf, dat de tabelstructuur verandert, heel eenvoudig. In sommige opzichten lijkt het op een script voor het maken van tabellen. Algemeen overzicht van een tafelwijzigingsverzoek:
ALTER TABLE table
team 1,
team 2,
Team N
Commando's zijn heel verschillend, maar er zijn drie hoofdgroepen te onderscheiden:
ADD
- voegt iets toe aan de tafelMODIFY
- verandert er iets in de tabelDROP
- verwijdert iets in de tabel
En als ik iets zeg, gaat het niet om de data, maar om de structuur van de tabel.
Als u bijvoorbeeld besluit een nieuwe kolom aan de tabel toe te voegen, moet u de volgende query uitvoeren:
ALTER TABLE table
ADD COLUMN Name type
Laten we een query schrijven die een e- mailkolom toevoegt aan onze werknemerstabel :
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
Laten we nu de lengte van de e-mailreeks wijzigen van 10 in 100: hiervoor hebben we een nieuw script nodig:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
Als u enkele attributen van een kolom wilt wijzigen, maar niet het type, dan heeft u het commando ALTER COLUM
nodig . Laten we de standaard e-mailwaarde instellen:
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
En tot slot kan de kolom worden verwijderd als je hem niet nodig hebt:
ALTER TABLE employee
DROP COLUMN email
6.3 Een primaire sleutel toevoegen en verwijderen
En nog meer bruikbare voorbeelden.
Laten we zeggen dat we zijn vergeten de id- kolom als de primaire sleutel te declareren . Je kan het altijd apart doen via ALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (email);
Het verwijderen is nog eenvoudiger:
ALTER TABLE employee
DELETE PRIMARY KEY;