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

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

Übersicht der wichtigsten MySQL-Befehle

Abfragen (Queries, Subqueries)

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

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

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

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

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

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

ACCESS SQL ACCESS SQL

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

Es geht also im die SQL Data Manipulation Language.

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

Oracle 10g Einführung

Lösungen der Übungsaufgaben von Kapitel 10

Datenbanksysteme Kapitel 5: SQL - Grundlagen

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

SQL-Befehlsliste. Vereinbarung über die Schreibweise

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

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

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

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

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

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

SQL als Zugriffssprache

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

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

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

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

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

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL structured query language

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Datenbank und Tabelle mit SQL erstellen

Labor 3 - Datenbank mit MySQL

Sructred Query Language

IV. Datenbankmanagement

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Microsoft Access 2010 SQL nutzen

Übungsaufgaben mit Lösungen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Tabellen verknüpfen: Joins

Datenbanksysteme 2013

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

Wiederholung VU Datenmodellierung

Bibliografische Informationen digitalisiert durch

SQL: Weitere Funktionen

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

Datenmanagement I SoSe 2006 Aufgabenblatt 4

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

Folien php/mysql Kurs der Informatikdienste

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

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

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

MCSA: SQL 2016 Database Development

Datenbanken. Zusammenfassung. Datenbanksysteme

ARBEITSBLATT ZUR SQL-BEFEHLEN

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

Datenmanipulation in SQL (1): Subselect:

A Datendenition in SQL ( Punkte)

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

dbis Praktikum DBS I SQL Teil 2

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

SQL-Anweisungen. SELECT (SQL Data Query Language)

Aggregatfunktionen in SQL

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

Inhaltsverzeichnis. Einleitung

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

Datumsangaben, enthält mindestens Jahr, Monat, Tag

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

Microsoft Access Relationen. Anja Aue

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

Erstellen einer Datenbank. Datenbankabfragen

105.3 SQL-Datenverwaltung

Die Anweisung create table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

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

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

Abfragen aus mehreren Tabellen (mit join)

INFORMATIONSUNTERLAGEN. Grundzüge der SQL-Programmierung. Vag 09/2005

Datenbanksysteme SQL Grundlagen

SQL,Teil 3: Unterabfragen, Views & Berechnungen

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

Einführung in die Wirtschaftsinformatik Kapitel 4: Relationale Datenbanksprachen: SQL

Einführung in die Spezialisierungsrichtungen

Relationale Anfragesprachen

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

IBM Informix SQL. Seminarunterlage. Version vom

Visualisierung in Informatik und Naturwissenschaften

SQL: Abfragen für einzelne Tabellen

Relationales Datenbanksystem Oracle

Aufgabe 1: Integrität

Einführung in Datenbanken und SQL

Unterabfragen (Subqueries)

Transkript:

Innsbruck Information System University of Innsbruck School of Management Information Systems Universitätsstraße 15 6020 Innsbruck SQL Data Manipulation Language (DML) und Query Language (QL) Universität Innsbruck Institut für Wirtschaftsinformatik, Produktionswirtschaft und Logistik Bereich Wirtschaftsinformatik

Einfügen von Daten (DML) INSERT INTO tabelle VALUES (wert_1,, wert_n); bzw. INSERT INTO tabelle (attribut_1,, attribut_n) VALUES (wert_1,, wert_n); aber auch INSERT INTO tabelle SELECT attribut(e) FROM tabelle(n) [WHERE ] Werte (values) von zeichenbasierten Datentypen müssen in Anführungszeichen stehen, von zahlenbasierten Datentypen nicht. Werte und deren Reihenfolge lässt sich mit der zweiten Variante ändern. 2

Ändern von Daten (DML) UPDATE tabelle SET attribut_1 = wert_1,, attribut_n = wert_n; bzw. UPDATE tabelle SET attribut_1 = wert_1,, attribut_n = wert_n WHERE bedingungen; Hinweis: Damit Änderungen an Primärschlüsselwerten auch auf die zugehörigen Fremdschlüsselwerte angewendet werden können, muss die Relation zwischen den Tabellen eine Aktualisierungsweitergabe erlauben, also in der FOREIGN KEY Anweisung im CREATE TABLE Statement die Formulierung ON UPDATE CASCADE verwendet werden. Dies ist zwar in Microsoft Access nicht möglich*), in anderen Datenbank-Management-Systemen aber sehr wohl. In Microsoft Access kann die Aktualisierungsweitergabe in der grafischen Benutzeroberfläche im Dialog Beziehungen bearbeiten des Datenbanktools - Menüpunktes Beziehungen als Option markiert werden. *) https://msdn.microsoft.com/de-de/library/office/ff836971(v=office.15).aspx 3

Löschen von Daten (DML) DELETE FROM tabelle; bzw. DELETE FROM tabelle WHERE bedingung(en); Mit WHERE Bedingung(en) werden nur jene Entitäten gelöscht, die die Bedingung(en) erfüllen, ohne WHERE Bedingung werden alle Entitäten der gewählten Tabelle gelöscht. Hinweis: Entitäten einer Tabelle auf der 1-Seite einer 1:N Relation können nur dann gelöscht werden, wenn entweder keine abhängigen Entität(en) auf der N-Seite der Relation vorliegen oder wenn die Relation mit Löschweitergabe deklariert wurde ( ON DELETE CASCADE oder ON DELETE SET NULL in der FOREIGN KEY -Anweisung des CREATE TABLE -Statements). Bedingungen können mittels AND bzw. OR verknüpft werden 4

Abfrage von Daten (QL) SELECT attribut_1,, attribut_n SELECT * FROM tabelle[n] [WHERE bedingung(en)] [GROUP BY attribut(e) [HAVING bedingung(en)]] [ORDER BY attribute]; Auch berechnete Attribute sind möglich, wie z.b. attribut_1 + - * / ^ & usw. attribut_2 [AS berechnetes_attribut] oder function(attribut) [AS berechnetes_attribut]. Dabei kann function jede, etwa aus Microsoft Excel bekannte Funktion sein (Beispielsweise ergibt year(datums_attribut) die Jahreszahl eines Datums). Beispiel: SELECT vname & nname AS Name, Jahreseinkommen/14 AS Monatseinkommen, year(now())-year(gebdatum) AS Alter FROM Personen; Für die Aggregatfunktionen AVG, COUNT, FIRST, LAST, MIN, MAX, StDEV, StDEVP, SUM, VAR, VARP gelten die speziellen Regeln für Aggregationen. 5

(QL) Spezielle Abfragen: JOINs Werden Daten aus mehr als einer Tabelle abgefragt, sind: Im FROM Teil der Abfrage alle Tabellennamen aufzulisten: FROM tabelle1, tabelle2, Gleichnamige Attribut durch den Tabellennamen-Präfix zu kennzeichnen: SELECT tabelle1.attribut, tabelle2.attribut, (Kann durch die Verwendung von Aliases für Tabellennamen verkürzt werden: Select t1.attribut, t2.attribut, FROM tabelle1 t1, tabelle2 t2, ) JOIN-Bedingungen der Form: Primärschlüssel_attribut = Fremdschlüssel_attribut für jede(!) Relation zwischen den im FROM-Teil der Abfrage genannten Tabellen zu formulieren. (Ohne diese JOIN-Bedingungen würden arithmetische Produkte ausgegeben) SELECT t1.attribut, t2.attribut, FROM tabelle1 t1, tabelle2 t2, WHERE t1.ps = t2.fs [AND t2.ps = t3.fs, AND ] Seite 6

(QL) Spezielle Abfragen: Aggregationen SQL-QL kennt die Aggregatfunktionen AVG, COUNT, FIRST, LAST, MIN, MAX, StDEV, StDEVP, SUM, VAR, VARP. (Siehe: https://msdn.microsoft.com/de-de/library/office/ff197054.aspx) Werden im SELECT-Teil einer Abfrage nicht aggregierte Attribute mit aggregierten gemischt, müssen alle nicht aggregierten Attribute in einer GROUP BY Klausel zusammengefasst werden: SELECT attribut_1, attribut_2, SUM(attribut_3) AS Summe_von_attribut3 FROM tabelle1 [, tabelle2, ] [WHERE ] GROUP BY attribut_1, attribut_2 [ORDER BY ]; Bedingungen an aggregierte Spalten können nicht(!) im WHERE-Teil der Abfrage formuliert werden, sondern müssen nach der GROUP BY Klausel - mittels HAVING formuliert werden: SELECT attribut_1, attribut_2, SUM(attribut_3) AS Summe_von_attribut3 FROM tabelle1 [, tabelle2, ] [WHERE attribut_1 = Bedingung, ] GROUP BY attribut_1, attribut_2 HAVING SUM(attribut_3) = Bedingung [ORDER BY ]; Seite 7

(QL) Spezielle Abfragen: Unterabfragen In SQL-QL können zwei oder mehr Abfragen in Form von Haupt- Unterabfrage(n) verschachtelt werden: SELECT Attributliste FROM Tabelle(n) WHERE Attribut Vergleichsoperator (SELECT Vergleichsattribut FROM Tabelle(n) [WHERE Attribut Vergleichsoperator (SELECT Vergleichsattribut )]) Mögliche Vergleichsoperatoren sind = < > [NOT] IN Mit IN und NOT IN kann der Wert eines Attributs mit vielen Werten aus einer Werteliste des Vergleichsattributs verglichen werden, welche in der Unterabfrage ermittelt wird. Beim Ausführen der Abfrage wird von innen nach außen gearbeitet, d.h. SQL verarbeitet zuerst die innerste [Unter-]Abfrage, dann die nächst Innere usw. und zuletzt die [Haupt-]Abfrage. Die Tiefe der Verschachtelung kann beliebig groß sein. Seite 8

ER-Modell für die folgenden Beispiele: Seite 9

Übungsaufgaben DML Verwenden Sie die Datenbank AdventureWorks, die Sie im OLAT Kurs der Vorlesung unter Proseminar (PS) -> Unterlagen SQL Data Definition Language finden 1. Legen Sie einen neuen Kunden mit folgenden Daten an ID: 1337 Vorname: Peter Nachname: Croft E-Mail Adresse: peter@acme-wheels.com 2. Tragen Sie bei dem eben erstellten Kunden die Firma ACME Wheels ein 3. Löschen Sie den eben erstellen Kunden Seite 10

Übungsaufgaben QL Verwenden Sie die Datenbank AdventureWorks, die Sie im OLAT Kurs der Vorlesung unter Proseminar (PS) -> Unterlagen SQL Data Definition Language finden 1. Geben Sie alle Kunden, sortiert nach Nach- und Vorname aus. 2. Geben Sie alle Produkte aus, die nicht mehr verkauft werden. 3. Geben Sie die Namen und Gewinnspannen aller Produkte aus, die ike" im Namen enthalten. 4. Geben Sie alle Bestellung mit unterschiedlichen Rechnungs- und Lieferadressen aus. 5. Geben Sie alle Kunden ohne mittleren Namen aus. 6. Geben Sie den Namen aller Produkte mit dem Namen ihrer Kategorie aus 7. Geben Sie alle Produkte der Kategorie Road Frames aus 8. Geben Sie die Gesamtsumme aller Bestellungen aus 9. Geben Sie die Gesamtsumme aller Bestellung pro Stadt aus, die als Lieferadresse ausgewählt wurde. 10. Geben Sie alle Produkte aus, die in mehr als 3 Bestellungen vorkommen. 11. Geben Sie eine Rangliste der meistverkauften Produkte und der damit erzielten Umsätze aus. 12. Welche Produkte wurden noch niemals verkauft? 13. Ordnen Sie die Umsätze pro Kunde in absteigender Reihenfolge. 14. Ordnen Sie die Betreuer nach Anzahl der betreuten Kunden in aufsteigender Reihenfolge. 15. Geben Sie eine Rangliste der Gewinne pro Produkt aus. Seite 11