In Oracle k?nnen Sie die Anweisung ?ALTER TABLE MODIFY“ verwenden, um Felder zu ?ndern. Die Syntax lautet ?Auszuführende Operationen ALTER TABLE MODIFY“; Standardwert einer Spalte ?ndern, den Ausdruck virtueller Spalten ?ndern usw.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.
So ?ndern Sie Felder in der Oracle-Datenbank
In Oracle k?nnen Sie die Anweisung ?ALTER TABLE MODIFY
“ verwenden, um Felder zu ?ndern und die Definition vorhandener Felder zu ?ndern. ALTER TABLE MODIFY
”語句來修改字段,更改現(xiàn)有字段的定義。
要更改表中列的定義,請按如下所示使用ALTER TABLE MODIFY
列語法:
ALTER TABLE 表名 MODIFY 字段名 需要執(zhí)行的操作;
語句很直接。要修改表的列,需要指定要執(zhí)行的列名,表名和操作。
Oracle允許執(zhí)行多種操作,但以下是主要常用的操作:
修改列的可見性
允許或不允許NULL值
縮短或擴大列的大小
更改列的默認值
修改虛擬列的表達式
要修改多個列,請使用以下語法:
ALTER TABLE 表名 MODIFY ( 字段名1 action, 字段名2 action, ... );
Oracle ALTER TABLE MODIFY列示例
首先,為演示創(chuàng)建一個名為accounts
的新表:
-- 12c語法 CREATE TABLE accounts ( account_id NUMBER GENERATED BY DEFAULT AS IDENTITY, first_name VARCHAR2(25) NOT NULL, last_name VARCHAR2(25) NOT NULL, email VARCHAR2(100), phone VARCHAR2(12) , full_name VARCHAR2(51) GENERATED ALWAYS AS( first_name || ' ' || last_name ), PRIMARY KEY(account_id) );
其次,向accounts
表中插入一些行:
INSERT INTO accounts(first_name,last_name,phone) VALUES('Trinity', 'Knox', '410-555-0197'); INSERT INTO accounts(first_name,last_name,phone) VALUES('Mellissa', 'Porter', '410-555-0198'); INSERT INTO accounts(first_name,last_name,phone) VALUES('Leeanna', 'Bowman', '410-555-0199');
第三,通過使用下面的SELECT
語句驗證插入操作:
SELECT * FROM accounts;
執(zhí)行上面查詢語句,得到以下結果 -
1. 修改列的可見性
在Oracle 12c中,可以將表列定義為不可見或可見。不可見列不可用于查詢,如:
SELECT * FROM table_name;
或者,
DESCRIBE table_name;
都是查到不到不可見列的。
但是,可以通過在查詢中顯式指定不可見列來查詢:
SELECT invisible_column_1, invisible_column_2 FROM table_name;
默認情況下,表列是可見的。可以在創(chuàng)建表或使用ALTER TABLE MODIFY
列語句時定義不可見列。
例如,以下語句使full_name
列不可見:
ALTER TABLE accounts MODIFY full_name INVISIBLE;
執(zhí)行再次查詢表中數(shù)據(jù),得到以下結果 -
以下語句返回accounts
表除了full_name
列以外的所有列中返回數(shù)據(jù):
SELECT * FROM accounts;
這是因為full_name
列是不可見的。要將列從不可見變?yōu)榭梢姡埵褂靡韵抡Z句:
ALTER TABLE accounts MODIFY full_name VISIBLE;
2. 允許或不允許null示例
以下語句將email
列更改為接受非空(not null
)值:
ALTER TABLE accounts MODIFY email VARCHAR2( 100 ) NOT NULL;
但是,Oracle發(fā)出以下錯誤:
SQL Error: ORA-02296: cannot enable (OT.) - null values found
因為當將列從可為null
改為not null
時,必須確?,F(xiàn)有數(shù)據(jù)符合新約束(也就是說,如果原來數(shù)據(jù)中NULL
是不行的)。
為了解決這個問題,首先更新email
列的值:
UPDATE accounts SET email = LOWER(first_name || '.' || last_name || '@oraok.com') ;
請注意,LOWER()函數(shù)將字符串轉換為小寫字母。
然后改變email
列的約束:
ALTER TABLE accounts MODIFY email VARCHAR2( 100 ) NOT NULL;
現(xiàn)在,它應該就會按預期那樣工作了。
3. 擴大或縮短列示例的大小
假設要添加國際代碼到phone
列上,比如:前綴加上+86
。 在修改列的值之前,必須使用以下語句擴大phone
列的大小:
ALTER TABLE accounts MODIFY phone VARCHAR2( 24 );
現(xiàn)在,我們可以更新電話號碼的數(shù)據(jù)了:
UPDATE accounts SET phone = '+86 ' || phone;
以下語句驗證更新:
SELECT * FROM accounts;
執(zhí)行上面查詢語句結果中,應該可以看到原電話號碼前綴有加上+86
的國際區(qū)號了。
要縮短列的大小,請確保列中的所有數(shù)據(jù)都符合新的大小。
例如,嘗試將phone
列的大小縮減到12
個字符:
ALTER TABLE accounts MODIFY phone VARCHAR2( 12 );
Oracle數(shù)據(jù)庫發(fā)出以下錯誤:
SQL Error: ORA-01441: cannot decrease column length because some value is too big
要解決這個問題,首先,應該從電話號碼中刪除國際代碼(即:+86
):
UPDATE accounts SET phone = REPLACE( phone, '+86 ', '' );
REPLACE()函數(shù)用一個新的子字符串替換一個子字符串。在這種情況下,它將用空字符串替換+86
。
然后縮短phone
列的大?。?/p>
ALTER TABLE accounts MODIFY phone VARCHAR2( 12 );
4. 修改虛擬列
假設按以下兩列的格式填寫全名:
last_name, first_name
為此,可以更改虛擬列full_name
ALTER TABLE MODIFY
wie folgt: ??ALTER TABLE accounts MODIFY full_name VARCHAR2(52) GENERATED ALWAYS AS (last_name || ', ' || first_name);??Die Anweisung ist unkompliziert. Um die Spalten einer Tabelle zu ?ndern, müssen Sie den Spaltennamen, den Tabellennamen und den auszuführenden Vorgang angeben. ????Oracle erm?glicht Ihnen die Ausführung einer Vielzahl von Vorg?ngen, die folgenden sind jedoch die am h?ufigsten verwendeten Vorg?nge: ??
- ???ndern der Sichtbarkeit einer Spalte??< /li>
- ??NULL-Werte zulassen oder nicht zulassen??
- ??Verkürzen oder erweitern Sie die Gr??e einer Spalte??
- ???ndern Sie den Standardwert einer Spalte??
- ???ndern Sie den Ausdruck einer virtuellen Spaltenformel ??
SELECT * FROM accounts;
Oracle ALTER TABLE MODIFY-Spaltenbeispiel ?????? Zuerst ?? erstellen Sie eine neue Tabelle mit dem Namen accounts
für die Demo: ??ALTER TABLE accounts
ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;
????Zweitens ?? fügen Sie einige Zeilen in die accounts
ein Tabelle: ??ALTER TABLE accounts
MODIFY status DEFAULT 0;
????Drittens ??, überprüfen Sie den Einfügevorgang mit der folgenden SELECT
-Anweisung: ??INSERT INTO accounts ( first_name, last_name, email, phone )
VALUES ( 'Julia',
'Madden',
'julia.madden@oraok.com',
'410-555-0200' );
??Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse -????
??????1. ?ndern Sie die Sichtbarkeit von Spalten ??????In Oracle 12c k?nnen Tabellenspalten als unsichtbar oder sichtbar definiert werden. Unsichtbare Spalten k?nnen nicht für Abfragen verwendet werden, z.?B.: ??SELECT
*
FROM
accounts;
?? oder ??rrreee??. Unsichtbare Spalten k?nnen nicht gefunden werden. ????Es ist jedoch m?glich, unsichtbare Spalten abzufragen, indem man sie explizit in der Abfrage angibt: ??rrreee??Tabellenspalten sind standardm??ig sichtbar. Unsichtbare Spalten k?nnen beim Erstellen der Tabelle oder mithilfe der Spaltenanweisung ALTER TABLE MODIFY
definiert werden. ????Zum Beispiel macht die folgende Anweisung die Spalte vollst?ndiger_Name
unsichtbar: ??rrreee??Führen Sie die Abfrage der Daten in der Tabelle erneut aus und erhalten Sie die folgenden Ergebnisse: ????
????Die folgende Anweisung gibt die accounts
zurück Tabelle au?er full_name< Gibt Daten in allen Spalten au?er der Spalte /code> zurück: ??rrreee?? Dies liegt daran, dass die Spalte <code>full_name
nicht sichtbar ist. Um eine Spalte von unsichtbar in sichtbar zu ?ndern, verwenden Sie die folgende Anweisung: ??rrreee????2. Nullbeispiel zulassen oder nicht zulassen??????Die folgende Anweisung wird Die Spalte email
wurde so ge?ndert, dass sie Nicht-Null-Werte (nicht null
) akzeptiert: ??rrreee?? Oracle gibt jedoch den folgenden Fehler aus: ??rrreee??, weil beim ?ndern der Spalte ?Verfügbar“ die Spalte ?E-Mail“ ge?ndert wird zu Wenn null
in nicht null
ge?ndert wird, müssen Sie sicherstellen, dass die vorhandenen Daten den neuen Einschr?nkungen entsprechen (d. h., wenn NULL
nicht ist). in den Originaldaten erlaubt). ????Um dieses Problem zu l?sen, aktualisieren Sie zun?chst den Wert der Spalte email
: ??rrreee??Bitte beachten Sie, dass LOWER() wandelt einen String in Kleinbuchstaben um. ?????ndern Sie dann die Einschr?nkung für die Spalte email
: ??rrreee??Jetzt sollte es wie erwartet funktionieren. ??????3. Erweitern oder verkürzen Sie die Gr??e des Spaltenbeispiels??????Angenommen, Sie m?chten internationale Vorwahlen zum Telefon</code hinzufügen > Spalte, wie zum Beispiel: Pr?fix mit <code>+86
. Bevor Sie den Wert der Spalte ?ndern, müssen Sie die Gr??e der Spalte phone
mit der folgenden Anweisung erweitern: ??rrreee??Jetzt k?nnen wir die Telefonnummerndaten aktualisieren: ??rrreee??Die folgende Anweisung überprüft die Update: ??rrreee??Execute In den Ergebnissen der obigen Abfrageanweisung sollten Sie sehen k?nnen, dass die ursprüngliche Telefonnummer die internationale Vorwahl mit dem Pr?fix +86
hat. ????
????An Verkürzen Sie die Gr??e einer Spalte und stellen Sie sicher, dass alle Daten in der Spalte der neuen Gr??e entsprechen. ????Versuchen Sie beispielsweise, die Gr??e der Spalte phone
auf 12
Zeichen zu reduzieren: ??rrreee??Oracle Database gibt den folgenden Fehler aus: ??rrreee??Um dieses Problem zun?chst zu beheben , sollten Sie internationale Vorwahlen von Telefonnummern entfernen (z. B.: +86
): ??rrreee??REPLACE()-Funktion ersetzt einen Teilstring durch einen neuen Teilstring. In diesem Fall wird +86
durch die leere Zeichenfolge ersetzt. ????Dann verkürzen Sie die Gr??e der Spalte phone
: ??rrreee????4. ?ndern Sie die virtuelle Spalte??????Angenommen, Sie Drücken Sie die folgenden zwei Spalten. Geben Sie den vollst?ndigen Namen im Format ein: ??rrreee?? Dazu k?nnen Sie den Ausdruck der virtuellen Spalte vollst?ndiger_Name
wie folgt ?ndern: ??ALTER TABLE accounts
MODIFY full_name VARCHAR2(52)
GENERATED ALWAYS AS (last_name || ', ' || first_name);
以下語句驗證修改:
SELECT * FROM accounts;
執(zhí)行上面查詢語句,可以看到以下結果
5. 修改列的默認值
添加一個名為status
的新列,默認值為1
到accounts
表中。參考以下語句 -
ALTER TABLE accounts ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;
當執(zhí)行了該語句,就會將accounts
表中的所有現(xiàn)有行的status
列中的值設置為1
。
要將status
列的默認值更改為0
,請使用以下語句:
ALTER TABLE accounts MODIFY status DEFAULT 0;
可以在accounts
表中添加一個新行來檢查status
列的默認值是0
還是1
:
INSERT INTO accounts ( first_name, last_name, email, phone ) VALUES ( 'Julia', 'Madden', 'julia.madden@oraok.com', '410-555-0200' );
現(xiàn)在,查詢accounts
表中的數(shù)據(jù):
SELECT * FROM accounts;
執(zhí)行上面查詢語句,應該看類似下面的結果?
正如所看到的那樣,ID
為4
的賬戶的status
列的值是0
。
推薦教程:《Oracle教程》
Das obige ist der detaillierte Inhalt vonSo ?ndern Sie Felder in der Oracle-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Schlüssel zur Installation von MySQL 8.0 liegt darin, die Schritte zu befolgen und auf h?ufige Probleme zu achten. Es wird empfohlen, das MSI -Installationspaket unter Windows zu verwenden. Die Schritte beinhalten das Herunterladen des Installationspakets, das Ausführen des Installationsprogramms, die Auswahl des Installationstyps, das Festlegen des Stammkennworts, das Aktivieren des Dienstes für das Dienst und die Beachtung von Portkonflikten oder die manuelle Konfiguration der ZIP -Version. Linux (wie Ubuntu) wird über APT installiert. In den Schritten wird die Quelle aktualisiert, den Server installiert, Sicherheitsskripte ausgeführt, den Dienststatus geprüft und die Stammauthentifizierungsmethode ge?ndert. Unabh?ngig von der Plattform sollten Sie das Standardkennwort ?ndern, gew?hnliche Benutzer erstellen, Firewalls einrichten, Konfigurationsdateien anpassen, um Zeichens?tze und andere Parameter zu optimieren, um die Sicherheit und den normalen Gebrauch zu gew?hrleisten.

Die Schritte zur Verbindung zu einem Oracle -Datenbankverbindungspool mit JDBC umfassen: 1) Konfigurieren Sie den Verbindungspool, 2) die Verbindung aus dem Verbindungspool abrufen, 3) SQL -Vorg?nge ausführen und 4) die Ressourcen schlie?en. Verwenden Sie OracleUCP, um Verbindungen effektiv zu verwalten und die Leistung zu verbessern.

Die M?glichkeit, alle Datenbanken in MongoDB anzuzeigen, besteht darin, den Befehl "showdbs" einzugeben. 1. Dieser Befehl zeigt nur nicht leere Datenbanken an. 2. Sie k?nnen die Datenbank über den Befehl "Verwendung" wechseln und Daten einfügen, damit sie angezeigt werden. 3. Achten Sie auf interne Datenbanken wie "Lokal" und "Konfiguration". 4. Bei Verwendung des Treibers müssen Sie die Methode "ListDatabases ()" verwenden, um detaillierte Informationen zu erhalten. 5. Der Befehl "db.stats ()" kann detaillierte Datenbankstatistiken anzeigen.

Der Hauptgrund für die Integration von Oracle-Datenbanken in Hadoop besteht darin, die leistungsstarken Datenverwaltungs- und Transaktionsverarbeitungsfunktionen von Oracle sowie die gro? angelegten Datenspeicher- und Analysefunktionen von Hadoop zu nutzen. Zu den Integrationsmethoden geh?ren: 1. Exportdaten von OracleBigDataconnector nach Hadoop; 2. Verwenden Sie Apachesqoop für die Datenübertragung; 3.. Lesen Sie Hadoop -Daten direkt durch die externe Tabellenfunktion von Oracle. 4. Verwenden Sie OracleGoldeGate, um die Datensynchronisation zu erreichen.

Zu den allgemeinen SQL -Aussagen geh?ren: 1. CreateTable erstellt Tabellen wie CreatTable -Mitarbeiter (IDINTPRIMARYKEY, NAMEVARCHAR (100), Gehaltsezimal (10,2)); 2. createIndex erstellt Indexe, z. 3.. InsertInto fügt Daten ein, z. B. InsertInto -Mitarbeiter (ID, Name, Gehalt) Werte (1, 'Johndoe', 75000,00); 4. W?hlen Sie überprüfen

Das direkte Abfragebusst von Administratorkennw?rtern wird in Bezug auf die Sicherheit nicht empfohlen. Das Sicherheitsdesign -Prinzip der Oracle -Datenbank besteht darin, das Speichern von Kennw?rtern im Klartext zu vermeiden. Zu den alternativen Methoden geh?ren: 1. Setzen Sie das System oder das Systembenutzerkennwort mit SQL*Plus zurück; 2. überprüfen Sie das verschlüsselte Passwort über das Paket dbms_crypto.

Wenn Sie in der Oracle -Datenbank bei der Abfrage nicht den Wert eines bestimmten Feldes zurückgeben m?chten, k?nnen Sie die folgenden drei Methoden verwenden: Listen Sie nur die erforderlichen Felder in der Auswahlanweisung auf und w?hlen Sie nicht die unerwünschten Felder aus. Erstellen Sie Ansichten, um Abfragen zu vereinfachen, achten Sie jedoch auf die Komplexit?t und Wartungskosten der Ansichten. Die Ausnahme unerwünschter S?ulen mit Unterangaben oder Verbindungen eignet sich zum dynamischen Ausschluss von Spalten, kann jedoch die Abfrageleistung beeinflussen. Jede Methode hat ihre anwendbaren Szenarien und potenziellen Nachteile, und die am besten geeignete Methode muss basierend auf spezifischen Anforderungen und Leistungsüberlegungen ausgew?hlt werden.

Die logische Struktur der Oracle -Datenbank konzentriert sich darauf, wie Daten von Benutzern und Entwicklern organisiert werden, einschlie?lich Tabellen, Ansichten, Mustern und Tabellenr?umen. Die physikalische Struktur umfasst die tats?chliche Speicherung von Daten auf der Festplatte, einschlie?lich Datendateien, Wiederholung von Protokollen, Steuerdateien usw. 1. Die logische Struktur enth?lt Tabellen, Ansichten, Indizes, Muster und Tabellenr?ume, in denen bestimmen, wie Benutzer auf Daten zugreifen. 2. Die physische Struktur besteht aus Datendateien, Wiederholungsprotokollen, Steuerdateien und Archivprotokollen, die für die Persistenz und Wiederherstellung von Daten verantwortlich sind. 3. Der Tabellenraum ist eine wichtige Brücke, die Logik und Physik verbindet, und seine Kapazit?t wird durch die zugrunde liegenden Datendateien begrenzt. 4. Unterschiedliche Rollen haben unterschiedliche Aufmerksamkeit, Entwickler konzentrieren sich auf die Logikoptimierung, und DBA schenkt dem physischen Management mehr Aufmerksamkeit. 5. Das Verst?ndnis der Unterschiede zwischen den beiden kann dazu beitragen, Probleme effizient zu beheben, die Leistung zu optimieren und angemessenes Management
