Oracle ALTER TABLE MODIFY Column (Norsk)

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

Write a Comment

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *