Sammendrag: i denne opplæringen lærer du hvordan du bruker Oracle ALTER TABLE MODIFY
kolonneuttrykk for å endre definisjonen av eksisterende kolonner.
For å endre definisjonen av en kolonne i en tabell, bruker du ALTER TABLE MODIFY
kolonnesyntaks som følger:
Uttalelsen er grei. For å endre en kolonne i en tabell, må du spesifisere kolonnenavnet, tabellnavnet og handlingen du vil utføre.
Oracle lar deg utføre mange handlinger, men følgende er de viktigste:
- Endre kolonnens synlighet
- Tillat eller ikke tillat nullverdier
- Forkort eller utvid kolonnens størrelse
- Endre standardverdi for en kolonne
- Endre uttrykk for de virtuelle kolonnene
For å endre flere kolonner bruker du følgende syntaks:
Oracle ALTER TABLE MODIFY kolonneeksempler
Opprett først en ny tabell med navnet accounts
for demonstrasjonen:
Sett deretter inn noen rader i accounts
-tabellen:
For det tredje må du kontrollere innsettingsoperasjonen ved å bruke følgende SELECT
uttalelse:
A) Endre kolonnens synlighet ity
I Oracle Database 12c kan du definere tabellkolonner som usynlige eller synlige. Usynlige kolonner er ikke tilgjengelige for spørringen som:
Eller uttalelse som:
i SQL * Plus.
Du kan imidlertid spørre de usynlige kolonnene ved å spesifisere dem eksplisitt i spørringen:
By som standard er tabellkolonner synlige. Du kan definere usynlig kolonne når du oppretter tabellen eller bruker ALTER TABLE MODIFY
kolonneuttrykk.
For eksempel gjør følgende utsagn full_name
usynlig kolonne:
Følgende utsagn returnerer data fra alle kolonnene i accounts
-tabellen bortsett fra full_name
-kolonnen :
Dette er fordi full_name
-kolonnen er usynlig.
For å endre en kolonne fra usynlig til synlig, bruker du utsagnet nedenfor:
B) Tillat eller ikke tillat nulleksempel
Følgende uttalelse endres email
-kolonnen for å godta ikke-nullverdier:
Oracle utstedte imidlertid følgende feil:
For når du endret en kolonne fra nullbar til n på-null, må du sørge for at de eksisterende dataene oppfyller den nye begrensningen.
For å fikse dette oppdaterer vi først verdiene for email
-kolonnen:
Merk at LOWER()
-funksjonen konverterer en streng til små bokstaver.
Og endre deretter kolonnens begrensning:
Nå fungerer den som forventet.
C) Utvide eller forkorte størrelsen på et kolonneeksempel
Anta at vi vil legge til internasjonal kode i telefonnumrene. Før vi gjør det, må vi utvide størrelsen på telefonkolonnen ved å bruke følgende utsagn:
Nå kan vi oppdatere telefonnumrene:
Følgende utsagn bekrefter oppdateringen:
For å forkorte størrelsen på en kolonne, sørger du for at alle data i kolonnen passer til den nye størrelsen.
For eksempel prøver vi å forkorte størrelsen på phone
kolonnen ned til 12 tegn:
Oracle Database utstedte følgende feil:
For å fikse dette, bør vi først fjerne den internasjonale koden fra telefonnumrene:
REPLACE()
-funksjonen erstatter en substring med en ny substring. I dette tilfellet erstatter den ‘+ 1-’ med en tom streng.
Forkort deretter størrelsen på phone
-kolonnen:
D) Endre virtuell kolonne
Anta, vi har hele navnet i følgende format:
For å gjøre dette kan vi endre uttrykket for virtuell kolonne full_name
som følger:
Følgende uttalelse bekrefter endringen:
E) Endre standardverdien for en kolonne
La oss legge til en ny kolonne kalt status
til accounts
tabellen med standardverdi 1.
Når du har utført setningen, blir verdiene i statuskolonnen satt til 1 for alle eksisterende rader i accounts
-tabellen.
For å endre standardverdien o f statuskolonnen til 0, bruker du følgende utsagn:
Vi kan legge til en ny rad i accounts
tabell for å sjekke om standardverdien for status
kolonnen er 0 eller 1:
Forespørselsdata fra accounts
tabellen:
Som du kan se, er verdien i statuskolonnen for kontoen med id 4 0 som forventet.
I denne veiledningen har du lært hvordan du bruker Oracle ALTER TABLE MODIFY
kolonneuttrykk for å endre definisjonen av eksisterende kolonner i en tabell.
- Var denne veiledningen nyttig?
- JaNei