Heim >Datenbank >Oracle >Was ist die Verwendung von Update in Oracle?

Was ist die Verwendung von Update in Oracle?

WBOY
WBOYOriginal
2022-03-01 17:10:5330016Durchsuche

Verwendung von Update in Oracle: 1. Wird zum Ändern der Daten in der Tabelle verwendet. Die Syntax lautet „UPDATE-Tabellenname, SET-Spaltenname = neuer Wert, WHERE-Spaltenname = bestimmter Wert“; 2. Wird zum Erstellen einer Tabelle durch Verknüpfen von zwei verwendet Tabellen anzeigen und aktualisieren.

Was ist die Verwendung von Update in Oracle?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

Was ist die Verwendung von update in Oracle? Zusätzlich zur Standard-Update-Anweisung bietet Oracle auch einige andere Datenaktualisierungsmethoden für verschiedene Anwendungsszenarien:

update_statement ::=
UPDATE {table_reference | [THE] (subquery1)} [alias]
 SET {
        column_name = {sql_expression | (subquery2)}
      | (column_name [,column_name]...) = (subquery3)} 
        [,{column_name = {sql_expression | (subquery2)}
      | (column_name [,column_name]...) = (subquery3)
     }]...
 [WHERE {search_condition | CURRENT_OF cursor_name}] [returning_clause]

Standard-Update

Update-Anweisung wird zum Ändern der Tabellendaten verwendet . Die Syntax in W3school:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值。

Join-Ansicht aktualisieren

Join-Ansicht aktualisieren besteht darin, zunächst eine Ansicht zu erstellen, indem zwei Tabellen verknüpft werden, und dann die Ansicht zu aktualisieren, um den Zweck der Aktualisierung der Quelltabelle zu erreichen:

update (select bonus
          from employee_bonus b
         inner join employees e on b.employee_id = e.employee_id
         where e.bonus_eligible = 'N') t
   set t.bonus = 0

Genau wie das obige Prinzip Das Gleiche gilt: Was in den Klammern steht, ist eine Ansicht, und was in der Menge ist, ist das Feld, das aktualisiert werden muss. Diese Methode ist direkt und effizient, aber sie ist ziemlich restriktiv. Der Primärschlüssel der Mitarbeitertabelle muss angezeigt werden die Where-Bedingung, andernfalls wird ein Fehler gemeldet, ORA-01779: Spalten, die nicht durch Schlüsselwerte gespeicherten Tabellen entsprechen, können nicht geändert werden.

merge into

merge into ist eine einzigartige Anweisung von Oracle:

MERGE INTO table_name alias1
USING (table | view | sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
  UPDATE table_name SET col1 = col_val1,col2 = col2_val
WHEN NOT MATCHED THEN
  INSERT (column_list) VALUES (column_values);

Das Prinzip besteht darin, dass die in Alias2 ausgewählten Daten mit ON (Join-Bedingung) von Alias1 verglichen werden. Wenn sie übereinstimmen, werden sie aktualisiert. Wenn keine Übereinstimmung vorliegt, führen Sie den Einfügevorgang aus (Einfügen).

@H_301_73@Cursor-Methode

Zu den Cursorn gehören Anzeigecursor und schnelle Cursor.

Schneller Cursor

begin
for cur in (table|subquery) loop
    update_statement
end loop; 
end;

Anzeigecursor

SET SERVEROUTPUT ON  
DECLARE  
  CURSOR emp_cursor IS   
  SELECT empno,ename FROM emp;  
BEGIN  
FOR Emp_record IN emp_cursor LOOP     
     update_statement;  
END LOOP;  
END;

Die Verwendung von Cursorn bietet viele Vorteile. Die for-Schleife bietet uns eine Methode zum Aktualisieren von Stapeldaten sowie das physische Rowid-Feld von Oracle (Oracle verfügt standardmäßig über das Rowid-Feld für jede Tabelle). und ist ein eindeutiger Index), der den zu aktualisierenden Datensatz schnell finden und auch komplexe Abfrageanweisungen unterstützen kann.

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von Update in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn