Shrnutí: v tomto výukovém programu se naučíte používat Oracle ALTER TABLE MODIFY
příkaz sloupce pro změnu definice existujících sloupců.
Chcete-li změnit definici sloupce v tabulce, použijte ALTER TABLE MODIFY
následující syntaxi sloupce:
Výrok je přímočarý. Chcete-li upravit sloupec tabulky, musíte zadat název sloupce, název tabulky a akci, kterou chcete provést.
Oracle vám umožňuje provádět mnoho akcí, ale hlavní jsou následující:
- Upravit viditelnost sloupce
- Povolit nebo nepovolit nulové hodnoty
- Zkrátit nebo rozšířit velikost sloupce
- Změnit výchozí hodnota sloupce
- Upravit výraz virtuálních sloupců
Chcete-li upravit více sloupců, použijte následující syntaxi:
Příklady změny sloupce Oracle ALTER TABLE
Nejprve vytvořte novou tabulku s názvem accounts
pro ukázku:
Zadruhé, vložte několik řádků do accounts
tabulky:
Zatřetí, ověřte operaci vložení pomocí následujícího SELECT
prohlášení:
A) Upravte viditelnost sloupce ity
V Oracle Database 12c můžete definovat sloupce tabulky jako neviditelné nebo viditelné. Pro dotaz nejsou k dispozici neviditelné sloupce:
Nebo příkaz jako:
v SQL * Plus.
Neviditelné sloupce však můžete dotazovat tak, že je v dotazu explicitně zadáte:
Autor ve výchozím nastavení jsou viditelné sloupce tabulky. Neviditelný sloupec můžete definovat při vytváření tabulky nebo pomocí příkazu ALTER TABLE MODIFY
sloupce.
Například následující příkaz vytvoří full_name
sloupec neviditelný:
Následující příkaz vrací data ze všech sloupců tabulky accounts
kromě sloupce full_name
:
Je to proto, že sloupec full_name
je neviditelný.
Změna sloupec z neviditelného do viditelného, použijete níže uvedený příkaz:
B) Povolit nebo nepovolit nulový příklad
Následující příkaz se změní sloupec email
pro přijímání nenulových hodnot:
Společnost Oracle však vydala následující chybu:
Protože při změně sloupce z hodnoty Null na n on-nullable, musíte zajistit, aby existující data splňovala nové omezení.
Abychom to napravili, nejprve aktualizujeme hodnoty ve sloupci email
:
Všimněte si, že funkce LOWER()
převede řetězec na malá písmena.
A poté změňte Omezení sloupce:
Nyní funguje podle očekávání.
C) Rozšířit nebo zkrátit velikost příkladu sloupce
Předpokládejme, že chceme k telefonním číslům přidat mezinárodní kód. Než to uděláme, musíme rozšířit velikost telefonního sloupce pomocí následujícího příkazu:
Nyní můžeme aktualizovat telefonní čísla:
Aktualizaci ověří následující prohlášení:
Chcete-li zkrátit velikost sloupce, ujistěte se, že všechna data ve sloupci odpovídají nové velikosti.
Například se pokusíme zkrátit velikost sloupce phone
na 12 znaků:
Oracle Database vydala následující chybu:
Abychom to napravili, měli bychom nejprve odstranit mezinárodní kód z telefonních čísel:
Funkce REPLACE()
nahradí podřetězec novým podřetězcem. V tomto případě nahradí znak „+ 1-“ prázdným řetězcem.
A pak zkrátit velikost sloupce phone
:
D) Upravit virtuální sloupec
Předpokládejme, že máme celé jméno v následujícím formátu:
Za tímto účelem můžeme změnit výraz virtuální sloupec full_name
takto:
Následující prohlášení ověří úpravu:
E) Upravit výchozí hodnotu sloupce
Přidejte do tabulky accounts
nový sloupec s názvem status
s výchozí hodnotou 1.
Po provedení příkazu jsou hodnoty ve sloupci stavu nastaveny na 1 pro všechny existující řádky v tabulce accounts
.
Chcete-li změnit výchozí hodnotu o Pokud je ve stavovém sloupci 0, použijete následující příkaz:
Do accounts
zkontrolujte, zda je výchozí hodnota sloupce status
0 nebo 1:
Data dotazu z accounts
tabulky:
Jak vidíte, hodnota ve sloupci stavu pro účet s ID 4 je 0 podle očekávání.
V tomto výukovém programu jste se naučili používat příkaz sloupce Oracle ALTER TABLE MODIFY
ke změně definice existujících sloupců v tabulce.
- Byl tento výukový program užitečný?
- Ano Ne