Zugang zu MySQL-Datenbank und SQL-Abfragen

SQLBeginner
Jetzt üben

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

SQL query preview image

🎯 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.

  1. Öffne die Kommandozeile und starte den MySQL-Dienst mit dem folgenden Befehl:
sudo service mysql start
  1. Greife auf den MySQL-Client zu, indem du folgenden Befehl verwendest:
sudo mysql
  1. 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.

  1. Erstelle in das Verzeichnis ~/project eine neue Datei namens select_group.sql.

  2. Füge in der Datei select_group.sql die folgende SQL-Abfrage hinzu:

  3. 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;
    
  4. 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 die HAVING-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;
    
  5. 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, die ORDER BY-Klausel wird verwendet, um die Ergebnisse nach dem Gehalt absteigend zu sortieren und die LIMIT 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.

  1. Führe im MySQL-Terminal das Skript select_group.sql aus:

    source /home/labex/project/select_group.sql;
    

    Dadurch werden die SQL-Anweisungen in der Datei select_group.sql ausgefü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.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben