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 tafel
  • MODIFY- verandert er iets in de tabel
  • DROP- 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;