Kolumna Oracle ALTER TABLE MODIFY

Podsumowanie: w tym samouczku dowiesz się, jak używać Oracle ALTER TABLE MODIFY instrukcja kolumny, aby zmienić definicję istniejących kolumn.

Aby zmienić definicję kolumny w tabeli, użyj składni kolumny ALTER TABLE MODIFY w następujący sposób:

Instrukcja jest prosta. Aby zmodyfikować kolumnę tabeli, musisz określić nazwę kolumny, nazwę tabeli i akcję, którą chcesz wykonać.

Oracle umożliwia wykonanie wielu czynności, ale główne z nich są następujące:

  • Zmodyfikuj widoczność kolumny
  • Zezwalaj lub nie zezwalaj na wartości null
  • Skróć lub poszerz rozmiar kolumny
  • Zmień domyślna wartość kolumny
  • Modyfikuj wyrażenie wirtualnych kolumn

Aby zmodyfikować wiele kolumn, użyj następującej składni:

Przykłady kolumn Oracle ALTER TABLE MODIFY

Najpierw utwórz nową tabelę o nazwie accounts do demonstracji:

Po drugie, wstaw kilka wierszy do tabeli accounts:

Po trzecie, sprawdź operację wstawiania, używając następującego SELECT:

A) Zmodyfikuj widoczność kolumny ity

W Oracle Database 12c można zdefiniować kolumny tabeli jako niewidoczne lub widoczne. Niewidoczne kolumny nie są dostępne dla zapytania, takiego jak:

Lub stwierdzenie takie jak:

w SQL * Plus.

Możesz jednak zapytać o niewidoczne kolumny, określając je jawnie w zapytaniu:

Według Domyślnie kolumny tabeli są widoczne. Możesz zdefiniować niewidoczną kolumnę podczas tworzenia tabeli lub za pomocą instrukcji kolumnowej ALTER TABLE MODIFY.

Na przykład poniższa instrukcja tworzy full_name kolumna niewidoczna:

Poniższa instrukcja zwraca dane ze wszystkich kolumn tabeli accounts z wyjątkiem kolumny full_name :

Dzieje się tak, ponieważ kolumna full_name jest niewidoczna.

Aby zmienić kolumna z niewidocznego do widocznego, użyj poniższej instrukcji:

B) Zezwalaj lub nie zezwalaj na przykład o wartości null

Następująca instrukcja zmienia kolumna email, aby akceptować wartości inne niż null:

Jednak Oracle zgłosiło następujący błąd:

Ponieważ po zmianie kolumny z wartości null na n dopuszcza wartość null, musisz upewnić się, że istniejące dane spełniają nowe ograniczenie.

Aby to naprawić, najpierw aktualizujemy wartości w kolumnie email:

Zwróć uwagę, że funkcja LOWER() konwertuje ciąg na małe litery.

Następnie zmień ograniczenie kolumny:

Teraz działa zgodnie z oczekiwaniami.

C) Poszerz lub skróć rozmiar przykładowej kolumny

Załóżmy, że chcemy dodać międzynarodowy kod do numerów telefonów. Zanim to zrobimy, musimy poszerzyć rozmiar kolumny telefonu, używając następującej instrukcji:

Teraz możemy zaktualizować numery telefonów:

Następująca instrukcja weryfikuje aktualizację:

Aby skrócić rozmiar kolumny, upewnij się, że wszystkie dane w kolumnie pasują do nowego rozmiaru.

Na przykład próbujemy skrócić rozmiar kolumny phone do 12 znaków:

Oracle Database wydał następujący błąd:

Aby to naprawić, najpierw należy usunąć międzynarodowy kod z numerów telefonów:

Funkcja REPLACE() zastępuje podłańcuch nowym. W tym przypadku znak „+ 1-” zastępuje pusty ciąg.

A następnie skróć rozmiar kolumny phone:

D) Zmień wirtualna kolumna

Załóżmy, że mamy pełną nazwę w następującym formacie:

Aby to zrobić, możemy zmienić wyrażenie wirtualna kolumna full_name w następujący sposób:

Poniższa instrukcja weryfikuje modyfikację:

E) Zmień domyślną wartość kolumny

Dodajmy nową kolumnę o nazwie status do tabeli accounts z wartością domyślną 1.

Po wykonaniu instrukcji wartości w kolumnie stanu są ustawiane na 1 dla wszystkich istniejących wierszy w tabeli accounts.

Aby zmienić wartość domyślną o Jeśli kolumna stanu ma wartość 0, użyj następującej instrukcji:

Możemy dodać nowy wiersz do accounts table, aby sprawdzić, czy domyślna wartość kolumny status to 0 czy 1:

Zapytanie o dane z tabeli accounts:

Jak widać, wartość w kolumnie stanu konta o identyfikatorze 4 zgodnie z oczekiwaniami wynosi 0.

W tym samouczku nauczyłeś się, jak używać instrukcji kolumnowej Oracle ALTER TABLE MODIFY do zmiany definicji istniejących kolumn w tabeli.

  • Czy ten samouczek był pomocny?
  • Tak Nie

Write a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *