Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie Oracle ALTER TABLE MODIFY
verwenden Spaltenanweisung zum Ändern der Definition vorhandener Spalten.
Um die Definition einer Spalte in einer Tabelle zu ändern, verwenden Sie die ALTER TABLE MODIFY
-Spaltensyntax wie folgt:
Die Anweisung ist unkompliziert. Um eine Spalte einer Tabelle zu ändern, müssen Sie den Spaltennamen, den Tabellennamen und die Aktion angeben, die Sie ausführen möchten.
Mit Oracle können Sie viele Aktionen ausführen, die folgenden sind jedoch die wichtigsten:
- Ändern der Sichtbarkeit der Spalte
- Zulassen oder Nichtzulassen von Nullwerten
- Verkürzen oder Erweitern der Größe der Spalte
- Ändern Sie die Standardwert einer Spalte
- Ausdruck der virtuellen Spalten ändern
Um mehrere Spalten zu ändern, verwenden Sie die folgende Syntax:
Oracle ALTER TABLE MODIFY-Spaltenbeispiele
Erstellen Sie zunächst eine neue Tabelle mit dem Namen accounts
für die Demonstration:
Fügen Sie zweitens einige Zeilen in die Tabelle accounts
ein:
Drittens überprüfen Sie den Einfügevorgang mithilfe der folgenden SELECT
-Anweisung:
A) Ändern Sie die Sichtbarkeit der Spalte
In Oracle Database 12c können Sie Tabellenspalten als unsichtbar oder sichtbar definieren. Unsichtbare Spalten sind für die Abfrage nicht verfügbar wie:
Oder Anweisung wie:
in SQL * Plus.
Sie können die unsichtbaren Spalten jedoch abfragen, indem Sie sie explizit in der Abfrage angeben:
By Standardmäßig sind Tabellenspalten sichtbar. Sie können eine unsichtbare Spalte definieren, wenn Sie die Tabelle erstellen oder die Spaltenanweisung ALTER TABLE MODIFY
verwenden.
Mit der folgenden Anweisung wird beispielsweise die full_name
Spalte unsichtbar:
Die folgende Anweisung gibt Daten aus allen Spalten der Tabelle accounts
mit Ausnahme der Spalte full_name
zurück :
Dies liegt daran, dass die Spalte full_name
unsichtbar ist.
So ändern Sie a In der Spalte von unsichtbar bis sichtbar verwenden Sie die folgende Anweisung:
B) Null-Beispiel zulassen oder nicht zulassen
Die folgende Anweisung ändert sich Die Spalte email
akzeptiert Werte ungleich Null:
Oracle hat jedoch den folgenden Fehler ausgegeben:
Denn wenn Sie eine Spalte von nullable in n geändert haben Bei nullbar müssen Sie sicherstellen, dass die vorhandenen Daten die neue Einschränkung erfüllen.
Um dies zu beheben, aktualisieren wir zuerst die Werte für die Spalte email
:
Beachten Sie, dass die Funktion LOWER()
eine Zeichenfolge in Kleinbuchstaben konvertiert.
Ändern Sie dann die Spalteneinschränkung:
Jetzt funktioniert es wie erwartet.
C) Erweitern oder verkürzen Sie die Größe eines Spaltenbeispiels
Angenommen, wir möchten den Telefonnummern internationalen Code hinzufügen. Bevor wir dies tun, müssen wir die Größe der Telefonspalte mithilfe der folgenden Anweisung erweitern:
Jetzt können wir die Telefonnummern aktualisieren:
Die folgende Anweisung überprüft das Update:
Um die Größe einer Spalte zu verkürzen, stellen Sie sicher, dass alle Daten in der Spalte der neuen Größe entsprechen.
Wir versuchen beispielsweise, die Größe der Spalte phone
auf 12 Zeichen zu reduzieren:
Oracle Database hat den folgenden Fehler ausgegeben:
Um dies zu beheben, sollten wir zuerst den internationalen Code aus den Telefonnummern entfernen:
Die Funktion REPLACE()
ersetzt einen Teilstring durch einen neuen Teilstring. In diesem Fall wird das „+ 1-“ durch eine leere Zeichenfolge ersetzt.
Und kürzen Sie dann die Größe der Spalte phone
:
D) Ändern Virtuelle Spalte
Angenommen, wir haben den vollständigen Namen im folgenden Format:
Dazu können wir den Ausdruck von ändern Virtuelle Spalte full_name
wie folgt:
Die folgende Anweisung überprüft die Änderung:
E) Ändern des Standardwerts einer Spalte
Fügen Sie der Tabelle accounts
mit dem Standardwert eine neue Spalte mit dem Namen status
hinzu 1.
Sobald Sie die Anweisung ausgeführt haben, werden die Werte in der Statusspalte für alle vorhandenen Zeilen in der Tabelle accounts
auf 1 gesetzt.
So ändern Sie den Standardwert o Wenn die Statusspalte auf 0 gesetzt ist, verwenden Sie die folgende Anweisung:
Wir können der accounts
-Tabelle, um zu überprüfen, ob der Standardwert der Spalte status
0 oder 1 ist:
Daten abfragen aus der Tabelle accounts
:
Wie Sie sehen, ist der Wert in der Statusspalte für das Konto mit der ID 4 erwartungsgemäß 0.
In diesem Lernprogramm haben Sie gelernt, wie Sie die Spaltenanweisung Oracle ALTER TABLE MODIFY
verwenden, um die Definition vorhandener Spalten in einer Tabelle zu ändern.
- War dieses Tutorial hilfreich?
- JaNein