Resumé: i denne vejledning lærer du, hvordan du bruger Oracle ALTER TABLE MODIFY
kolonneopgørelse for at ændre definitionen af eksisterende kolonner.
For at ændre definitionen af en kolonne i en tabel bruger du ALTER TABLE MODIFY
kolonnesyntaks som følger:
Erklæringen er ligetil. For at ændre en kolonne i en tabel skal du angive kolonnenavn, tabelnavn og handling, du vil udføre.
Oracle giver dig mulighed for at udføre mange handlinger, men følgende er de vigtigste:
- Rediger søjlens synlighed
- Tillad eller tillad ikke nulværdier
- Forkort eller udvid kolonnens størrelse
- Skift standardværdi for en kolonne
- Rediger udtryk for de virtuelle kolonner
For at ændre flere kolonner bruger du følgende syntaks:
Oracle ALTER TABLE MODIFY kolonneeksempler
Opret først en ny tabel med navnet accounts
til demonstrationen:
For det andet skal du indsætte nogle rækker i accounts
-tabellen:
For det tredje skal du kontrollere indsættelsesfunktionen ved hjælp af følgende SELECT
udsagn:
A) Rediger søjlens synlighed it
I Oracle Database 12c kan du definere tabelkolonner som usynlige eller synlige. Usynlige kolonner er ikke tilgængelige for forespørgslen som:
Eller udsagn som:
i SQL * Plus.
Du kan dog forespørge de usynlige kolonner ved at angive dem eksplicit i forespørgslen:
By som standard er tabelkolonner synlige. Du kan definere usynlig kolonne, når du opretter tabellen eller bruger ALTER TABLE MODIFY
kolonneerklæring.
For eksempel giver følgende udsagn full_name
usynlig kolonne:
Følgende udsagn returnerer data fra alle kolonner i accounts
-tabellen undtagen full_name
-kolonnen :
Dette skyldes, at kolonnen full_name
er usynlig.
For at ændre en kolonne fra usynlig til synlig bruger du udsagnet nedenfor:
B) Tillad eller tillad ikke nulleksempel
Følgende udsagn ændres email
-kolonnen for at acceptere værdier, der ikke er nul:
Oracle udsendte imidlertid følgende fejl:
Fordi når du ændrede en kolonne fra nulbar til n on-nullable, skal du sikre, at de eksisterende data overholder den nye begrænsning.
For at rette dette opdaterer vi først værdierne for email
-kolonnen:
Bemærk, at funktionen LOWER()
konverterer en streng til små bogstaver.
Og skift derefter søjles begrænsning:
Nu fungerer den som forventet.
C) Udvid eller forkert størrelsen på et kolonneeksempel
Antag, vi vil føje international kode til telefonnumrene. Før vi gør det, skal vi udvide telefonkolonnens størrelse ved hjælp af følgende udsagn:
Nu kan vi opdatere telefonnumrene:
Følgende udsagn bekræfter opdateringen:
For at forkorte størrelsen på en kolonne skal du sørge for, at alle data i kolonnen passer til den nye størrelse.
For eksempel forsøger vi at forkorte størrelsen på phone
kolonnen ned til 12 tegn:
Oracle Database udsendte følgende fejl:
For at løse dette skal vi først fjerne den internationale kode fra telefonnumrene:
REPLACE()
-funktionen erstatter en substring med en ny substring. I dette tilfælde erstatter det ‘+ 1-‘ med en tom streng.
Og afkort derefter størrelsen på phone
kolonnen:
D) Rediger virtuel kolonne
Antag, vi har det fulde navn i følgende format:
For at gøre dette kan vi ændre udtrykket for virtuel kolonne full_name
som følger:
Følgende udsagn bekræfter ændringen:
E) Rediger standardværdien af en kolonne
Lad os tilføje en ny kolonne med navnet status
til accounts
-tabellen med standardværdi 1.
Når du har udført udsagnet, er værdierne i statuskolonnen indstillet til 1 for alle eksisterende rækker i accounts
-tabellen.
For at ændre standardværdien o f statuskolonnen til 0, bruger du følgende udsagn:
Vi kan tilføje en ny række til accounts
tabel for at kontrollere, om standardværdien i kolonnen status
er 0 eller 1:
Forespørgselsdata fra accounts
-tabellen:
Som du kan se, er værdien i statuskolonnen for kontoen med id 4 som forventet.
I denne vejledning har du lært, hvordan du bruger Oracle ALTER TABLE MODIFY
kolonneudtalelsen til at ændre definitionen af eksisterende kolonner i en tabel.
- Var denne tutorial nyttig?
- JaNej