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
Top Related