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 noe
  • MODIFY- endrer noe i tabellen
  • DROP- 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;