SQL 1 Select Statement

From Coders.Bay Wiki
Jump to navigation Jump to search

Spaß mit Datenbanken[edit]

SQL[edit]

Selektion[edit]

Auswahl von Zeilen (Selektion)[edit]

SELECT Spalten FROM Tabellen WHERE Suchbedingung

SELECT *
FROM EMP
WHERE DEPTNO = 30;
Beispiel[edit]

Gesucht ist der Name aller Büroangestellten

SELECT ENAME
FROM EMP
WHERE JOB='CLERK';

Vergleichsoperatoren[edit]

=
gleich
!=,<>
ungleich
>=
größer gleich
<
kleiner
<=
kleiner gleich
 BETWEEN ... AND ...
zwischen zwei Werten
 IN(Liste)
entspricht einem Wert in der Liste
LIKE
enthält bestimmte Zeichen
IS NULL
ist ein Null-Wert
Verneinung[edit]
NOT BETWEEN, NOT IN, NOT LIKE, IS NOT NULL
Beispiele[edit]
Beispiel 1[edit]

Auflisten aller Abteilungen, deren Abteilungsnummer größer als 20 ist.

SELECT DNAME,DEPTNO
FROM DEPT
WHERE DEPTNO > 20;
Beispiel 2[edit]

Bei sehr großen Tabellen kann es sinnvoll sein, nicht alle Datensätze zu lesen, sondern nur die ersten n Sätze.

SELECT rownum, empno
 FROM emp
 WHERE ROWNUM < 4;
ROWNUM                 EMPNO                  
---------------------- ---------------------- 
1                      7369                   
2                      7499                   
3                      7521                   
= Beispiel 3[edit]

Es sollen diejenigen Mitarbeiter ermittelt werden, die mehr Provision als Gehalt verdienen.

SELECT ENAME,SAL,COMM
FROM EMP
WHERE COMM > SAL;
Beispiel 4[edit]

Alle Verkäufer aus Abteilung 30, deren Gehalt größer gleich 1,500.- ist.

SELECT ENAME,SAL,DEPTNO
FROM EMP
WHERE JOB = ‘SALESMAN‘
AND DEPTNO = 30
AND SAL >= 1500;
Beispiel 5[edit]

Finde alle Mitarbeiter, die von Beruf MANAGER sind oder die mehr als 3,000.- verdienen.

SELECT ENAME,JOB,SAL
FROM EMP
WHERE JOB = ’MANAGER’
OR SAL > 3000;
Beispiel 6[edit]

Ausgabe aller Mitarbeiter aus Abteilung 10, die weder Manager noch Büroangestellte sind.

SELECT *
FROM EMP
WHERE NOT (JOB = ‘MANAGER‘ OR JOB = ‘CLERK‘)
AND DEPTNO = 10;
Beispiel 7[edit]

Ausgabe aller Mitarbeiter, die zwischen 1200.- und 1300.- verdienen.

SELECT ENAME, JOB, SAL
FROM EMP
WHERE SAL BETWEEN 1200 AND 1300;
Beispiel 8[edit]

Ausgabe aller Mitarbeiter, die nicht entweder Büroangestellte, Analytiker oder Verkäufer sind.

SELECT ENAME,JOB,DEPTNO
  FROM EMP
  WHERE JOB NOT IN (‘CLERK‘,‘ANALYST‘,’SALESMAN’);
Beispiel 9[edit]

Ausgabe aller Mitarbeiter, deren Name mit M beginnt.

SELECT *
FROM EMP
WHERE ENAME LIKE ‘M%‘;
Beispiel 10[edit]

Ausgabe aller Mitarbeiter, deren Name fünf Zeichen lang ist, mit ALL beginnt und mit N endet.

SELECT *
FROM EMP
WHERE ENAME LIKE ‘ALL_N‘;
Beispiel 11[edit]

Alle Berufsbezeichnungen sollen 1x ausgegeben werden. Die Überschrift der Spalte soll BERUF sein.

SELECT DISTINCT JOB BERUF
FROM EMP;
Alias[edit]

Unterschied zwischen:

Select ename, job from emp;

Und

Select ename job from emp;

Beim ersten Beispiel selektiert man die Spalten

ENAME

und

JOB

von der Tabelle

EMP

. Beim zweiten Beispiel selektiert man die Spalte

ENAME

und gibt der Spalte den Namen

JOB

.

Sortieren[edit]

Ausgabe aller Mitarbeiter aus Abteilung 30 geordnet nach ihrem Gehalt.

SELECT *
FROM EMP
WHERE DEPTNO = 30
ORDER BY SAL;

Ausgabe der Mitarbeiter aus Abteilung 30 absteigend geordnet nach ihrem Gehalt.

SELECT *
FROM EMP
WHERE DEPTNO = 30
ORDER BY SAL DESC;

Alle Mitarbeiter sollen nach ihrem Job geordnet werden, und innerhalb jedes Jobs in absteigender Reihenfolge nach ihrem Gehalt.

SELECT *
FROM EMP
WHERE DEPTNO = 30
ORDER BY JOB, SAL DESC;