2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle...

Preview:

Citation preview

22

Auswählen und Sortieren von Daten

Auswählen und Sortieren von Daten

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

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)];

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

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';

2-6

VergleichsoperatorenVergleichsoperatoren

Operator

=

>

>=

<

<=

<>

Bedeutung

Gleich

Größer als

Größer gleich

Kleiner als

Kleiner gleich

Ungleich

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

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

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

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

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%';

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

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

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

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

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.

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

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

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;

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;

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.

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.

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.

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.

2-25

ZusammenfassungZusammenfassung

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

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

Recommended