Table of Contents

SQL

SQL = Structured Query Language

SELECT-Befehl

Was wird gesucht?

SELECT `Nachname`, `Vorname`

Welche Tabelle?

FROM Mitarbeiter

Doppelte Ergebnisse nicht anzeigen:

SELECT DISTINCT

Alle Spalten ausgeben

SELECT *

Filter

Zahlenfelder

arithmetische Operatoren:

+, -, * und /

Vergleichen von Zahlenfeldern Vergleichsoperatoren:

=, <, >, <=, >=, !=, BETWEEN

Text

SELECT CONCAT (Nachname,',', Vorname)
FROM Mitarbeiter;

Worte die in eine bestimmte Schablone herausfiltern

LIKE
SELECT Nachname
FROM Mitarbeiter
WHERE Nachname LIKE "D%";

Datum und Uhrzeit

CURRENT_DATE()
CURRENT_TIME()
CURRENT_TIMESTAMP()
DAY(Datum)
MONTH(Datum)
YEAR(Datum)

SELECT DAY(geburtsdatum), MONTH(geburtsdatum), nachname, vorname
FROM personal
ORDER BY MONTH(geburtsdatum);
SELECT nachname, vorname, geburtsdatum
FROM personal
WHERE YEAR(CURRENT_DATE) - YEAR(geburtsdatum) < 50
OR YEAR(CURRENT_DATE) - YEAR(geburtsdatum) = 50
AND MONTH(CURRENT_DATE) < MONTH(geburtsdatum)
OR YEAR(CURRENT_DATE) - YEAR(geburtsdatum) = 50
AND MONTH(CURRENT_DATE) = MONTH(geburtsdatum)
AND DAY(CURRENT_DATE) < DAY(geburtsdatum);
SELECT KategorieNr, SUM(Lagerbestand) AS Summe
FROM Artikel
GROUP BY KategorieNr;

Übungsarbeit Lösung

/* Aufgabe 1 */
SELECT `Raumname`
FROM `Raume`
WHERE Klimaanlage = "y";
 
/* Aufgabe 2 */
SELECT *
FROM `Kontakte`
ORDER BY PLZ;
 
/* Aufgabe 3 */
SELECT `Raumname`
FROM `Raeume`
WHERE Raumname LIKE "1%";
 
/* Aufgabe 4 */
SELECT `PCName`, `Hersteller`
FROM Rechner r, Komponentenliste kl, Komponenten k
WHERE r.PCID = kl.PCID
AND kl.KompID = k.KompID
ORDER BY PCName, Hersteller;
 
/* Aufgabe 5 */
SELECT PCName, Firma
FROM rechner r, komponentenliste kl, komponenten k, kontakte kon
WHERE r.PCID = kl.PCID AND kl.kompID = k.kompID
AND k.ServicepartnerID = kon.KID;
 
/* Aufgabe 6 */
SELECT k.komponente, DateDiff(letzten Service Termin, Anschaffungsdatum) / 365
FROM rechner r, komponentenliste kl, Komponenten k
WHERE r.PCID = kl.PCID AND kl.kompID = k.kompID;
 
/* Aufgabe 7 */
SELECT Raumname, PCName
FROM Raeume r LEFT JOIN Rechner PC
ON PC.Raum = r.RaumID
WHERE PCName IS NULL;
 
/* Aufgabe 8 */
SELECT k1.Firma, k2.Firma, k1.Ansprechpartner
FROM kontakte k1, kontakte k2
WHERE k1.Ansprechpartner = k2.Ansprechpartner
AND k1.KID > k2.KID;
/* Artikelnamen mit "Sir " */
SELECT `Artikelname`
FROM `artikel`
WHERE `Artikelname` LIKE "Sir %";
 
/* Mitarbeiter, die Bestellungen bearbeitet haben bevor sie 30 waren */
SELECT p.Vorname, p.Nachname
FROM personal p, bestellungen b
WHERE p.PersonalNr = b.PersonalNr
AND DATEDIFF(b.Bestelldatum,p.Geburtsdatum)/365 < 30;