DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

Ähnliche Dokumente
DB1-Datenbanksysteme. DB SQL-DDL 1 Mario Neugebauer

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL structured query language

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Kapitel 8: Datenintegrität

Datenbanksysteme 2013

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Folien php/mysql Kurs der Informatikdienste

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

DB1. DB SQL-DQL 1 Mario Neugebauer

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

Lösungen der Übungsaufgaben von Kapitel 10

Oracle 10g Einführung

Abfragen (Queries, Subqueries)

Wiederholung VU Datenmodellierung

Relationales Datenbanksystem Oracle

Es geht also im die SQL Data Manipulation Language.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Datenbank und Tabelle mit SQL erstellen

Microsoft Access 2010 SQL nutzen

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Erstellen und Verwalten von Tabellen

Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Kapitel 7: Referentielle Integrität

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Übersicht der wichtigsten MySQL-Befehle

Datenbank Grundlagen. Performanceuntersuchungen

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

[1] DBS-exercice

Die Anweisung create table

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL. Datendefinition

Garten - Daten Bank. - survival pack -

4. Datenbanksprache SQL

ACCESS SQL ACCESS SQL

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Labor 3 - Datenbank mit MySQL

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Inhaltsverzeichnis. Einleitung

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Referentielle Integrität

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

SQL-Befehlsliste. Vereinbarung über die Schreibweise

5.3 Datenänderung/-zugriff mit SQL (DML)

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Referenzielle Integrität SQL

dbis Praktikum DBS I SQL Teil 2

Datenbanken: Datenintegrität.

Referentielle Integrität

Inhaltsverzeichnis. jetzt lerne ich

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Datenbanksysteme Kapitel 2: SQL Data Definition Language

SQL: Weitere Funktionen

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Übung 01 Tabellen erstellen

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Tabellen verknüpfen: Joins

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Bibliografische Informationen digitalisiert durch

Sructred Query Language

Einführung in SQL Datenbanken bearbeiten

Relationentheorie grundlegende Elemente

SQL-Vertiefung. VL Datenbanksysteme. Ingo Feinerer

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Inhaltsverzeichnis. Vorwort Teil I Einführung. 1 Einleitung Der Microsoft SQL Server... 19

Es geht also um die sogenannte SQL- Data Definition Language.

Datenbanksysteme Kapitel: SQL Data Definition Language

Datenbanken Einführung Seite 1 von 7

Datenschutz: Zugriffsrechte in SQL

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Transkript:

DB-Datenbanksysteme DB-13 043-SQL-DML 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache - DDL Daten-Manipulations-Sprache - DML Daten-Überwachungs-Sprache - DCL

DML- Daten-Manipulations-Sprache DB-13 043-SQL-DML 2 Mario Neugebauer Data Manipulation Language Anweisungen zum Erzeugen, Ändern und Löschen von Tabelleninhalten Einfügen: INSERT INTO VALUES Ändern UPDATE SET WHERE Löschen DELETE FROM WHERE SQL-Server: BULK INSERT MERGE

DML-INSERT: Datensätze einfügen Einfügen eines Datensatzes in eine bestehende Tabelle INSERT INTO tabnname [(spaname1, spaname2 [,...])] VALUES (Wert1, Wert2 [,...]); INSERT INTO Speicherung eines neuer Datensatzes in tabname spaliste - optional ermöglicht die Festlegung der Reihenfolge der übergebenen Werte wenn nicht angegeben Nutzung der Reihenfolge der Definition VALUES(werteListe) Werte die im neuen Datensatz gespeichert werden sollen Reihenfolge der Angabe entsprechend der spaliste oder der Tabellen-Definition INSERT INTO Kunde(kundenNr, Name, Vorname, PLZ, Ort, Strasse) VALUES(345, 'Anton', 'Uwe', '53111','Aue', 'Kurz 1'); DB-13 043-SQL-DML 3 Mario Neugebauer

DML-INSERT: Datensätze einfügen DBMS überprüft beim Einfügen die Gültigkeit des Datensatzes. Fehlerursachen: Ungültiger Datentyp Feldinhalt notwendig, aber nicht angegeben Ungültiger Fremdschlüssel doppelte Werte im Primärschlüssel oder im UNIQUE-Feld ( nächste Folien) CREATE Table Student ( MatNr integer PRIMARY KEY NOT NULL, StudName varchar(50) NOT NULL UNIQUE, SGNr integer FOREIGN KEY SGNr REFERENCES StudienGang (SGNr); Student MatNr StudName SGNr 1 Rot 1 3 Blau 2 4 Gelb 2 StudienGang SGNr SGName 1 PI 2 WI 999 Dmy DB-13 043-SQL-DML 4 Mario Neugebauer

DML-INSERT: Datensätze einfügen CREATE Table Student ( MatNr integer PRIMARY KEY NOT NULL, StudName varchar(50) NOT NULL UNIQUE, SGNr integer FOREIGN KEY SGNr REFERENCES StudienGang (SGNr); Ungültiger Datentyp bei der Tabellen-Definition wurde für jede Spalte ein Datentyp definiert beim einzufügende DS entsprechen aber nicht alle Daten dieser Tabellen-Definition INSERT INTO Student ( MatNr, StudName, SGNr) Values( A123, Grün, 2); Student MatNr StudName SGNr 1 Rot 1 3 Blau 2 4 Gelb 2 StudienGang SGNr SGName 1 PI 2 WI 999 Dmy DB-13 043-SQL-DML 5 Mario Neugebauer

DML-INSERT: Datensätze einfügen CREATE Table Student ( MatNr integer PRIMARY KEY NOT NULL, StudName varchar(50) NOT NULL UNIQUE, SGNr integer FOREIGN KEY SGNr REFERENCES StudienGang (SGNr); Feldinhalt notwendig, aber nicht angegeben für eine Spalte wurde NOT NULL bei der Tabellen-Definition festgelegt der einzufügende DS enthält aber für diese Spalte keine Informationen INSERT INTO Student ( MatNr, SGNr) Values ( 123, 2 ); StudName als NOT NULL definiert, aber kein Wert zum Einfügen übergeben und kein Standardwert definiert Student MatNr StudName SGNr 1 Rot 1 3 Blau 2 4 Gelb 2 StudienGang SGNr SGName 1 PI 2 WI 999 Dmy DB-13 043-SQL-DML 6 Mario Neugebauer

DML-INSERT: Datensätze einfügen CREATE Table Student ( MatNr integer PRIMARY KEY NOT NULL, StudName varchar(50) NOT NULL UNIQUE, SGNr integer FOREIGN KEY SGNr REFERENCES StudienGang (SGNr); Ungültiger Fremdschlüssel eine Spalte wurde als Fremdschlüssel definiert (FOREIGN KEY) der angegebene Fremdschlüssel existiert in der Vatertabelle aber nicht INSERT INTO Student ( MatNr, StudName, SGNr) Values ( 123, Grün, 3 ); in der Vatertabelle StudienGang existiert keine SGNr mit dem Wert 3 Student MatNr StudName SGNr 1 Rot 1 3 Blau 2 4 Gelb 2 StudienGang SGNr SGName 1 PI 2 WI 999 Dmy DB-13 043-SQL-DML 7 Mario Neugebauer

DML-INSERT: Datensätze einfügen CREATE Table Student ( MatNr integer PRIMARY KEY NOT NULL, StudName varchar(50) NOT NULL UNIQUE, SGNr integer FOREIGN KEY SGNr REFERENCES StudienGang (SGNr); Doppelte Werte im Primärschlüssel oder im UNIQUE-Feld eine Spalte wurde als Primärschlüssel oder als UNIQUE-Feld definiert durch die neuen Daten würden doppelte Werte entstehen INSERT INTO Student ( MatNr, StudName, SGNr) Values ( 3, Gelb, 2 ); StudName als UNIQUE definiert StudName Gelb ist bereits vorhanden MatNr als Primärschlüssel definiert der Primärschlüssel 3 ist bereits vorhanden Student MatNr StudName SGNr 1 Rot 1 3 Blau 2 4 Gelb 2 StudienGang SGNr SGName 1 PI 2 WI 999 Dmy DB-13 043-SQL-DML 8 Mario Neugebauer

DML-INSERT: Datensätze einfügen Gesucht: Befehl zum Einfügen eines Datensatzes in Mitarbeiter mit den Werten: Vorname: Hans Name: Ulm PLZ: 53113 Ort: Bonn Straße: Talweg 7 Eintrittsdatum: 01.01.2009 MitarbeiterNr: 304 INSERT INTO Mitarbeiter (Vorname, Name, Strasse, PLZ, Ort, Eintrittsdatum, MitarbeiterNr) VALUES ('Hans', 'Ulm', 'Talweg 7', '53113', 'Bonn', '01.01.2009', 304); Testen DB-13 043-SQL-DML 9 Mario Neugebauer

DML-INSERT: Datensätze einfügen Gesucht: Befehl zum Einfügen eines neuen Artikels in die Tabelle Artikel.!! Achtung: Fremdschlüssel Ohne Unterabfragen: ArtikelNr: 75 Bezeichnung: DeskJet Nettopreis: 350 Hersteller: Samsung FS: 2 Kategorie: Drucker FS: 7 MwSt: 19% FS: 2 INSERT INTO Artikel (ArtikelNr, Bezeichnung, Nettopreis, Hersteller, Kategorie, MwSt) VALUES (75, 'DeskJet', 350, 2, 7, 2 ); Testen DB-13 043-SQL-DML 10 Mario Neugebauer

DML-INSERT: Datensätze einfügen Gesucht: Befehl zum Einfügen eines neuen Artikels in die Tabelle Artikel. Mit Unterabfragen: ArtikelNr: 76 Bezeichnung: DeskJet2 Nettopreis: 350 Hersteller: HP Kategorie: Drucker MwSt: 19% INSERT INTO Artikel (ArtikelNr, Bezeichnung, Nettopreis, Hersteller, Kategorie, MwSt) VALUES (76, 'DeskJet2', 350, (SELECT HerstellerNr FROM Hersteller WHERE Name='HP'), (SELECT KategorieNr FROM Kategorie WHERE Bezeichnung='Drucker'), (SELECT MwStNr FROM MWStSatz WHERE Prozent=19)); Testen DB-13 043-SQL-DML 11 Mario Neugebauer

DML-UPDATE: Datensätze ändern DB-13 043-SQL-DML 12 Mario Neugebauer Änderung der Werte von Datensätzen in einer bestehenden Tabelle UPDATE tabname SET spaname = Wert [,...] [WHERE Auswahlbedingung]; zwei-stufiger Ablauf: Datensatzauswahl Auswahl der zu ändernden Datensätze Spaltenauswahl Achtung: SQL lässt die gleichzeitige Änderung mehrerer Datensätze zu Empfehlung: Überprüfung der WHERE-Bedingung mittels einer vorherigen SELECT- Anweisung

DML-UPDATE: Datensätze ändern DB-13 043-SQL-DML 13 Mario Neugebauer Gesucht: Befehl, der den Kunde Johannes Stein in die Adresse Kurzstr. 23, 12345 Bonn umziehen lässt. UPDATE Kunde SET Plz = '12345', Strasse = 'Kurzstr. 23, Ort = 'Bonn' WHERE Name = 'Stein' AND Vorname = 'Johannes';

DML-UPDATE: Datensätze ändern DB-13 043-SQL-DML 14 Mario Neugebauer Gesucht: Befehl, der die Mitarbeiter mit der MitarbeiterNr 8 und 9 in die Abteilung mit der Nr. 2 wechseln lässt UPDATE Mitarbeiter SET Abteilung = 2 WHERE MitarbeiterNr = 9 OR MitarbeiterNr = 8; Gesucht: Befehl, der die Gehälter der Mitarbeiter um 2% erhöht. UPDATE Mitarbeiter SET Gehalt = Gehalt*1.02;

DML-UPDATE: Datensätze ändern DB-13 043-SQL-DML 15 Mario Neugebauer Unterabfragen in Update-Anweisungen: Unterabfragen können auch beim Update-Befehl verwendet werden Gesucht: Was wird durch diesen Befehl erreicht? UPDATE Mitarbeiter SET Gehalt = Gehalt + 30 WHERE MitarbeiterNr IN ( SELECT MitarbeiterNr FROM JobTicket WHERE gueltig_bis >= CURRENT_DATE) ; Das Gehalt der Mitarbeiter mit gültigem Jobticket wird um 30 Euro erhöht.

DML-DELETE: Datensätze löschen DB-13 043-SQL-DML 16 Mario Neugebauer Löschen von Datensätzen DELETE FROM tabname [WHERE Auswahlbedingung]; Auswahl der richtigen zu löschenden Datensätze Achtung: SQL lässt das gleichzeitige Löschen mehrerer Datensätze zu Empfehlung: Überprüfung der WHERE-Bedingung mittels einer vorherigen SELECT- Anweisung

DML-DELETE: Datensätze löschen DB-13 043-SQL-DML 17 Mario Neugebauer DELETE FROM Kategorie WHERE Bezeichnung = '5-Zoll-Disketten'; Wenn alle abhängigen Tabellen mit ON DELETE CASCADE verknüpft sind, muss nur die Kategorie 5-Zoll-Disketten gelöscht werden andernfalls müssen erst die entsprechenden Artikel gelöscht werden

DML-DELETE: Datensätze löschen DB-13 043-SQL-DML 18 Mario Neugebauer Unterabfragen in DELETE-Anweisungen Unterabfragen können auch beim Lösch-Befehl verwendet werden Gesucht: Was wird durch diesen Befehl erreicht? DELETE FROM Kunde WHERE KundenNr IN (SELECT KundenNr FROM Bestellung GROUP BY KundenNr HAVING MAX(Bestelldatum) < '01.01.2004' ) ; Löschung aller Kunden deren letztes Bestelldatum vor dem 01.01.2004 liegt.

DML-DELETE: Datensätze löschen DB-13 043-SQL-DML 19 Mario Neugebauer Gesucht: Kunde Paul Steuer storniert Bestellung mit der BestellNr 60, diese besteht aus verschiedenen Posten. Reihenfolge! DELETE FROM Posten WHERE BestellNr = 60; DELETE FROM Bestellung WHERE BestellNr = 60;

DML-DELETE: Datensätze löschen DB-13 043-SQL-DML 20 Mario Neugebauer Gesucht: Canon nimmt den Artikel i250 aus dem Programm, deshalb muss: der Mindestbestand auf 0 gesetzt werden sobald der letzte Drucker verkauft wurde (Bestand = 0), ist das Angebot in Artikel zu löschen. UPDATE Artikel SET mindestbestand = 0 WHERE Bezeichnung = 'i250'; wenn Bestand = 0 ist der Artikel zu löschen: DELETE FROM Artikel WHERE Bezeichnung = 'i250' ;

DDL+DML: Übung Gesucht: Tabellen Student + StudienGang mit den zugehörigen DS Forderungen: werden in StudienGang Datensätze gelöscht, sollen die damit in Beziehung stehenden Datensätze in Student auch gelöscht werden werden in StudienGang Datensätze geändert, sollen die damit in Beziehung stehenden Datensätze den Standardwert erhalten Student MatNr StudName SGNr 1 Rot 1 CREATE TABLE StudienGang( SGNr integer primary key not null, 3 Blau 2 SGName varchar(10)); 4 Gelb 2 CREATE TABLE Student ( MatNr integer primary key not null, StudName varchar(30), SGRNr integer DEFAULT 999, FOREIGN KEY (SGRNr) REFERENCES StudienGang (SGRNr) ON DELETE CASCADE ON UPDATE SET DEFAULT); StudienGang SGNr SGName 1 PI 2 WI 999 Dmy DB-13 043-SQL-DML 21 Mario Neugebauer