26
2 2 Auswählen und Sortieren von Daten

2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

Embed Size (px)

Citation preview

Page 1: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

22

Auswählen und Sortieren von Daten

Auswählen und Sortieren von Daten

Page 2: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-2

Filtern von Zeilen mit SelektionFiltern von Zeilen mit Selektion

"…suche alle"…suche alleAngestelltenAngestellten

in Abteilung 10"in Abteilung 10"

EMPEMP

EMPNO ENAME JOB ... DEPTNO

7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 ...

EMPEMP

EMPNO ENAME JOB ... DEPTNO

7839 KING PRESIDENT 10 7782 CLARK MANAGER 10 7934 MILLER CLERK 10

Page 3: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-3

Auswahl von ZeilenAuswahl von Zeilen

• Filterung der Zeilen, die gelesen werden, durch Nutzung der WHERE-Klausel.

• Die WHERE-Klausel steht nach der FROM-Klausel.

• Filterung der Zeilen, die gelesen werden, durch Nutzung der WHERE-Klausel.

• Die WHERE-Klausel steht nach der FROM-Klausel.

SELECT [DISTINCT] {*| column [alias], ...}FROM table[WHERE condition(s)];

Page 4: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-4

Nutzung der WHERE-KlauselNutzung der WHERE-Klausel

SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='CLERK';

ENAME JOB DEPTNO---------- --------- ---------JAMES CLERK 30SMITH CLERK 20ADAMS CLERK 20MILLER CLERK 10

Page 5: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-5

Zeichenketten und DatumswerteZeichenketten und Datumswerte• Zeichenketten und Datumswerte sind in

einfachen Hochkommas eingeschlos-sen.

• Zeichenwerte sind case sensitive und Datumswerte sind format sensitive.

• Standard-Datumsformat ist DD-MON-YY.

• Zeichenketten und Datumswerte sind in einfachen Hochkommas eingeschlos-sen.

• Zeichenwerte sind case sensitive und Datumswerte sind format sensitive.

• Standard-Datumsformat ist DD-MON-YY.

SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE ename = 'JAMES';

SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE ename = 'JAMES';

Page 6: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-6

VergleichsoperatorenVergleichsoperatoren

Operator

=

>

>=

<

<=

<>

Bedeutung

Gleich

Größer als

Größer gleich

Kleiner als

Kleiner gleich

Ungleich

Page 7: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-7

Nutzung der Vergleichs- operatoren

Nutzung der Vergleichs- operatoren

SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm;

ENAME SAL COMM---------- --------- ---------MARTIN 1250 1400

Page 8: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-8

Andere VergleichsoperatorenAndere Vergleichsoperatoren

Operator

BETWEEN

...AND...

IN(list)

LIKE

IS NULL

Meaning

Zwischen zwei Werten (einschl.)

Ist in Werteliste enthalten

Übereinstimmung mit Suchmuster

Ist Nullwert

Page 9: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-9

Nutzung von BETWEENNutzung von BETWEEN

ENAME SAL---------- ---------MARTIN 1250TURNER 1500WARD 1250ADAMS 1100MILLER 1300

SQL> SELECT ename, sal 2 FROM emp 3 WHERE sal BETWEEN 1000 AND 1500;

Obergrenze

Untergrenze

BETWEEN zur Anzeige von Zeilen, basie-BETWEEN zur Anzeige von Zeilen, basie-rend auf einem bestimmten Wertebereichrend auf einem bestimmten WertebereichBETWEEN zur Anzeige von Zeilen, basie-BETWEEN zur Anzeige von Zeilen, basie-rend auf einem bestimmten Wertebereichrend auf einem bestimmten Wertebereich

Page 10: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-10

Nutzung des IN OperatorsNutzung des IN Operators

IN Operator zum Test, ob Werte in einer IN Operator zum Test, ob Werte in einer Liste vorhanden sind.Liste vorhanden sind.IN Operator zum Test, ob Werte in einer IN Operator zum Test, ob Werte in einer Liste vorhanden sind.Liste vorhanden sind.

SQL> SELECT empno, ename, sal, mgr 2 FROM emp 3 WHERE mgr IN (7902, 7566, 7788);

EMPNO ENAME SAL MGR--------- ---------- --------- --------- 7902 FORD 3000 7566 7369 SMITH 800 7902 7788 SCOTT 3000 7566 7876 ADAMS 1100 7788

Page 11: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-11

Nutzung des LIKE OperatorsNutzung des LIKE Operators

• LIKE Operator für Suche nach gültigen Zeichenketten.

• Suchbedingung können literale Zeichen oder Ziffern enthalten.

• % bezeichnet 0 oder mehrere Zeichen.

• _ bezeichnet ein Zeichen.

• LIKE Operator für Suche nach gültigen Zeichenketten.

• Suchbedingung können literale Zeichen oder Ziffern enthalten.

• % bezeichnet 0 oder mehrere Zeichen.

• _ bezeichnet ein Zeichen.

SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE 'S%';

Page 12: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-12

Nutzung des LIKE OperatorsNutzung des LIKE Operators

• Platzhalter können zur Pattern-Suche kombiniert werden.

• Zur Suche nach "%" oder "_". ESCAPE Identifikator verwenden.

• Platzhalter können zur Pattern-Suche kombiniert werden.

• Zur Suche nach "%" oder "_". ESCAPE Identifikator verwenden.

SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE '_A%';

ENAME---------- MARTINJAMES WARD

Page 13: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-13

Nutzung des IS NULL OperatorsNutzung des IS NULL Operators

Prüfung auf Nullwerte mit dem IS NULL Prüfung auf Nullwerte mit dem IS NULL Operator.Operator.Prüfung auf Nullwerte mit dem IS NULL Prüfung auf Nullwerte mit dem IS NULL Operator.Operator.

SQL> SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL;

ENAME MGR---------- ---------KING

Page 14: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-14

Logische OperatorenLogische Operatoren

Operator

AND

OR

NOT

Bedeutung

Liefert TRUE wenn beide Teil-

bedingungen TRUE sind

Liefert TRUE wenn eine Teil-

bedingung TRUE ist

Liefert TRUE wenn die nachfolgende Bedingung FALSE ist

Page 15: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-15

Verwendung von ANDVerwendung von AND

AND verlangt von beiden TeilbedingungenAND verlangt von beiden Teilbedingungen

TRUE.TRUE.SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>=1100 4 AND job='CLERK';

EMPNO ENAME JOB SAL--------- ---------- --------- --------- 7876 ADAMS CLERK 1100 7934 MILLER CLERK 1300

Page 16: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-16

Verwendung von ORVerwendung von OROR erwartet eine Bedingung als TRUE. OR erwartet eine Bedingung als TRUE. OR erwartet eine Bedingung als TRUE. OR erwartet eine Bedingung als TRUE.

SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>=1100 4 OR job='CLERK';

EMPNO ENAME JOB SAL--------- ---------- --------- --------- 7839 KING PRESIDENT 5000 7698 BLAKE MANAGER 2850 7782 CLARK MANAGER 2450 7566 JONES MANAGER 2975 7654 MARTIN SALESMAN 1250 ... 7900 JAMES CLERK 950 ...14 rows selected.

Page 17: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-17

Verwendung von NOTVerwendung von NOT

SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

ENAME JOB---------- ---------KING PRESIDENTMARTIN SALESMANALLEN SALESMANTURNER SALESMANWARD SALESMAN

Page 18: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-18

PräzedenzregelnPräzedenzregeln

Präzedenzregeln durch Verwendung von Präzedenzregeln durch Verwendung von Klammern überschreiben.Klammern überschreiben.Präzedenzregeln durch Verwendung von Präzedenzregeln durch Verwendung von Klammern überschreiben.Klammern überschreiben.

Priorität

1 Alle Vergleichs- operatoren

2 NOT

3 AND

4 OR

Page 19: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-19

PräzedenzregelnPräzedenzregeln

ENAME JOB SAL---------- --------- ---------KING PRESIDENT 5000MARTIN SALESMAN 1250ALLEN SALESMAN 1600TURNER SALESMAN 1500WARD SALESMAN 1250

ENAME JOB SAL---------- --------- ---------KING PRESIDENT 5000MARTIN SALESMAN 1250ALLEN SALESMAN 1600TURNER SALESMAN 1500WARD SALESMAN 1250

SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE job='SALESMAN' 4 OR job='PRESIDENT' 5 AND sal>1500;

Page 20: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-20

PräzedenzregelnPräzedenzregeln

ENAME JOB SAL---------- --------- ---------KING PRESIDENT 5000ALLEN SALESMAN 1600

ENAME JOB SAL---------- --------- ---------KING PRESIDENT 5000ALLEN SALESMAN 1600

Klammern, um Prioritäten zu setzen.Klammern, um Prioritäten zu setzen.Klammern, um Prioritäten zu setzen.Klammern, um Prioritäten zu setzen.

SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE (job='SALESMAN' 4 OR job='PRESIDENT') 5 AND sal>1500;

Page 21: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-21

ORDER BY KlauselORDER BY Klausel• Sortiere Zeilen mit ORDER BY Klausel– ASC: aufsteigend (ascending), Standard– DESC: absteigend (descending)

• Die ORDER BY Klausel steht zuletzt im SELECT-Befehl.

• Sortiere Zeilen mit ORDER BY Klausel– ASC: aufsteigend (ascending), Standard– DESC: absteigend (descending)

• Die ORDER BY Klausel steht zuletzt im SELECT-Befehl.

SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate;

ENAME JOB DEPTNO HIREDATE---------- --------- --------- ---------SMITH CLERK 20 17-DEC-80ALLEN SALESMAN 30 20-FEB-81...14 rows selected.

Page 22: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-22

Sortieren in absteigender OrdnungSortieren in absteigender Ordnung

SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC;

ENAME JOB DEPTNO HIREDATE---------- --------- --------- ---------ADAMS CLERK 20 12-JAN-83SCOTT ANALYST 20 09-DEC-82MILLER CLERK 10 23-JAN-82JAMES CLERK 30 03-DEC-81FORD ANALYST 20 03-DEC-81KING PRESIDENT 10 17-NOV-81MARTIN SALESMAN 30 28-SEP-81...14 rows selected.

Page 23: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-23

Sortieren nach Spalten-AliasSortieren nach Spalten-Alias

SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal;

EMPNO ENAME ANNSAL--------- ---------- --------- 7369 SMITH 9600 7900 JAMES 11400 7876 ADAMS 13200 7654 MARTIN 15000 7521 WARD 15000 7934 MILLER 15600 7844 TURNER 18000...14 rows selected.

Page 24: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-24

Sortieren nach mehreren SpaltenSortieren nach mehreren Spalten• Die Reihenfolge in der ORDER BY Liste

entspricht der Sortierordnung.• Die Reihenfolge in der ORDER BY Liste

entspricht der Sortierordnung.

• Sortieren nach Spalten möglich, die nicht in der SELECT Liste stehen.• Sortieren nach Spalten möglich, die nicht

in der SELECT Liste stehen.

SQL> SELECT ename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC;

ENAME DEPTNO SAL---------- --------- ---------KING 10 5000CLARK 10 2450MILLER 10 1300FORD 20 3000...14 rows selected.

Page 25: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-25

ZusammenfassungZusammenfassung

SELECT [DISTINCT] {*| column [alias], ...}FROM table[WHERE condition(s)][ORDER BY {column, expr, alias} [ASC|DESC]];

Page 26: 2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT

2-26

ÜbungenÜbungen

• Auswahl von Daten und Festlegung der Ausgabe-Reihenfolge

• Filterung von Zeilen durch Verwendung der WHERE Klausel

• Verwendung doppelter Anführungszeichen bei Spalten-Aliasen

• Auswahl von Daten und Festlegung der Ausgabe-Reihenfolge

• Filterung von Zeilen durch Verwendung der WHERE Klausel

• Verwendung doppelter Anführungszeichen bei Spalten-Aliasen