6.1 Endring av strukturen til databasen
Og til slutt, den deiligste delen av å jobbe med databaser er å endre databasen. Hvis du tror at dette er noe veldig enkelt, så her er en anekdote for deg om emnet:
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!
Situasjonen er nøyaktig den samme med databaser. Vil du ta ut en del av dataene i den separate tabellen? Ok, du trenger:
- opprette en ny tabell
- kopier dataene til denne nye tabellen
- fjerne kolonner fra gammel tabell
- endre alle SQL-spørringer som refererte til den gamle tabellen
- legg til SQL-spørringer som vil få tilgang til den nye tabellen
- endre Java-koden som fungerte med tabeller på den gamle måten
- endre sikkerhetskopierings- og gjenopprettingsskriptene, siden tabellstrukturene nå ikke samsvarer
- hvis du har testdata for utviklere, må du endre dem også
Selv om det i virkeligheten er enda verre:
Ny databasestruktur:
- først endrer du tabellstrukturen på utviklerens maskin
- da er du overbevist om at en slik struktur virkelig er bedre
- godkjenne den nye databasestrukturen
Migreringsskript:
- du skriver skript som vil endre tabelldata osv. på en ekte database
- kjør disse skriptene på en maskin med den gamle databasestrukturen og se hvordan den endres
- verifiser alle de kritiske stedene til den nye basen
Oppdatering på salg
- stoppe produksjonsdatabasen
- lage en fullstendig sikkerhetskopi
- utfører skript
- siden det vanligvis er mye på markedet, kan disse skriptene fungere i timevis
Du lanserer proppen og håper at du slipper å rulle alt tilbake.
6.2 ENDRINGSTABELL-uttalelse
På den annen side er selve skriptet, som endrer tabellstrukturen, veldig enkelt. På noen måter ligner det på et tabellopprettingsskript. Generell visning av en forespørsel om tabellendring:
ALTER TABLE table
team 1,
team 2,
Team N
Kommandoer er veldig forskjellige, men tre hovedgrupper kan skilles:
ADD
- tilfører bordet noeMODIFY
- endrer noe i tabellenDROP
- sletter noe i tabellen
Og når jeg sier noe, handler det ikke om dataene, men om strukturen til tabellen.
For eksempel bestemmer du deg for å legge til en ny kolonne i tabellen, så må du utføre følgende spørring:
ALTER TABLE table
ADD COLUMN Name type
La oss skrive en spørring som vil legge til en e- postkolonne i ansatttabellen vår :
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
La oss nå endre lengden på e-poststrengen fra 10 til 100: for dette trenger vi et nytt skript:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
Hvis du vil endre noen attributter til en kolonne, men ikke dens type, trenger du kommandoen ALTER COLUM
. La oss angi standard e- postverdi:
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
Og til slutt kan kolonnen fjernes hvis du ikke trenger den:
ALTER TABLE employee
DROP COLUMN email
6.3 Legge til og fjerne en primærnøkkel
Og noen flere nyttige eksempler.
La oss si at vi har glemt å angi id- kolonnen som primærnøkkel. Du kan alltid gjøre det separat via ALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (email);
Å fjerne den er enda enklere:
ALTER TABLE employee
DELETE PRIMARY KEY;