Sammanfattning: i denna handledning lär du dig hur du använder Oracle ALTER TABLE MODIFY
kolumnuttryck för att ändra definitionen av befintliga kolumner.
För att ändra definitionen av en kolumn i en tabell använder du ALTER TABLE MODIFY
kolumnens syntax enligt följande:
Uttalandet är enkelt. För att ändra en kolumn i en tabell måste du ange kolumnnamn, tabellnamn och åtgärd som du vill utföra.
Oracle låter dig utföra många åtgärder men följande är de viktigaste:
- Ändra kolumnens synlighet
- Tillåt eller tillåt inte nullvärden
- Förkorta eller bredda kolumnens storlek
- Ändra standardvärde för en kolumn
- Ändra uttryck för de virtuella kolumnerna
För att ändra flera kolumner använder du följande syntax:
Oracle ALTER TABLE MODIFY kolumnexempel
Skapa först en ny tabell med namnet accounts
för demonstrationen:
För det andra, sätt in några rader i accounts
-tabellen:
För det tredje, verifiera insättningsfunktionen med följande SELECT
uttalande:
A) Ändra kolumnens synlighet it
I Oracle Database 12c kan du definiera tabellkolumner som osynliga eller synliga. Osynliga kolumner är inte tillgängliga för frågan som:
Eller uttalande som:
i SQL * Plus.
Du kan dock fråga de osynliga kolumnerna genom att ange dem uttryckligen i frågan:
By som standard visas tabellkolumner. Du kan definiera osynlig kolumn när du skapar tabellen eller använder ALTER TABLE MODIFY
kolumnuttalande.
Till exempel gör följande uttalande full_name
osynlig kolumn:
Följande uttalande returnerar data från alla kolumner i accounts
tabellen förutom kolumnen full_name
:
Detta beror på att kolumnen full_name
är osynlig.
För att ändra en kolumn från osynlig till synlig, använder du uttalandet nedan:
B) Tillåt eller tillåt inte null-exempel
Följande uttalande ändras email
kolumnen för att acceptera icke-nollvärden:
Oracle har emellertid utfärdat följande fel:
För när du ändrade en kolumn från nollbar till n on-nullable måste du se till att befintliga data uppfyller den nya begränsningen.
För att åtgärda detta uppdaterar vi först värdena för email
-kolumnen:
Observera att funktionen LOWER()
konverterar en sträng till gemener.
Och ändra sedan kolumnens begränsning:
Nu fungerar den som förväntat.
C) Bredda eller förkorta kolumnexempelets storlek
Antag att vi vill lägga till internationell kod i telefonnummer. Innan vi gör det måste vi vidga storleken på telefonkolumnen med följande uttalande:
Nu kan vi uppdatera telefonnummer:
Följande uttalande verifierar uppdateringen:
För att förkorta storleken på en kolumn, se till att alla data i kolumnen passar den nya storleken.
Till exempel försöker vi förkorta kolumnen phone
till 12 tecken:
Oracle Database gav följande fel:
För att åtgärda detta bör vi först ta bort den internationella koden från telefonnumren:
Funktionen REPLACE()
ersätter en substring med en ny substring. I det här fallet ersätter den ’+ 1-’ med en tom sträng.
Och förkorta sedan kolumnen phone
:
D) Ändra virtuell kolumn
Antag att vi har hela namnet i följande format:
För att göra detta kan vi ändra uttrycket för virtuell kolumn full_name
enligt följande:
Följande uttalande verifierar modifieringen:
E) Ändra standardvärdet för en kolumn
Låt oss lägga till en ny kolumn med namnet status
till accounts
-tabellen med standardvärde 1.
När du har kört uttalandet sätts värdena i statuskolumnen till 1 för alla befintliga rader i accounts
-tabellen.
För att ändra standardvärdet o f statuskolumnen till 0 använder du följande påstående:
Vi kan lägga till en ny rad i accounts
tabell för att kontrollera om standardvärdet för kolumnen status
är 0 eller 1:
Frågedata från accounts
tabell:
Som du kan se är värdet i statuskolumnen för kontot med id 4 som förväntat.
I den här självstudien har du lärt dig hur du använder Oracle ALTER TABLE MODIFY
kolumnuttrycket för att ändra definitionen av befintliga kolumner i en tabell.
- Hjälpte den här guiden sig?
- JaNej