7 Verändern von Daten. 9-2 Ziele Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
SQL als Abfragesprache
MySQL Der Einstieg.
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 Übungen SQL.
IS: Datenbanken, © Till Hänisch 2000 Tabellen In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information,
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz.
Datenintegrität Referentielle Integrität create table
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Datenbanken 10: Einfügen, Ändern, Löschen
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Relationale Datenbanken III
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Datenbanksysteme für hörer anderer Fachrichtungen
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
Transaktion Huang Zhenhao FU Shuai.
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 28 Version 1.0a Elementare Datenstrukturen –Tables Ansammlung von rows Jede row enthält eine oder mehrere column(s)
Verdichten von Daten mit Gruppenfunktionen
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Transaktionsverwaltung
3 Einzelzeilen-Funktionen. 3-2 Ziele Verschiedene Typen von Funktionen, die in SQL verfügbar sind Verwendung von numerischen, Zeichen- und Datumsfunktionen.
2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT.
Einführung Schedule: Timing Topic 60 minutes Lecture 60 minutes Total.
Integritätsbedingungen (Constraints)
10 Sichten (Views) Ziele Verständnis einer View Erzeugen einer View Lesen von Daten durch eine Sicht Ändern der Definition von Views Einfügen, Ändern.
11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Einfache SQL-Befehle Schedule: Timing Topic 40 minutes Lecture
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
IS: Datenbanken, © Till Hänisch 2000 SQL Structured Query Language.
Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
SQL Basics Schulung –
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Create Table, Rechte und Rollen
Left Join, Right Join, Outer Join
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Die erste Form der INSERT-Anweisung dient der Neueingabe von Daten:
 Präsentation transkript:

7 Verändern von Daten

9-2 Ziele Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen aus einer Tabelle Transaktionskontrolle Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen aus einer Tabelle Transaktionskontrolle

9-3 Data Manipulation Language Ein DML Statement wird ausgeführt bei: – Hinzufügen neuer Zeilen zu einer Tabelle – Modifikation von existierenden Zeilen in einer Tabelle – Löschen von Zeilen aus einer Tabelle Eine Transaktion besteht aus einer Folge von DML-Statements, die eine logische Einheit (Unit of Work) bilden. Ein DML Statement wird ausgeführt bei: – Hinzufügen neuer Zeilen zu einer Tabelle – Modifikation von existierenden Zeilen in einer Tabelle – Löschen von Zeilen aus einer Tabelle Eine Transaktion besteht aus einer Folge von DML-Statements, die eine logische Einheit (Unit of Work) bilden.

9-4 Hinzufügen einer neuen Zeile zu einer Tabelle (Insert) DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON Neue Zeile 50 DEVELOPMENT DETROIT DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON “…Einfügen neue Zeile in die DEPT Tabelle…” 50 DEVELOPMENT DETROIT

9-5 Der INSERT Befehl Hinzufügen neuer Zeilen zu einer Tabelle mit Hilfe des INSERT Statement. Nur eine Zeile wird gleichzeitig eingefügt bei dieser Syntax. Hinzufügen neuer Zeilen zu einer Tabelle mit Hilfe des INSERT Statement. Nur eine Zeile wird gleichzeitig eingefügt bei dieser Syntax. INSERT INTOtable [(column [, column...])] VALUES(value [, value...]); INSERT INTOtable [(column [, column...])] VALUES(value [, value...]);

9-6 Einfügen neuer Zeilen Einfügen einer neuen Zeile, die für jede Spalte Werte enthält. Gebe die Werte standardmäßig in der Reihenfolge der Spalten der Tabelle an. Optional: Angabe der Spalten in der INSERT-Klausel. Zeichen- und Datumsfelder in einfache Hochkommas einschließen. Einfügen einer neuen Zeile, die für jede Spalte Werte enthält. Gebe die Werte standardmäßig in der Reihenfolge der Spalten der Tabelle an. Optional: Angabe der Spalten in der INSERT-Klausel. Zeichen- und Datumsfelder in einfache Hochkommas einschließen. SQL> INSERT INTOdept (deptno, dname, loc) 2 VALUES(50, 'DEVELOPMENT', 'DETROIT'); 1 row created.

9-7 Einfügen von Zeilen mit Nullwerten Implizite Methode: Spalte aus der Spaltenliste weglassen. SQL> INSERT INTOdept (deptno, dname ) 2 VALUES(60, 'MIS'); 1 row created. Explizite Methode: Schlüsselwort NULL angeben. SQL> INSERT INTOdept 2 VALUES(70, 'FINANCE', NULL); 1 row created.

9-8 Einfügen spezieller Werte SYSDATE Funktion ermittelt aktuelles Datum und Uhrzeit. SQL> INSERT INTOemp (empno, ename, job, 2mgr, hiredate, sal, comm, 3deptno) 4 VALUES(7196, 'GREEN', 'SALESMAN', 57782, SYSDATE, 2000, NULL, 610); 1 row created.

9-9 Kopieren von Datensätzen aus einer anderen Tabelle INSERT Statement mit Subquery verbinden. VALUES-Klausel nicht verwenden. Anzahl der Spalten in der INSERT Klausel muß mit der in der Subquery übereinstimmen. INSERT Statement mit Subquery verbinden. VALUES-Klausel nicht verwenden. Anzahl der Spalten in der INSERT Klausel muß mit der in der Subquery übereinstimmen. SQL> INSERT INTO managers(id, name, salary, hiredate) 2 SELECTempno, ename, sal, hiredate 3 FROM emp 4 WHEREjob = 'MANAGER'; 3 rows created.

9-10 Ändern von Daten in einer Tabelle EMP “…ändere eine Zeile in EMP Tabelle…” EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER 20...

9-11 Der UPDATE Befehl Modifiziere existierende Zeilen mit dem UPDATE Statement. Ändere mehr als eine Zeile wenn erforderlich. Modifiziere existierende Zeilen mit dem UPDATE Statement. Ändere mehr als eine Zeile wenn erforderlich. UPDATEtable SETcolumn = value [, column = value,...] [WHERE condition]; UPDATEtable SETcolumn = value [, column = value,...] [WHERE condition];

9-12 Ändern von Zeilen in einer Tabelle Eine oder mehrere Zeilen werden modi- fiziert, wenn eine WHERE Klausel besteht. Alle Zeilen der Tabelle werden modifiziert wenn WHERE Klausel weggelassen wird. Eine oder mehrere Zeilen werden modi- fiziert, wenn eine WHERE Klausel besteht. Alle Zeilen der Tabelle werden modifiziert wenn WHERE Klausel weggelassen wird. SQL> UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782; 1 row updated. SQL> UPDATE employee 2 SET deptno = 20; 14 rows updated. SQL> UPDATE employee 2 SET deptno = 20; 14 rows updated.

9-13 Ändern mit Hilfe einer Multiple-Column Subquery SQL> UPDATE emp 2 SET (job, deptno) = 3 (SELECT job, deptno 4 FROM emp 5 WHERE empno = 7499) 6 WHERE empno = 7698; 1 row updated. Ändere Job und Abteilung (Deptno) des Angestellten 7698, so daß diese mit dem Angestellten 7499 übereinstimmen.

9-14 Ändern von Zeilen basierend auf einer anderen Tabelle Verwende Subqueries in UPDATE Befehlen, um Zeilen in einer Tabelle zu ändern, basierend auf Werten einer anderen Tabelle. SQL>UPDATEemployee 2SETdeptno = (SELECTdeptno 3FROMemp 4WHEREempno = 7788) 5WHEREjob = (SELECTjob 6FROMemp 7WHEREempno = 7788); 2 rows updated. SQL>UPDATEemployee 2SETdeptno = (SELECTdeptno 3FROMemp 4WHEREempno = 7788) 5WHEREjob = (SELECTjob 6FROMemp 7WHEREempno = 7788); 2 rows updated.

9-15 UPDATE emp * ERROR at line 1: ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) violated - parent key not found UPDATE emp * ERROR at line 1: ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) violated - parent key not found SQL> UPDATEemp 2 SETdeptno = 55 3 WHEREdeptno = 10; SQL> UPDATEemp 2 SETdeptno = 55 3 WHEREdeptno = 10; Ändern von Zeilen: Integrity Constraint Error Department number 55 does not exist

9-16 “…lösche einer Zeile aus der DEPT Tabelle …” Löschen einer Zeile aus einer Tabelle DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON 50 DEVELOPMENT DETROIT 60MIS... DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON 60MIS...

9-17 Der DELETE Befehl Existierende Zeilen können mit Hilfe des DELETE Befehls gelöscht werden. DELETE [FROM] table [WHERE condition]; DELETE [FROM] table [WHERE condition];

9-18 Einzelne Zeilen werden gelöscht, wenn WHERE Klausel angegeben wird. Alle Zeilen einer Tabelle werden gelöscht, wenn WHERE Klausel weggelassen wird. Einzelne Zeilen werden gelöscht, wenn WHERE Klausel angegeben wird. Alle Zeilen einer Tabelle werden gelöscht, wenn WHERE Klausel weggelassen wird. Löschen von Zeilen aus einer Tabelle SQL> DELETE FROMdepartment 2 WHERE dname = 'DEVELOPMENT'; 1 row deleted. SQL> DELETE FROMdepartment 2 WHERE dname = 'DEVELOPMENT'; 1 row deleted. SQL> DELETE FROMdepartment; 4 rows deleted. SQL> DELETE FROMdepartment; 4 rows deleted.

9-19 Löschen von Zeilen basierend auf einer anderen Tabelle Nutze Subqueries in DELETE Befehlen, um Zeilen aus einer Tabelle zu löschen, basierend auf Werten aus einer anderen Tabelle. SQL> DELETE FROMemployee 2 WHEREdeptno = 3 (SELECT deptno 4 FROM dept 5 WHERE dname ='SALES'); 6 rows deleted.

9-20 Löschen von Zeilen: Integrity Constraint Error SQL> DELETE FROMdept 2 WHEREdeptno = 10; SQL> DELETE FROMdept 2 WHEREdeptno = 10; DELETE FROM dept * ERROR at line 1: ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK) violated - child record found DELETE FROM dept * ERROR at line 1: ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK) violated - child record found You cannot delete a row that contains a primary key that is used as a foreign key in another table. You cannot delete a row that contains a primary key that is used as a foreign key in another table.

9-21 Datenbank-Transaktionen Besteht aus einem der folgenden Befehle: DML Befehle, die eine konsistente Datenänderung bilden Ein DDL Befehl Ein DCL Befehl Besteht aus einem der folgenden Befehle: DML Befehle, die eine konsistente Datenänderung bilden Ein DDL Befehl Ein DCL Befehl

9-22 Datenbank-Transaktionen Beginn bei der Ausführung des ersten ausführbaren SQL-Befehls. Endet mit einem der folgenden Ereignisse: – COMMIT oder ROLLBACK abgesetzt – DDL oder DCL Befehl (automatisches Commit) – Benutzer verläßt System – Systemzusammenbruch Beginn bei der Ausführung des ersten ausführbaren SQL-Befehls. Endet mit einem der folgenden Ereignisse: – COMMIT oder ROLLBACK abgesetzt – DDL oder DCL Befehl (automatisches Commit) – Benutzer verläßt System – Systemzusammenbruch

9-23 Vorteile von COMMIT und ROLLBACK Befehlen Sichern Datenkonsistenz Offene Änderungen werden dauerhaft gemacht oder zurückgesetzt Gruppieren logisch zusammen- hängende Operationen Sichern Datenkonsistenz Offene Änderungen werden dauerhaft gemacht oder zurückgesetzt Gruppieren logisch zusammen- hängende Operationen

9-24 DELETE Kontrolle von Transaktionen TransaktionTransaktion Savepoint A ROLLBACK to Savepoint B DELETE Savepoint B COMMIT INSERT UPDATE ROLLBACK to Savepoint A INSERTUPDATE INSERT ROLLBACK INSERT

9-25 Zustand der Daten vor dem COMMIT oder ROLLBACK Der vorherige Zustand kann wieder- hergestellt werden. Die Ergebnisse der DML-Operationen inner- halb der Transaktion können mittels SELECT ausgewertet werden. Andere Benutzer können nicht die Ergebnisse der DML-Befehle des aktuellen Benutzers sehen. Die betroffenen Zeilen sind gesperrt (locked); somit können keine anderen Benutzer Daten innerhalb dieser Sätze ändern. Der vorherige Zustand kann wieder- hergestellt werden. Die Ergebnisse der DML-Operationen inner- halb der Transaktion können mittels SELECT ausgewertet werden. Andere Benutzer können nicht die Ergebnisse der DML-Befehle des aktuellen Benutzers sehen. Die betroffenen Zeilen sind gesperrt (locked); somit können keine anderen Benutzer Daten innerhalb dieser Sätze ändern.

9-26 Zustand der Daten nach COMMIT Datenänderungen werden dauerhaft in der Datenbank. Der vorherige Zustand der Daten geht dauerhaft verloren. Alle Benutzer können die Ergebnisse sehen. Sperren auf den betroffenen Sätzen werden freigegeben; diese werden somit verfügbar für andere Benutzer. Datenänderungen werden dauerhaft in der Datenbank. Der vorherige Zustand der Daten geht dauerhaft verloren. Alle Benutzer können die Ergebnisse sehen. Sperren auf den betroffenen Sätzen werden freigegeben; diese werden somit verfügbar für andere Benutzer.

9-27 Ausführung eines Commits auf Daten SQL> UPDATEemp 2 SET deptno = 10 3 WHEREempno = 7782; 1 row updated. SQL> UPDATEemp 2 SET deptno = 10 3 WHEREempno = 7782; 1 row updated. Ausführung der Änderung. Commit der Änderung (Bestätigung). SQL> COMMIT; Commit complete.

9-28 Zustand der Daten nach ROLLBACK Verwerfen aller offenen Änderung durch Nutzung des ROLLBACK Befehls. Datenänderungen rückgängig machen. Vorherigen Zustand rekonstruieren. Sperren auf betroffenen Sätzen freigeben. Verwerfen aller offenen Änderung durch Nutzung des ROLLBACK Befehls. Datenänderungen rückgängig machen. Vorherigen Zustand rekonstruieren. Sperren auf betroffenen Sätzen freigeben. SQL> DELETE FROMemployee; 14 rows deleted. SQL> ROLLBACK; Rollback complete.

9-29 Lesekonsistenz Lesekonsistenz garantiert eine kon- sistente Sicht auf die Daten zu jeder Zeit. Änderungen eines Benutzer stehen nicht in Konflikt mit Änderungen durch andere Benutzer. Lesekonsistenz sichert auf den gleichen Daten: – Leser warten nicht auf Schreiber – Schreiben warten nicht auf Leser Lesekonsistenz garantiert eine kon- sistente Sicht auf die Daten zu jeder Zeit. Änderungen eines Benutzer stehen nicht in Konflikt mit Änderungen durch andere Benutzer. Lesekonsistenz sichert auf den gleichen Daten: – Leser warten nicht auf Schreiber – Schreiben warten nicht auf Leser

9-30 Implementierung der Lesekonsistenz UPDATE emp SET sal = 2000 WHERE ename = 'SCOTT'; 'SCOTT'; Daten- blöcke Rollback Segmente veränderte und unveränderte Daten “alte” Daten vor der Änderung Benutzer A Benutzer B Read consistent image SELECT * FROMemp;

9-31 Sperren (Locking) Oracle sperrt: Verhinderung von gegenseitigen Behinderungen gleichen Daten durch konkurrierende Transaktionen Erfordert keine Benutzeraktion Sperren werden während der Dauer der Transaktion gehalten Zwei Basismodi: – Exclusive – Share Oracle sperrt: Verhinderung von gegenseitigen Behinderungen gleichen Daten durch konkurrierende Transaktionen Erfordert keine Benutzeraktion Sperren werden während der Dauer der Transaktion gehalten Zwei Basismodi: – Exclusive – Share

9-32 Zusammenfassung Description Fügt eine neue Zeile in die Tabelle ein Modifiziert existierende Zeilen in der Tabelle Löscht existierende Zeilen aus der Tabelle Macht alle offenen Änderungen dauerhaft Erlaubt ein Rollback bis zu Sicherungspunkt. Verwerfen aller offenen Datenänderungen Statement INSERT UPDATE DELETE COMMIT SAVEPOINT ROLLBACK

9-33 Übungen Einfügen neuer Datensätze in Tabellen Ändern und Löschen von Datensätzen in der Tabelle Transaktionskontrolle Einfügen neuer Datensätze in Tabellen Ändern und Löschen von Datensätzen in der Tabelle Transaktionskontrolle