Til tross for at de står tidens prøve, kan relasjonsdatabaser endres gjennom hele applikasjonens livssyklus. Det er derfor viktig å lære forskjellige metoder og teknikker du kan bruke for å endre egenskapene til en gitt database når som helst på et hvilket som helst tidspunkt.
I denne artikkelen vil vi lære hvordan du bruker kommandoen Alter Table Modify for å endre kolonnen i en gitt tabell. I tillegg vil vi dekke hvordan du endrer forskjellige kolonneegenskaper uten å gjenskape et bord.
Oracle Alter Table Endre kommando
Alter -tabellen Modify lar deg endre en eksisterende tabellkolonne uten behov for å gjenskape tabellen.
Kommandosyntaks er som vist:
ALTER TABLE TABLE_NAMEKommandoen følger en enkel syntaks som er lett å forstå og følge. Vi starter med å spesifisere tabellnavnet som målkolonnen ligger i.
Deretter spesifiserer vi kolonnen vi ønsker å endre, etterfulgt av handlingen eller egenskapen til kolonnen vi ønsker å oppdatere.
Du kan også oppdatere flere kolonner i en enkelt spørring som vist i syntaksen nedenfor:
ALTER TABLE TABLE_NAMEOracle Database lar deg spesifisere følgende handlinger eller egenskaper:
Eksempel Demonstrasjoner
I den påfølgende delen vil vi utforske eksempler på å bruke Alter -tabellen Modify -kommandoen i Oracle -databaser.
Vi vil bruke en tabell med verdier gitt i avsnittet nedenfor for ensartethet. Imidlertid, hvis du har et eksisterende bord, kan du bruke det til å lære å bruke denne kommandoen.
Eksempeltabell og datasett
Følgende utsagn oppretter eksempeltabellen og legger til tilfeldige data:
Skaperbare bestillingerDet resulterende tabellen er som vist:
Eksempel 1 - Oracle Alter -kolonnen for å tillate nullverdier
Følgende eksempel viser hvordan du bruker kommandoen Alter Table Modify for å endre støtten for nullverdier:
ALTER TABLE BESTILLINGER ENDRE KUNDE VARCHAR2 (50);I dette tilfellet bør spørringen ovenfor oppdatere kundekolonnen og tillate muligheten til å legge til nullverdier.
Som demonstrert nedenfor, kan vi også utføre polaren motsatt og forhindre at en kolonne aksepterer nullverdier.
ALTER TABLE BESTILLINGER ENDRE PRODUKT_ID NUMMER IKKE NULL;I dette tilfellet ber vi Oracle for å forhindre nullverdier i Product_ID -kolonnen.
Eksempel 2 - Oracle Alter Table Modify Column Synsity
Siden Oracle 12c, kan vi definere en kolonne som synlig eller usynlig. Usynlige kolonner er ikke tilgjengelige for spørsmål som SELECT *, Beskriv tabellnavn osv.
For å gjøre en kolonne usynlig ved hjelp av kommandoen Alter Table Modify, kan vi utføre:
ALTER TABLE BESTILLINGER Endre pris usynlige;Dette bør endre synligheten til priskolonnen. Vi kan demonstrere dette ved å velge alle kolonnene i tabellen:
Velg * fra bestillinger;Som du kan gjette, vises ikke priskolonnen i resultatet:
For å tilbakestille kolonnens synlighet, kjør kommandoen:
Endre tabellbestillinger endre pris synlig;Eksempel 3 - Oracle Alter Table Oppdater kolonnenes standardverdi
La oss legge til en ny kolonne med en standardverdi som vist i spørringen nedenfor:
Alter tabellordrer Legg til tilgjengelighetsnummer (1,0) standard 0;I dette eksemplet bør kommandoen ovenfor legge til en ny kolonne som kalles tilgjengelighet med binære verdier. Den inneholder også en standardverdi på 0.
Hvis vi velger verdiene fra tabellen:
Velg * fra bestillinger;Tilgjengelighetskolonnen er befolket med nuller som standardverdi.
For å endre standardverdien med kommandoen Alter Table Endre, kjør: Kjør:Eksempel 4 - Oracle Alter Table Endre kolonnestørrelse
Vi kan utvide eller krympe størrelsen på en gitt kolonne som vist i eksemplet nedenfor:
ALTER TABLE BESTILLINGER ENDRE KUNDE VARCHAR2 (100);I dette tilfellet bør spørringen ovenfor utvide størrelsen på kundekolonnen. Du kan angi en mindre verdi for å krympe størrelsen på en kolonne.
Merk at det er bra å huske på at å endre en eksisterende kolonne hovedsakelig vil påvirke nye verdier. Endringene gjelder kanskje ikke allerede eksisterende data.
Konklusjon
I denne artikkelen oppdaget du bruken av Alter -tabellen Modify -kommandoen for å endre forskjellige egenskaper til en eksisterende tabellkolonne i Oracle -databaser.