Einführung
In diesem Praktikums-Projekt wirst du auf einer Reise beginnen, die Kunst des SQL-Abfragens zu meistern, indem du mit der Personal-Datenbank und ihrer emp-Tabelle arbeitest. Durch eine Reihe von praktischen Übungen wirst du die erforderlichen Fähigkeiten erwerben, um Mitarbeiterdaten effektiv abzurufen, zu filtern und zu analysieren.
👀 Vorschau

🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie man die MySQL-Datenbank über die Kommandozeile zugreift
- Wie man eine SQL-Datei in die MySQL-Datenbank importiert
- Wie man alle Mitarbeiterinformationen aus der
emp-Tabelle abruft und die Ergebnisse sortiert - Wie man die Abteilungsnummer und die Gesamtzahl der Mitarbeiter für Abteilungen mit mehr als 4 Mitarbeitern abruft
- Wie man den Mitarbeiter mit der höchsten Gehaltszahl in Abteilung 10 abruft
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Zu verstehen, wie man mit MySQL-Datenbanken über die Kommandozeile arbeitet
- Grundlegende SQL-Abfragen durchzuführen, um Daten abzurufen und zu analysieren
- Sortier-, Gruppierungs- und Filtertechniken anzuwenden, um spezifische Informationen aus einer Datenbank zu extrahieren
Zugang zu MySQL und Import der Datenbank
In diesem Schritt wirst du lernen, wie du auf die MySQL-Datenbank zugreifst und die personnel.sql-Datei importierst.
- Öffne die Kommandozeile und starte den MySQL-Dienst mit dem folgenden Befehl:
sudo service mysql start
- Greife auf den MySQL-Client zu, indem du folgenden Befehl verwendest:
sudo mysql
- Importiere die
personnel.sql-Datei in die MySQL-Datenbank mit dem folgenden Befehl:
source /home/labex/project/personnel.sql;
Dadurch wird die personnel-Datenbank und die emp-Tabelle in deine MySQL-Umgebung importiert.
Schreibe die Abfrage
In diesem Schritt wirst du lernen, drei Abfragen zu schreiben, wie man alle Mitarbeiter aus der emp-Tabelle abruft und die Ergebnisse sortiert, wie man die Abteilungsnummer und die Gesamtzahl der Mitarbeiter für Abteilungen mit mehr als 4 Mitarbeitern abruft und wie man den am besten bezahlten Mitarbeiter in Abteilung 10 abruft.
Erstelle in das Verzeichnis
~/projecteine neue Datei namensselect_group.sql.Füge in der Datei
select_group.sqldie folgende SQL-Abfrage hinzu:Diese Abfrage wird alle Mitarbeiterinformationen aus der
emp-Tabelle zurückgeben, sortiert nach der Abteilungsnummer aufsteigend und dem Gehalt absteigend.SELECT * FROM emp ORDER BY deptno ASC, sal DESC;Diese Abfrage wird die Abteilungsnummer und die Gesamtzahl der Mitarbeiter für die Abteilungen mit mehr als 4 Mitarbeitern zurückgeben. Die
GROUP BY-Klausel wird verwendet, um die Mitarbeiter nach der Abteilungsnummer zu gruppieren, und dieHAVING-Klausel wird verwendet, um die Ergebnisse zu filtern, sodass nur Abteilungen mit mehr als 4 Mitarbeitern enthalten sind.SELECT deptno, COUNT(*) AS total_employees FROM emp GROUP BY deptno HAVING total_employees > 4;Diese Abfrage wird die Mitarbeiternummer, den Namen, die Abteilungsnummer und die Arbeitsinformationen des Mitarbeiters mit der Abteilungsnummer 10 und dem höchsten Gehalt zurückgeben. Die
WHERE-Klausel wird verwendet, um die Ergebnisse zu filtern, sodass nur Mitarbeiter mit der Abteilungsnummer 10 enthalten sind, dieORDER BY-Klausel wird verwendet, um die Ergebnisse nach dem Gehalt absteigend zu sortieren und dieLIMIT 1-Klausel wird verwendet, um nur das erste Ergebnis zurückzugeben, was der Mitarbeiter mit dem höchsten Gehalt sein wird.SELECT empno, ename, deptno, job FROM emp WHERE deptno = 10 ORDER BY sal DESC LIMIT 1;
Speichere die Datei.
Führe das SQL-Skript aus
In diesem Schritt wirst du lernen, wie man das SQL-Skript ausführt.
Führe im MySQL-Terminal das Skript
select_group.sqlaus:source /home/labex/project/select_group.sql;Dadurch werden die SQL-Anweisungen in der Datei
select_group.sqlausgeführt und das Ergebnis angezeigt.Beispielausgabe:
MariaDB [personnel]> source /home/labex/project/select_group.sql; +-------+--------+-----------+------+------------+---------+---------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7788 | SCOTT | ANALYST | 7566 | 1987-06-13 | 3000.00 | NULL | 20 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7876 | ADAMS | CLERK | 7788 | 1987-06-13 | 1100.00 | NULL | 20 | | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | +-------+--------+-----------+------+------------+---------+---------+--------+ 14 Zeilen in Satz (0,000 Sekunden) +--------+-----------------+ | deptno | total_employees | +--------+-----------------+ | 20 | 5 | | 30 | 6 | +--------+-----------------+ 2 Zeilen in Satz (0,000 Sekunden) +-------+-------+--------+-----------+ | empno | ename | deptno | job | +-------+-------+--------+-----------+ | 7839 | KING | 10 | PRESIDENT | +-------+-------+--------+-----------+ 1 Zeile in Satz (0,000 Sekunden)
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.
