1 / 16

SQL

SQL. S tructured Q uery L anguage weit verbreitete Sprache zur Definition und Manipula-tion relationaler Datenbanken heute als herstellerunabhängiger Standard weitge-hend akzeptiert. Der wichtigste Befehl zur Datenmanipulation lautet:. SELECT < attributenliste >

padma
Download Presentation

SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Anfragen an die Datenbank mit folgenden Beziehungen

  4. 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;

  5. B1: über ein Attribut B: Selektion 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‘;

  6. 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;

  7. 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‘;

  8. 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‘;

  9. 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;

  10. B6: Gruppenfunktionen B6.1. Geben Sie das Durchschnittsgehalt, Minimalgehalt, und Maximalgehalt aller Mitarbeiter aus! SELECTAVG (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;

  11. 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;

  12. 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;

  13. 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‘);

  14. 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! SELECTy.name, y.geh FROM mitarb AS x, mitarb AS y WHEREx.name = ‘Jaeger‘ ANDx.geh < y.geh; B10.2. Geben Sie die Namen aller Mitarbeiter aus, die in der gleichen Abteilung arbeiten wie Altmann! SELECTy.name FROM mitarb AS x, mitarb AS y WHEREx.name = ‘Altmann‘ ANDx.abtnr = y.abtnr;

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

  16. 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)

More Related