SQL (2) - enziothiem.com

Werbung
SQL (2)
Enzio Thiem
INHALT
•
•
•
•
•
•
•
•
25.10.2012
SELECT DISTINCT
Logische Operatoren
Boolsche Operatoren
Aggregatfunktionen
verschachtelte Abfrage
Mathematische Funktionen
Abfragen über mehrere Tabellen - Alias
Erzeugen von Sichten – CREATE VIEW
Enzio Thiem B.Sc. - Angewandte Informatik
2
SELECT DISTINCT
Vorsortierung
doppelte Vorkommen nur einmal anzeigen
SELECT DISTINCT tbl_tabelle FROM attribut;
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
3
Logische Operatoren
=
<
>
<>
<=
>=
gleich
kleiner als
größer als
ungleich
kleiner gleich
größer gleich
SELECT pname, eintritt FROM persdat WHERE eintritt='1985-05-15';
SELECT pname, gehalt FROM persdat WHERE gehalt>4000.00;
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
4
Boolsche Operatoren
AND
OR
NOT
SELECT * FROM persdat WHERE abtnr =3 AND gehalt > 4000;
SELECT * FROM persdat WHERE NOT gehalt >=4000;
Verknüpfung
SELECT *
FROM persdat
WHERE geschlecht = 'M'
AND ( gehalt >4000 OR eintritt < '1984-01-01‘ )
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
5
Aggregatfunktionen
•
•
•
•
MIN(spaltenname) = Minimalwert
MAX(spaltenname) = Maximalwert
COUNT(*) = Anzahl der vorhandenen Zeilen
COUNT (DISTINCT spaltenname) = Anzahl der Zeilen mit
unterschiedlichen Werten
• SUM(spaltenname) = Summe
• AVG(spaltenname)= Mittelwert
SELECT
SELECT
SELECT
SELECT
25.10.2012
AVG (gehalt) FROM persdat;
SUM(gehalt) FROM persdat;
persnr, pname, pvname, MAX(gehalt) FROM persdat;
COUNT( DISTINCT eintritt) FROM persdat
letztes Beispiel: Anzahl der unterschiedlichen Vorkommen
Enzio Thiem B.Sc. - Angewandte Informatik
6
verschachtelte Abfrage
SELECT persnr, pname
FROM persdat
WHERE gehalt < (SELECT MAX(gehalt)
FROM persdat);
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
7
COUNT
z.B. Anzahl der unterschiedlichen Vorkommen
SELECT COUNT( DISTINCT eintritt) FROM persdat
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
8
Mathematische Funktionen
z.B. Rechnen mit Daten
SELECT pname, gehalt * 1.045 FROM persdat
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
9
weitere SQL-Operatoren
• LIKE
• BETWEEN
• ORDER BY
SELECT pname FROM persdat WHERE pname LIKE 'Me_er';
/* MySQL Platzhalter: _*/
SELECT pname FROM persdat WHERE pname LIKE 'M%';
/* MySQL Wildcats: %*/
SELECT pname FROM persdat WHERE pname BETWEEN 'S' AND 'Z' ;
SELECT pname, eintritt FROM persdat
WHERE eintritt
BETWEEN '1984-01-01' AND '1985-12-31‘
ORDER BY pname ASC;
/*Ordnet aufsteigend (ASC) – absteigend (DESC)*/
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
10
Abfragen über mehrere Tabellen
Abfragen über mehrere Tabellen:
SELECT aufnr, tposten.tartnr, tbez, tstd*tpreis
FROM tposten, tarten
WHERE tposten.tbnr = 20020301
AND tposten.aufnr = 2222
AND tposten.Tartnr=tarten.tartnr;
tabelle.attribut = t.attribut (wenn vorher FROM tposten t)
SELECT aufnr, t.tartnr, tbez, tstd*tpreis
FROM tposten t, tarten a
WHERE t.tbnr = 20020301
AND t.aufnr = 2222
AND t.Tartnr=a.tartnr;
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
11
Erzeugen von Sichten – CREATE VIEW
CREATE VIEW personaldaten
AS
SELECT A1,A2,B1,B2 FROM T1,T2
Tabelle T2
Tabelle T1
A1
B1
C1
A2
D1
B2
C2
D2
Sicht
A1
A2
B1
B2
Sichten sind Gespeicherte SQL Befehle,
die über den vergebenen Namen ausgeführt werden können
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
12
Erzeugen von Sichten – CREATE VIEW
Beispielcode:
CREATE VIEW personaldaten
AS
SELECT a.persnr,pname,pvname,abtnr,tbnr,aufnr,tartnr,tstd
FROM persdat a, tposten b
WHERE a.persnr=b.persnr;
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
13
Erzeugen von Sichten – CREATE VIEW
CREATE VIEW personaldaten
AS
SELECT * FROM persdat;
25.10.2012
Enzio Thiem B.Sc. - Angewandte Informatik
14
Herunterladen