• Keine Ergebnisse gefunden

VersuchszieleVertiefung in SQL-Abfragen (Große Datenbank).

N/A
N/A
Protected

Academic year: 2021

Aktie "VersuchszieleVertiefung in SQL-Abfragen (Große Datenbank)."

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

SQL-Abfragen Thema: Einführung in die Datenbanken

Versuchsziele

Vertiefung in SQL-Abfragen (Große Datenbank).

SQL-Abfragen mit der Oracle-Datenbank:

Verwendete Tabellen:

 Countries

 Departments

 Employees

 Job_grades

 Locations

 Regions

1. Aufgabe

Anzeige der Mitarbeiter (Vor- und Nachname, Abteilungsnummer) aller Abteilungen, deren Nummern größer 60 ist?

FIRST_NAME LAST_NAME DEPARTMENT_ID --- --- ---

Eleni Zlotkey 80

Ellen Abel 80

Jonathon Taylor 80

Steven King 90

Neena Kochhar 90

Lex De Haan 90

Shelley Higgins 110

William Gietz 110

2. Aufgabe Anzeige der Summe der Gehälter aller Mitarbeiter nach Abteilungsnummer( Absteigend sortiert). DEPARTMENT_ID SUM(SALARY) --- --- 90 58000

80 30100

110 20300

60 19200

20 19000

50 17500

(2)

10 4400

3. Aufgabe

Anzeige der Gehälter aller Mitarbeiter.

Hinweis:

Die Vertreter haben zu ihren Gehalt noch einen zusätzlichen prozentualen Anteil.

FIRST_NAME LAST_NAME GEHALT PROVISION GESAMT

Steven King 24000 0 24000

Neena Kochhar 17000 0 17000

Lex De Haan 17000 0 17000

Alexander Hunold 9000 0 9000

Bruce Ernst 6000 0 6000

Diana Lorentz 4200 0 4200

Kevin Mourgos 5800 0 5800

Trenna Rajs 3500 0 3500

Curtis Davies 3100 0 3100

Randall Matos 2600 0 2600

Peter Vargas 2500 0 2500

Eleni Zlotkey 10500 2100 12600

Ellen Abel 11000 3300 14300

Jonathon Taylor 8600 1720 10320

Kimberely Grant 7000 1050 8050

Jennifer Whalen 4400 0 4400

Michael Hartstein 13000 0 13000

Pat Fay 6000 0 6000

Shelley Higgins 12000 0 12000

William Gietz 8300 0 8300

4. Aufgabe

Geben Sie nur den Vornamen aller Mitarbeiter aus, die im Nachnamen die beiden Buchstaben

„lo“ haben. Verwendet Sie dazu die Funktion „lower“.

FIRST_NAME

--- Diana Jonathon Eleni

(3)

Anzeige der Mitarbeiter, die nach dem 1. Januar 1999 eingestellt wurden.

LAST_NAME HIRE_DATE --- Lorentz 07.02.99 Mourgos 16.11.99 Zlotkey 29.01.00 Grant 24.05.99

6. Aufgabe

Zählen Sie die Anzahl der in jedem Monat angestellten Mitarbeiter, unabhängig vom laufenden Jahr. Verwenden Si eine Konvertierung nach von Datum nach Characters.

MONAT ANZAHL --- ---

01 4

02 2

03 2

05 3

06 3

07 1

08 1

09 2

10 1

11 1

7. Aufgabe Zählen Sie die Anzahl der in jedem Quartal angestellten Mitarbeiter, unabhängig vom laufenden Jahr. Hinweis: Lösung a über Case Lösung b über to_Char ANZAHL --- 8

6

4

2

(4)

Anzeige der Liste aller Mitarbeiter mit dem Nachnamen und dem Nachnamen des Chefs.

a) Subselect b) Join

LAST_NAME CHEF --- ---

King nur Subselect

Kochhar King De Haan King Hunold De Haan Ernst Hunold Lorentz Hunold Mourgos King Rajs Mourgos Davies Mourgos Matos Mourgos Vargas Mourgos Zlotkey King Abel Zlotkey Taylor Zlotkey Grant Zlotkey Whalen Kochhar Hartstein King

Fay Hartstein Higgins Kochhar Gietz Higgins

(5)

Anzeige der Liste aller Mitarbeiter mit der Anzahl der Untergebenen.

LAST_NAME ANZAHL --- ---

Abel 0

Davies 0

De Haan 1

Ernst 0

Fay 0

Gietz 0

Grant 0

Hartstein 1

Higgins 1

Hunold 2

King 5

Kochhar 2

Lorentz 0

Matos 0

Mourgos 4

Rajs 0

Taylor 0

Vargas 0

Whalen 0

Zlotkey 3

10. Aufgabe Legen Sie eine Liste der Beschäftigungsgruppe an, deren mittleres Gehalt größer ist, als das mittlere Gehalt der einfachen Vertreter (SA_REP). JOB_ID MITTLERES_GEHALT --- --- SA_MAN 10500

AC_MGR 12000

MK_MAN 13000

AD_VP 17000

AD_PRES 24000

(6)

Geben Sie die Namen, die Abteilungsnamen und die Gehälter jener Beschäftigten aus, deren Gehalt höher ist, als das mittlere Gehalt in ihrer Jobgruppen. Das Ergebnis soll in

aufsteigender Reihenfolge der Namen angezeigt werden.

LAST_NAME DEPARTMENT_ID SALARY JOB_ID --- --- --- Hunold 60 9000 IT_PROG Rajs 50 3500 ST_CLERK Davies 50 3100 ST_CLERK Abel 80 11000 SA_REP

12. Aufgabe

Anzeige der Liste aller Mitarbeiter mit der Anzahl der Untergebenen, wobei nur die Mitarbeiter angezeigt werden sollen, die mehr als zwei Untergebene haben.

LAST_NAME ANZAHL --- ---

King 5

Mourgos 4

Zlotkey 3

13. Aufgabe Anzeige einer Liste aller Abteilungen mit der Anzahl der Mitarbeiter. DEPARTMENT_ID ANZAHL --- --- 10 1

20 2

50 5

60 3

80 3

90 3

110 2

1

(7)

Anzeige der Summe aller Grundgehälter pro Abteilung. Es sollen nur Mitarbeiter gezählt werden, die eine gerade Mitarbeiternummer haben. Außerdem dürfen nur Abteilungen angezeigt werden, die eine gültige Abteilungsnummer haben.

Hinweis:

Verwenden Sie die Funktion mod 2=mod(5,3) DEPARTMENT_ID SUM(SALARY)

--- --- 10 4400 20 6000 50 11400 60 6000 80 19600 90 41000 110 8300

15. Aufgabe

Anzeige der Mitarbeiter mit dem Abteilungsnamen.

LAST_NAME DEPARTMENT_ID ABTEILUNGSNAME --- King 90 Executive

Kochhar 90 Executive De Haan 90 Executive Hunold 60 IT

Ernst 60 IT Lorentz 60 IT

Mourgos 50 Shipping Rajs 50 Shipping Davies 50 Shipping Matos 50 Shipping Vargas 50 Shipping Zlotkey 80 Sales Abel 80 Sales Taylor 80 Sales Grant

Whalen 10 Administration Hartstein 20 Marketing

Fay 20 Marketing Higgins 110 Accounting Gietz 110 Accounting Hinweis:

Grant erhält man nur beim SubSelect

(8)

Anzeige der Mitarbeiter mit ihrer Abteilungsadresse. Es sollen nur Mitarbeiter vorkommen, die eine Mitarbeiternummer größer 110 haben (Join oder Subselect).

Hinweis:

Mit einem Subselect bekommt man vierzehn Werte. Mit einem Join dreizehn Werte.

LAST_NAME DEPT_ID STRAßE PLZ STADT

Mourgos 50 2011 Interiors Blvd 99236 South San

Francisco

Rajs 50 2011 Interiors Blvd 99236 South San

Francisco

Davies 50 2011 Interiors Blvd 99236 South San

Francisco

Matos 50 2011 Interiors Blvd 99236 South San

Francisco

Vargas 50 2011 Interiors Blvd 99236 South San

Francisco

Zlotkey 80 Magdalen Centre, The

Oxford Science Park

OX9 9ZB Oxford

Abel 80 Magdalen Centre, The

Oxford Science Park OX9 9ZB Oxford

Taylor 80 Magdalen Centre, The

Oxford Science Park OX9 9ZB Oxford Grant

Whalen 10 2004 Charade Rd 98199 Seattle

Hartstein 20 460 Bloor St. W. ON M5S 1X8 Toronto

Fay 20 460 Bloor St. W. ON M5S 1X8 Toronto

Higgins 110 2004 Charade Rd 98199 Seattle

Gietz 110 2004 Charade Rd 98199 Seattle

(9)

Anzeige der Mitarbeiter mit ihrer Job_Stufe.

LAST_NAME SALARY JOBSTUFE --- --- --- King 24000 E

Kochhar 17000 E De Haan 17000 E Hunold 9000 C Ernst 6000 C Lorentz 4200 B Mourgos 5800 B Rajs 3500 B Davies 3100 B Matos 2600 A Vargas 2500 A Zlotkey 10500 D Abel 11000 D Taylor 8600 C Grant 7000 C Whalen 4400 B Hartstein 13000 D Fay 6000 C Higgins 12000 D Gietz 8300 C 20 Zeilen ausgewählt.

18. Aufgabe

Welche Mitarbeiter arbeiten in Europa?

Bitte keine Abkürzungen in den Tabellen vornehmen!

LAST_NAME --- Zlotkey Abel Taylor

(10)

Bilden Sie einen Inner-Join mit den Tabellen Locations und Countries. Geben Sie die Stadt und das Land aus.

Attribute:

 COUNTRY_ID

STADT LAND

Toronto Canada

Oxford United Kingdom

Southlake United States of America

South San Francisco United States of America

Seattle United States of America

21. Aufgabe

Bilden Sie einen Right-Outer-Join mit den Tabellen Locations und Countries. Geben Sie die Stadt und das Land aus.

Attribute:

 COUNTRY_ID

STADT LAND

Toronto Canada

Germany

Oxford United Kingdom

Southlake United States of America

South San Francisco United States of America

Seattle United States of America

(11)

Case-Anweisung:

SELECT last_name, job_code, salary, CASE job_code

WHEN "VP" THEN (1.10*salary) WHEN "Eng" THEN (1.20*salary) ELSE salary

END Neues_Gehalt FROM employee

Datums-Funktionen

TO_DATE(char [ , format] [ , nlsparams] Konvertiert eine Zeichenfolge, die ein gültiges Datum enthält in einen Datumswert im Format der Formatmaske format. Wird format nicht angegeben, ist das Format DD- MM-YY.

Elemente der Datumsformatmaske:

Abkürzung Beschreibung

YYYY Komplettes Jahr als Zahl

YEAR Das Jahr in Worten

MM Zweistelliger Zahlenwert für den Monat MONTH Vollständiger Name des Monats

DY Abkürzung aus drei Buchstaben für den Wochentag

DAY Vollständiger Name des Tags

DD Tag des Monats als numerischer Wert

Q Quartal

Beispiele:

SELECT emp_no, TO_CHAR(hire_date, "MM/YY") Anfangsmonat FROM employee

WHERE last_name = "Yamamoto"

EMP_NO ANFANGSMONAT

118 07/93

(12)

SELECT e.full_name, e.emp_no, e.dept_no, d.department FROM employee e, department d

WHERE e.dept_no = d.dept_no;

SELECT *

FROM emp e INNER JOIN phone p ON e.empno = p.empno

Left Outer Join

SELECT e.empno Nr, e.last_name Mitarbeiter, p.phone Telefon from emp e LEFT OUTER JOIN phone p

ON e.empno = p.empno;

Right Outer Join

SELECT *

from emp e RIGHT OUTER JOIN phone p ON e.empno = p.empno;

Referenzen

ÄHNLICHE DOKUMENTE

Als Fortzug über die Kreisgrenze gilt, wenn jemand innerhalb des Bundesgebiets umzieht und dieser Umzug in dem Kreis, in dem er sich anmeldet, als Zuzug gilt oder wenn sich jemand aus

letzte Aktualisierung: 05.08.2010 nächste Aktualisierung: 09./10.2011. Quelle: Statistisches

Als Fortzug über die Kreisgrenze gilt, wenn jemand innerhalb des Bundesgebiets umzieht und dieser Umzug in dem Kreis, in dem er sich anmeldet, als Zuzug gilt oder wenn sich jemand aus

Als Fortzug über die Kreisgrenze gilt, wenn jemand innerhalb des Bundesgebiets umzieht und dieser Umzug in dem Kreis, in dem er sich anmeldet, als Zuzug gilt oder wenn sich jemand

Als Fortzug über die Kreisgrenze gilt, wenn jemand innerhalb des Bundesgebiets umzieht und dieser Umzug in dem Kreis, in dem er sich anmeldet, als Zuzug gilt oder wenn sich jemand

Als Fortzug über die Kreisgrenze gilt, wenn jemand innerhalb des Bundesgebiets umzieht und dieser Umzug in dem Kreis, in dem er sich anmeldet, als Zuzug gilt oder wenn sich jemand

Als Fortzug über die Kreisgrenze gilt, wenn jemand innerhalb des Bundesgebiets umzieht und dieser Umzug in dem Kreis, in dem er sich anmeldet, als Zuzug gilt oder wenn sich jemand

Aber sollte es doch noch einmal eine ernst zu nehmende und verantwortungsvolle Politik in Deutschland geben (und mit ihr eine kritische Presse), eine, die Probleme