Direkt zum Inhalt

MySQL Tutorial: Ein umfassender Leitfaden für Anfänger

Erfahre, was MySQL ist und wie du in eines der beliebtesten Datenbankmanagementsysteme einsteigst.
Aktualisierte 16. Jan. 2025  · 15 Min. Lesezeit

Daten sind die Grundlage unserer zunehmend digitalen Gesellschaft. Von mobilen Apps und Bankensystemen bis hin zu Suchmaschinen und KI-Chatbots der nächsten Generation wie ChatGPT - all diese Tools wären ohne Daten nicht möglich. Hast du dich jemals gefragt, wo all diese Daten gespeichert werden? Du hast es erraten: Datenbanken.

Eine Datenbank ist eine organisierte Sammlung von strukturierten Daten, die normalerweise in einem Computersystem gespeichert werden. Ein großer Teil der Daten auf der ganzen Welt wird in relationalen Datenbanken gespeichert.

In diesem Lernprogramm konzentrieren wir uns auf MySQL, ein beliebtes relationales Datenbankmanagementsystem (RDBMS). MySQL wird von Oracle unterstützt und ist eine zuverlässige, skalierbare und benutzerfreundliche Open-Source-Datenbank, die von einigen der wichtigsten Unternehmen im Tech-Bereich wie Meta, Netflix und Airbnb genutzt wird.

Nach der Lektüre dieses Artikels bist du in der Lage, dieses beliebte und etablierte Tool zu nutzen - von der Installation auf deinem Computer über die Erstellung von Datenbanken bis hin zur Durchführung grundlegender SQL-Abfragen und fortgeschrittener Operationen. Bist du bereit für die Herausforderung? Lass uns loslegen!

Voraussetzungen und grundlegende Konzepte

Es gibt viele Arten von Datenbanken, die sich für die Speicherung unterschiedlicher Datentypen eignen. In den letzten Jahren wurden neue Arten von Datenbanken entwickelt, um der zunehmenden Vielfalt an Datenformaten gerecht zu werden. Trotz des Aufstiegs der sogenannten NoSQL-Datenbanken sind relationale Datenbanken immer noch die beliebtesten Datenbanken.

Relationale Datenbanken sind darauf ausgelegt, Daten als Sammlungen von vordefinierten Tabellen mit Zeilen und Spalten zu speichern, die durch eine oder mehrere Beziehungen miteinander verbunden sind.

Die Standardmethode zur Erstellung, Verwaltung und Kommunikation mit Datenbanken ist SQL (Structured Query Language). SQL ist der Grundstein für einige der beliebtesten Datenbanken auf dem Markt, darunter PostgreSQL, SQLite und MySQL.

Um diesem Tutorial zu folgen, empfehlen wir ein grundlegendes Verständnis von SQL. Eine gute Möglichkeit für den Einstieg ist unser Kurs Einführung in SQL. Außerdem brauchst du MySQL auf deinem Computer. Deshalb erklären wir dir jetzt, wie du MySQL installierst.

Werde SQL-zertifiziert

Beweise mit einer Zertifizierung, dass deine SQL-Kenntnisse für den Job geeignet sind.
Meine Karriere ankurbeln

Einrichten von MySQL

Die Installation des Tools ist ein einfacher Prozess. Du musst nur den richtigen Installer von der offiziellen Website herunterladen, je nachdem, welches Betriebssystem dein Computer hat, ob macOS, Windows oder Linux.

Installation unter macOS

Sobald du das MySQL-Paket-Installationsprogramm heruntergeladen hast, befolge die Anweisungen des Installationsassistenten. Du kannst der Standardinstallation folgen, aber du kannst die zu installierenden Komponenten auch anpassen, indem du auf die Schaltfläche "Anpassen" klickst.

MySQL Paket-Installationsassistent: Anpassen.

MySQL Paket-Installationsassistent: Anpassen. Quelle: MySQL

Nach einer erfolgreichen Neuinstallation des MySQL-Servers schließt du die Konfigurationsschritte ab, indem du den Standard-Verschlüsselungstyp für Passwörter auswählst, das Root-Passwort festlegst und den MySQL-Server beim Start aktivierst (oder deaktivierst).

Bei der Installation mit dem Paketinstaller werden die Dateien in ein Verzeichnis innerhalb von /usr/local installiert, das dem Namen der Installationsversion und der Plattform entspricht.

Installation unter Windows

Die Installation von MySQL unter Windows ist recht einfach. Die empfohlene Methode ist, den Windows Installer herunterzuladen und ihn eine bestimmte Version von MySQL installieren und konfigurieren zu lassen. Wenn du die Standardinstallation verwendest, startet Windows MySQL automatisch als lokalen Host.

Installation unter Linux

Linux unterstützt eine Reihe von verschiedenen Lösungen für die Installation von MySQL. MySQL empfiehlt, dass du eine der Distributionen von Oracle verwendest, für die mehrere Methoden zur Installation zur Verfügung stehen, wie du in der Dokumentation nachlesen kannst.

MySQL verstehen

Bevor du anfängst, MySQL zu benutzen, lohnt es sich zu analysieren, wie MySQL funktioniert. Analysieren wir einige seiner Kernkonzepte.

MySQL Architektur

Wie viele andere beliebte relationale Datenbanken ist auch MySQL als Client-Server-Architektur konzipiert.

Bei diesem Computermodell ist ein Server dafür vorgesehen, Daten zu hosten, Datenbankberechtigungen und -konfigurationen zu verwalten und die meisten der vom Client angeforderten Ressourcen und Dienste bereitzustellen.

In den meisten gängigen Client-Server-Architekturen gibt es einen zentralen Server und mehrere Clients. Jeder Computer kann ein Server sein, wenn er so eingerichtet ist, dass er einen Dienst anbietet. Server sind jedoch in der Regel sehr leistungsstarke und große Maschinen, weil sie am besten dafür ausgestattet sind, ein hohes Volumen an Anfragen und Daten zu verarbeiten.

Im Gegensatz dazu können sich die Clients auf jeder Art von Computer befinden.

Client-Server-Architektur.

Client-Server-Architektur. Quelle: DataCamp

Bei MySQL sind diese beiden Komponenten der MySQL-Client und der MySQL-Server.

Datenarten

Datentypen werden verwendet, um die Werte zu bestimmen, die eine Spalte enthalten kann. Sie dienen als eine Art Metadaten, die SQL dabei helfen, zu verstehen, welche Art von Daten in jeder Spalte zu erwarten ist und wie Abfragen zu einer bestimmten Spalte verarbeitet werden können.

MySQL unterstützt reguläre SQL-Datentypen in drei Hauptkategorien:

  • Numerische Typen
  • String-Typen
  • Datum- und Zeittypen

In den folgenden Tabellen findest du einen Überblick über die wichtigsten Datentypen in MySQL.

Numerische Datentypen

Datentyp

Beschreibung

TINYINT

Eine sehr kleine ganze Zahl.

SMALLINT

Eine kleine ganze Zahl.

MEDIUMINT

Eine mittelgroße ganze Zahl.

INT oder INTEGER

Eine Standard-Ganzzahl.

BIGINT

Eine große ganze Zahl.

FLOAT

Eine Gleitkommazahl.

DOPPEL

Eine Gleitkommazahl mit doppelter Genauigkeit.

DECIMAL oder NUMERIC

Eine Festkommazahl.

Datum und Zeit Datentypen

Datentyp

Beschreibung

DATUM

Ein Datumswert im Format JJJJ-MM-TT.

ZEIT

Ein Zeitwert im Format HH:MM:SS.

DATETIME

Ein Datums- und Zeitwert im Format JJJJ-MM-TT HH:MM:SS.

TIMESTAMP

Ein Zeitstempelwert im Format JJJJ-MM-TT HH:MM:SS.

JAHR

Ein Jahreswert im Format JJJJ oder JJJ.

String-Datentypen

Datentyp

Beschreibung

CHAR

Eine Zeichenkette mit fester Länge.

VARCHAR

Ein String mit variabler Länge.

TINYTEXT

Ein sehr kleiner Textstring.

TEXT

Eine kleine Textzeichenfolge.

MEDIUMTEXT

Eine mittelgroße Textzeichenfolge.

LONGTEXT

Eine große Textzeichenfolge.

ENUM

Ein String-Objekt, das nur einen Wert haben kann, der aus einer Liste von vordefinierten Werten ausgewählt wird.

SET

Ein String-Objekt, das null oder mehr Werte haben kann, die aus einer Liste von vordefinierten Werten ausgewählt werden.

Zugriff auf MySQL

Sobald du MySQL auf deinem Computer installiert hast, kannst du es von deinem Terminal aus benutzen. Um MySQL zu starten, kannst du mit deinem Benutzernamen und dem dazugehörigen Passwort darauf zugreifen. In diesem Fall greifen wir mit dem Root-Konto auf MySQL zu, zusammen mit dem Root-Passwort, das wir während der Installation festgelegt haben. Da wir uns auf demselben Rechner anmelden, auf dem auch MySQL läuft, müssen wir keine Informationen im Parameter host (-h) angeben:

> mysql -uroot -p

Wenn du neue Benutzer hinzufügen willst, gibst du ein:

> CREATE USER 'username' IDENTIFIED BY 'password';

Wenn du einen neuen Benutzer erstellt hast, kannst du MySQL mit diesem Befehl aufrufen. Es wird eine Willkommensnachricht angezeigt, gefolgt von einer mysql>-Eingabeaufforderung:

> mysql -u username -p 
Welcome to the MySQL monitor.  Commands end with; or \g.
Your MySQL connection id is 25
Server version: 8.1.0 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Wie man eine MySQL-Datenbank erstellt

Erstellen einer Datenbank

Es ist an der Zeit, deine erste Datenbank in MySQL zu erstellen. Für dieses Tutorial wollen wir eine Datenbank namens "datacamp_courses" erstellen, die Informationen über einige DataCamp-Kurse enthält. Die Datenbank wird lokal gehostet.

Um eine Datenbank zu erstellen, verwende den folgenden Befehl:

mysql> CREATE DATABASE datacamp_courses;

Um zu überprüfen, ob die Datenbank erstellt wurde, gibst du Folgendes ein. Es wird eine Tabelle mit allen verfügbaren Datenbanken angezeigt:

mysql> SHOW databases;
+--------------------+
| Database           |
+--------------------+
| datacamp_courses   |
| mysql              |
+--------------------+
5 rows in set (0,00 sec)

Jetzt kannst du auf deine brandneue Datenbank zugreifen.

mysql> USE datacamp_courses;
Database changed

Eine Tabelle erstellen

Bis jetzt hast du deine erste Datenbank erstellt. Aber es ist immer noch leer. Jetzt werden wir die erste Tabelle der Datenbank erstellen. Wir wollen eine Tabelle mit dem Namen "Kurse" erstellen, die Informationen über verschiedene Kurse im DataCamp-Kurskatalog enthält.

Es ist an der Zeit, deine erste Tabelle in der Datenbank "datacamp_courses" zu erstellen. Wir wollen eine Tabelle mit Informationen über einige der Kurse im DataCamp-Kurskatalog erstellen.

Der Primärschlüssel der Tabelle sollte course_id sein (nur dieser ist fett gedruckt), und der Datentyp sollte eine ganze Zahl sein. Ein Primärschlüssel ist eine Einschränkung, die erzwingt, dass die Spaltenwerte nicht null und eindeutig sind. Damit kannst du eine bestimmte oder eine Gruppe von Instanzen in der Tabelle eindeutig identifizieren.

Die restlichen Spalten enthalten Informationen über den Kursnamen, den Kursleiter, das Thema des Kurses und die URL.

Um die erste Tabelle der Datenbank "datatacamp_courses" zu erstellen, gibst du folgenden Befehl ein:

mysql> CREATE TABLE courses (
  course_id int NOT NULL,
  course_name varchar(250) NOT NULL,
  instructor_name varchar(250) NOT NULL,
  technology varchar(50) NOT NULL,
  topic varchar(50) NOT NULL,
  PRIMARY KEY (course_id)
);

Grundlegende SQL-Abfragen

Du hast deine erste Datenbank und deine erste Tabelle. Toll! Jetzt ist es an der Zeit, der Tabelle einige Daten hinzuzufügen.

Fügen wir mit der INSERT-Anweisung einige Zeilen mit beliebten Kursen hinzu, die in unserem Katalog verfügbar sind. Der folgende Code wird den Zauber vollbringen.

INSERT INTO 
    courses (course_id, course_name, instructor_name, technology, topic) VALUES 
    (1, 'Introduction to SQL', 'Izzy Weber', 'SQL','Data Manipulation'), 
    (2, 'Database Design', 'Lis Sulmont', 'SQL', 'Data Engineering'), 
    (3, 'Data Manipulation with pandas', 'Richie Cotton', 'R','Programming'),
    (4, 'Generative AI Concepts', 'Daniel Tedesco', 'Theory', 'AI & Machine Learning');

Um zu überprüfen, ob die Zeilen korrekt hinzugefügt wurden, lassen wir uns alle Zeilen in der Tabelle mit der SELECT-Anweisung anzeigen:

SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-----------------------+
| course_id | course_name                   | instructor_name | technology | topic                 |
+-----------+-------------------------------+-----------------+------------+-----------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation     |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering      |
|         3 | Data Manipulation with pandas | Richie Cotton   | R          | Programming           |
|         4 | Generative AI Concepts        | Daniel Tedesco  | Theory     | AI & Machine Learning |
+-----------+-------------------------------+-----------------+------------+-----------------------+
4 rows in set (0,00 sec)

Du hast vielleicht bemerkt, dass die Daten, die wir gerade hinzugefügt haben, einen Fehler enthalten. Die Technologie des Kurses Datenbearbeitung mit Pandas ist weder Python noch R. Beheben wir den Fehler mit der UPDATE-Anweisung zusammen mit der WHERE-Klausel, um die zu aktualisierende Zeile anzugeben

UPDATE courses SET technology = 'Python' WHERE course_id = 3;
SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-----------------------+
| course_id | course_name                   | instructor_name | technology | topic                 |
+-----------+-------------------------------+-----------------+------------+-----------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation     |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering      |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming           |
|         4 | Generative AI Concepts        | Daniel Tedesco  | Theory     | AI & Machine Learning |
+-----------+-------------------------------+-----------------+------------+-----------------------+
4 rows in set (0,00 sec)

Zum Schluss möchtest du vielleicht einen der Datensätze in deiner Tabelle löschen. Lass uns zum Beispiel den Kurs Generative KI-Konzepte löschen:

DELETE from courses WHERE course_name = 'Generative AI Concepts';
SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-------------------+
| course_id | course_name                   | instructor_name | technology | topic             |
+-----------+-------------------------------+-----------------+------------+-------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering  |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming       |
+-----------+-------------------------------+-----------------+------------+-------------------+
3 rows in set (0,00 sec)

Fortgeschrittene Themen

Indizierung

Wenn MySQL einige Zeilen finden muss, fängt er standardmäßig mit der ersten Zeile an und liest dann von vorne nach hinten. Dieses Verhalten kann problematisch sein, wenn deine Datenbanken Millionen von Zeilen haben, da der Prozess sehr langsam sein kann.

Eine gute Möglichkeit, die Suche von MySQL nach Zeilen in deinen Tabellen zu beschleunigen, ist die Erstellung eines Indexes. Ein Index einer Komponente deiner Tabellen, den MySQL verwendet, um Zeilen mit bestimmten Spalten schneller abzurufen.

Erstellen wir einen Index in unserer Tabelle mit dem Namen "idx_course" für die Spalte "course_id".

CREATE INDEX idx_course
ON courses (course_id);

Tritt bei

Bis jetzt haben wir nur mit der Tabelle der Kurse gearbeitet. Das volle Potenzial von relationalen Datenbanken wie MySQL kannst du aber erst dann nutzen, wenn du mit mehreren Tabellen gleichzeitig arbeitest.

Das magische Werkzeug, um mehrere Tabellen zu kombinieren, ist die JOIN-Operation. Stell dir vor, wir haben in unserer Datenbank eine zweite Tabelle namens "Kursleiter", die grundlegende Informationen über die DataCamp-Kursleiter enthält. Das folgende Skript erstellt die Tabelle und fügt einige (fiktive) Zeilen hinzu:

mysql> CREATE TABLE instructors (
  instructor_id int NOT NULL,
  instructor_name varchar(250) NOT NULL,
  role varchar(500) NOT NULL,
  number_courses int NOT NULL,
  PRIMARY KEY (instructor_id)
);
INSERT INTO 
    instructors (instructor_id, instructor_name, role, number_courses) VALUES 
    (1, 'Lis Sulmont', 'Data Scientist', 4),
    (2, 'Daniel Tedesco', 'Business Analyst', 1),
    (3, 'Richie Cotton', 'Data Evangelist',5),
    (4, 'Izzy Weber', 'Data Engineer', 2), 
    (5, 'James Chapman', 'Data Analyst',3);

Stell dir vor, du möchtest die beiden Tabellen zusammenführen, um die Informationen über die Kurse und die Daten der Lehrkraft zu erhalten. Wir verwenden einen INNER JOIN, um nur die Informationen über die Kurse zu erhalten, die in der Tabelle "Kurse" enthalten sind. Die gemeinsame Spalte für die Verknüpfung ist "lehrer_name".

mysql> SELECT * FROM courses
    -> INNER JOIN instructors
    -> ON courses.instructor_name = instructors.instructor_name;
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
| course_id | course_name                   | instructor_name | technology | topic             | instructor_id | instructor_name | role            | number_courses |
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering  |             1 | Lis Sulmont     | Data Scientist  |              4 |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming       |             3 | Richie Cotton   | Data Evangelist |              5 |
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation |             4 | Izzy Weber      | Data Engineer   |              2 |
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
3 rows in set (0,00 sec)

Dies ist nur eine Art der Verknüpfung, aber es gibt andere, die je nach Anwendungsfall ebenso nützlich sind. Unser Kurs "Daten verknüpfen in SQL" und unser Spickzettel zu JOINS helfen dir bei den ersten Schritten.

MySQL-Best-Practices

Sicherheitsmaßnahmen

Moderne Datenbanken können Tabellen mit Millionen von Zeilen speichern. Bei so vielen Daten und darauf basierenden Anwendungen ist es wichtig, dass diese Daten sicher sind.

Datenbanken sind häufigen Risiken ausgesetzt, wie z.B. falscher Verwaltung des Datenbankzugriffs, schwachen Passwörtern und SQL-Injections. Um diese Bedrohungen und Schwachstellen zu beseitigen, können eine Reihe von Strategien und Maßnahmen umgesetzt werden, z. B. die Konfiguration von Zugriffsrechten je nach Benutzer, die Erstellung von Triggern in SQL-Servern und die Einführung von Verschlüsselungsmethoden. Ein guter Einstieg in die SQL-Sicherheit ist unser Datenbank-Design-Kurs.

Optimierung der Leistung

Je weiter du in der SQL-Programmierung fortschreitest, desto mehr wirst du erkennen, wie wichtig die Leistung ist. Eine SQL-Abfrage kann auf verschiedene Arten geschrieben werden. Sie funktionieren alle, aber einige sind effizienter als andere.

Es gibt viele Strategien und Tricks, mit denen du die Leistung deines SQL-Codes verbessern kannst. Dazu gehören Unterabfragen und SQL-Klauseln wie WHERE, HAVING und DISTINCT.

Aber Effizienz ist nicht nur eine technische Frage, sondern auch eine Frage der Ordnung und Lesbarkeit. Mit kleinen Änderungen in der Art und Weise, wie du SQL schreibst, wie z.B. der Verwendung von Aliasen und Kommentaren, kannst du einen großen Unterschied machen, der dir und dem Rest deines Teams helfen wird.

Willst du mehr über SQL-Leistungsoptimierung erfahren? Schau dir unseren Kurs zur Verbesserung der Abfrageleistung in SQL Server an

Fazit

Herzlichen Glückwunsch, dass du es bis zum Ende dieses MySQL-Tutorials geschafft hast. Wir hoffen, dass dir diese Einführung in MySQL und seine Möglichkeiten gefallen hat. Wenn du dich für die Verwaltung von Datenbanken interessierst, ist das Erlernen von MySQL ein kluger Schachzug.

Aber das ist erst der Anfang deiner Reise. Wenn du mehr über MySQL und SQL im Allgemeinen erfahren möchtest, bist du bei Datacamp genau richtig. Hier sind einige Ressourcen, die dir den Einstieg erleichtern:

Werde Dateningenieur

Werde ein Dateningenieur durch fortgeschrittenes Python-Lernen

Javier Canales Luna's photo
Author
Javier Canales Luna
LinkedIn

Ich bin freiberufliche Datenanalystin und arbeite mit Unternehmen und Organisationen auf der ganzen Welt an Data-Science-Projekten zusammen. Ich bin auch Ausbilder für Data Science mit mehr als 2 Jahren Erfahrung. Ich schreibe regelmäßig datenwissenschaftliche Artikel in englischer und spanischer Sprache, von denen einige auf etablierten Websites wie DataCamp, Towards Data Science und Analytics Vidhya veröffentlicht wurden. Als Datenwissenschaftlerin mit einem Hintergrund in Politik- und Rechtswissenschaften ist es mein Ziel, an der Schnittstelle von Politik, Recht und Technologie zu arbeiten und die Macht der Ideen zu nutzen, um innovative Lösungen und Erzählungen voranzutreiben, die uns dabei helfen können, dringende Herausforderungen wie die Klimakrise anzugehen. Ich betrachte mich als Autodidakt, der ständig lernt und ein überzeugter Verfechter der Multidisziplinarität ist. Es ist nie zu spät, neue Dinge zu lernen.

Themen

Beginne deine SQL-Reise noch heute!

Zertifizierung verfügbar

Kurs

Einführung in SQL

2 hr
975.8K
Lerne in nur zwei Stunden, wie man relationale Datenbanken mit SQL erstellt und abfragt.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow