Structured Query Language

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Projekt: Datenbankentwurf
XSQL - Beispiel. © Prof. T. Kudraß, HTWK Leipzig Nested Cursor erzeugen in SQL-Anfragen die XML-typische Baumstruktur (anstelle von Tabellen) Beispiel:
Prof. Dr. T. Kudraß1 Logischer DB-Entwurf. Prof. Dr. T. Kudraß2 Entwurf eines relationalen DB-Schemas Ziel: –Regeln für die Umsetzung eines ER-Modells.
MySQL.
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
Recap - Kapitel 3 « Das Relationenmodell »
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
MySQL Der Einstieg.
IS: Datenbanken, © Till Hänisch 2000 Übungen SQL.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Einführung Dateisystem <-> Datenbanksystem
ERM – Modellierung Teil 2
Aufgabe April 2004Übung Data Warehousing2 1: Accounts 'gruppe ' auf ' morawetz ' (IP: !) Oracle-Account gleichen Namens SQL*Plus:
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
SQL - Structured Query Language AIFB SS (2/9) Anfragen mit Bedingungen ( )(2/9) angestellte ANG-NRNAMEWOHNORTABT-NR 3115 MeyerKarlsruhe35.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
objekt-relationale Datenbanken
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Relationale Datenbanken II
Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II.
Datenbanken?.
... Unternehmens- leitung
Datenmodellierung Sammeln von Informationen
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Der Funktionsassistent
Erläuterung der wichtigsten Befehle
Datenbanksysteme für hörer anderer Fachrichtungen
Freiwillige Feuerwehr der Stadt Perg
Aggregatsfunktion SQL = Structured Query Language.
Relationentheorie AIFB SS Relationen in 1NF und relationale Datenbanken(1/5) Attribut a Wertebereichdom(a) (domain) AttributemengeA = {a 1,...,
Normalisierungsprozess
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Semantische Integritätsbedingungen AIFB SS assert-Klausel (2/6) Beispiel 3-2: Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez).
Parallelwinkel im Überblick
Erste Einführung in SQL
Structured Query Language
Grundlagen des Relationenmodells
Tabellen in Word for Windowscomputeria, Urdorf Tabellen in Word for Windows computeria Urdorf / Dieter Eckstein.
Sektionen SEKTION C3 SEKTION B1 SEKTION A2 C B A38414 E Klicken Sie auf eine Fläche, um eine Sektion aus der Nähe zu betrachten. Weiter.
Vorlesung #5 SQL (Teil 2).
Wiederholung Der wichtigste Befehl zur Datenmanipulation lautet:
Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
Einführung Dateisystem <-> Datenbanksystem
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
SQL - Structured Query Language  AIFB SS (1/6) Spezielle Anfragen an eine Relation(1/6) projekt P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Datenbank System (DBS) - Warum?
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Datenbanken abfragen mit SQL
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Klassen und Tabellen.
Datenbankabfragen.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Aggregatfunktionen bei mehreren Tabellen
Darstellung der Relationenalgebra als Programmiersprache
Wirtschaftsinformatik
Administrieren und Arbeiten mit Datenbanken und SQL
(Structured Query Language)
 Präsentation transkript:

Structured Query Language SQL Structured Query Language weit verbreitete Sprache zur Definition und Manipula-tion relationaler Datenbanken heute als herstellerunabhängiger Standard weitge-hend akzeptiert

SELECT < attributenliste > FROM < relationenliste > WHERE < bedingungsgefüge > (optional) Der wichtigste Befehl zur Datenmanipulation lautet:

Anfragen an die Datenbank mit folgenden Beziehungen

A: Projektion A1. Geben Sie alle Informationen der Tabelle Mitarbeiter aus! SELECT persnr, name, gebdat, ort, taet, geh, abtnr FROM mitarb; SELECT * FROM mitarb; A2. Geben Sie Name und Geburtsdatum aller Mitarbeiter aus! SELECT name, gebdat FROM mitarb; A3. Welche Tätigkeiten gibt es? SELECT taet FROM mitarb; A4. Welche unterschiedlichen Tätigkeiten gibt es? SELECT DISTINCT taet FROM mitarb;

B: Selektion B1: über ein Attribut B1.1. Erstellen Sie eine Liste aller Mitarbeiter der Abteilung 20! SELECT name FROM mitarb WHERE abtnr = 20; B1.2. Geben Sie Namen und Abteilungsnummer aller Leiter aus! SELECT name, abtnr FROM mitarb WHERE taet = ‘Leiter‘;

B2: über mehrere Attribute B2.1. Geben Sie alle Informationen des Leitungspersonals der Tabelle Mitarbeiter aus! SELECT * FROM mitarb WHERE taet = ‘Leiter‘ OR taet = ‘Direktor‘; B2.2. Geben Sie die Personalnummer der Mitarbeiter aus, die an Projekt 20 und / oder Projekt 30 arbeiten! SELECT DISTINCT persnr FROM mitarb_proj WHERE projnr = 20 OR projnr = 30;

B3: Wertebereichsabfragen B3.1. Erzeugen Sie eine Auflistung aller Mitarbeiter (Name / Gehalt), die zwischen 1200 € und 1800 € verdienen! SELECT name, geh FROM mitarb WHERE geh >= 1200 AND geh <= 1800; B3.2. Geben Sie Namen und Geburtsdatum aller Mitarbeiter aus, die nach 1960 geboren sind! SELECT name, gebdat FROM mitarb WHERE gebdat > #31/12/60#; B3.3. Listen Sie Projektnummer, Projektbeginn und Projektende der Projekte auf, die eine Laufzeit kleiner gleich zwei Jahre haben! SELECT projnr, pbeg, pende FROM proj WHERE pende - pbeg <=‘730days‘;

B4: Zeichenkettenoperationen B4.1. Geben Sie die Namen aller Mitarbeiter aus, deren Name mit „M“ beginnt! SELECT name FROM mitarb WHERE name LIKE ‘M*‘; B4.2. Suchen Sie die Namen aller Mitarbeiter heraus, deren Name mit „e“ endet! SELECT name FROM mitarb WHERE name LIKE ‘*e‘;

B5: Ausdrücke B5.1. Geben Sie zu jedem Namen eines Mitarbeiters sein Jahreseinkommen aus! SELECT name, 12*geh AS jahresgehalt_euro FROM mitarb; B5.2. Ermitteln Sie für jeden Mitarbeiter das Tagesgehalt (20 Arbeitstage im Monat) und geben Sie dieses aus! SELECT name, geh/20 AS tag_in_euro FROM mitarb;

B6: Gruppenfunktionen B6.1. Geben Sie das Durchschnittsgehalt, Minimalgehalt, und Maximalgehalt aller Mitarbeiter aus! SELECT AVG (geh) AS durchsch_geh, MIN (geh) AS mini_geh, MAX (geh) AS maxi_geh FROM mitarb; B6.2. Ermitteln Sie die Gesamtprojektkapazität und geben Sie diese aus! SELECT SUM (pkap) AS ges_proj_kap FROM proj; B6.3. Ermitteln Sie die Anzahl der Mitarbeiter (über Attribut „name“) in Abteilung 20 und geben Sie diese aus! SELECT COUNT (name) AS anz_mitarbeiter_abt20 FROM mitarb WHERE abtnr = 20;

B7: Bildung von Gruppen (mit gleichen Attributen) B7.1. Geben Sie für jede Abteilung Nummer und Durchschnittsgehalt gruppiert nach Abteilungsnummer aus! SELECT abtnr, AVG (geh) AS durchsch_geh FROM mitarb GROUP BY abtnr; B7.2. Geben Sie Abteilungsnummer, Tätigkeit, Anzahl je Tätigkeit gruppiert nach Abteilungsnummer und Tätigkeit aus! SELECT abtnr, taet, COUNT (taet) AS Anzahl FROM mitarb GROUP BY abtnr, taet;

B8: Ordnen der Ergebnisrelation B8.1. Geben Sie Abteilungsnummer und Name aller Leiter nach Abteilungsnummern geordnet aus! SELECT abtnr, name FROM mitarb WHERE taet = ‘Leiter‘ ORDER BY abtnr; B8.2. Geben Sie alle Informationen der Tabelle Mitarbeiter geordnet nach Abteilungen und innerhalb der Abteilungen nach Tätigkeiten aus! SELECT * FROM mitarb ORDER BY abtnr, taet;

B9: Join über 2 Relationen B9.1. Geben Sie die Namen aller Projektleiter aus! SELECT DISTINCT name FROM mitarb, proj WHERE persnr = pleit; B9.2. Geben Sie die Namen und Personalnummern aller Mitarbeiter aus, die an Projekt 20 und / oder Projekt 30 arbeiten! SELECT DISTINCT name, mitarb.persnr FROM mitarb, mitarb_proj WHERE mitarb.persnr = mitarb_proj.persnr AND (projnr = 20 OR projnr = 30); B9.3. Geben Sie die Namen und Abteilungsnamen aller Mitarbeiter aus! SELECT name, abtname FROM mitarb, abt WHERE mitarb.abtnr = abt.abtnr; B9.4. Geben Sie Name, Gehalt und Abteilungsort des Mitarbeiters Richter aus! SELECT name, geh, abt.ort FROM mitarb, abt WHERE mitarb.abtnr = abt.abtnr AND name = ‘Richter‘; B9.5. Geben Sie Namen, Personalnummern und Abteilungsnamen aller Mitarbeiter aus, die weder in der Direktion noch in der Forschung arbeiten! SELECT name, persnr, abtname FROM mitarb, abt WHERE mitarb.abtnr = abt.abtnr AND NOT (abtname = ‘Direktion‘ OR abtname = ‘Forschung‘);

B10: Join auf sich selbst (nur auf eine Relation bezogen) B10.1. Geben Sie die Namen und Gehälter aller Mitarbeiter aus, die mehr verdienen als Jaeger! SELECT y.name, y.geh FROM mitarb AS x, mitarb AS y WHERE x.name = ‘Jaeger‘ AND x.geh < y.geh; B10.2. Geben Sie die Namen aller Mitarbeiter aus, die in der gleichen Abteilung arbeiten wie Altmann! SELECT y.name FROM mitarb AS x, mitarb AS y WHERE x.name = ‘Altmann‘ AND x.abtnr = y.abtnr;

B11: Join über mehrere Relationen B11.1. Geben Sie die Namen, Abteilungsnamen von Mitarbeitern aus, die an Projekten arbeiten, die Walther leitet! SELECT y.name, abtname FROM mitarb AS x, mitarb AS y, proj, mitarb_proj, abt WHERE x.name = ‘Walther‘ AND x.persnr = pleit AND proj.projnr = mitarb_proj.projnr AND mitarb_proj.persnr = y.persnr AND y.abtnr = abt.abtnr AND y.name <> ‘Walther‘;

B12: Unterabfragen (Verschachtelung von SELECT im WHERE-Zweig) B12.1. Geben Sie die Namen aller Mitarbeiter aus, die in Chemnitz arbeiten! SELECT name FROM mitarb WHERE abtnr IN (SELECT abtnr FROM abt WHERE ort = ‘Chemnitz‘); SELECT name FROM mitarb, abt WHERE abt.ort = ‘Chemnitz‘ AND abt.abtnr = mitarb.abtnr; (2..Möglichkeit – siehe auch Join über 2 Relationen)