Einführung in SQL und Datenbankdesign

Jul 19, 2024

Vollständiger SQL-Datenbankkurs für Anfänger

Einführung

  • SQL (Structured Query Language): Sprache zur Interaktion mit relationalen Datenbankverwaltungssystemen.
  • Relationale Datenbankverwaltungssysteme (RDBMS): Softwareanwendungen zur Erstellung und Verwaltung von Datenbanken.
  • Ziel des Kurses: Von den grundlegenden Konzepten bis hin zu fortgeschrittenen Abfragetechniken, Schema-Designs und mehr zu lernen.
  • Website der Giraffe Academy: Code und zusätzliche Ressourcen verfügbar unter GiraffeAcademy.com.

Grundkonzepte

  • Was ist eine Datenbank?
    • Sammlung zusammengehöriger Informationen.
    • Beispiele: Telefonbuch, Einkaufsliste.
    • Kann auf Papier, im Kopf oder auf einem Computer gespeichert werden.
  • Vorteile der Verwendung eines Computers für Datenbanken:
    • Umgang mit großen Informationsmengen.
    • Datensicherheit.
    • Backup- und Duplizierungsfähigkeiten.

Datenbankverwaltungssysteme (DBMS)

  • DBMS: Softwareprogramm, das beim Erstellen und Verwalten einer Datenbank auf einem Computer hilft.
  • Funktionen des DBMS: Sicherheitsverwaltung, Backup, Datenimport und -export.

Arten von Datenbanken

  • Relational:
    • Organisieren Daten in Tabellen (Zeilen und Spalten).
    • Verwendung von Primärschlüsseln zur Identifizierung eindeutiger Zeilen.
    • Beispiele für RDBMS: MySQL, PostgreSQL, Oracle.
  • Nicht-relational (NoSQL): Organisieren Daten auf andere Weise (JSON, Graphen, Schlüssel-Wert-Paare).
    • Beispiele für NoSQL-DBMS: MongoDB, DynamoDB.

Strukturierte Abfragesprache (SQL)

  • SQL: Sprache zur Interaktion mit RDBMS.
    • Verwendet für CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen).
  • Funktionen von SQL:
    • DQL (Data Query Language): Datenabfragen.
    • DDL (Data Definition Language): Definition von Datenschemata.
    • DCL (Data Control Language): Zugriffskontrolle auf Daten.
    • DML (Data Manipulation Language): Einfügen, Aktualisieren, Löschen von Daten.
  • Grundlegende Abfragen:
    • SELECT: Spezifische Daten abrufen.
    • WHERE: Filter für spezifischere Abfragen.
    • ORDER BY: Ergebnisse nach bestimmten Spalten sortieren.
    • LIMIT: Begrenzung der abgerufenen Ergebnisse.
    • Beispiel: SELECT * FROM students WHERE major='Biologie';

Installation von MySQL

  • Download und Installation: Verwendung des MySQL-Installationsprogramms.
  • Post-Installationskonfiguration: Erstellen von Datenbanken, Benutzern und Konfigurieren von Ports.
  • Abfragewerkzeuge: Installation von PopSQL zur Erleichterung des Schreibens und Ausführens von SQL-Abfragen.

Erstellung von Tabellen

  • Datentypen: INT, DECIMAL, VARCHAR, DATE, TIMESTAMP, BLOB.
  • Tabellenstruktur: Definition von Spalten mit ihren Datentypen und Primärschlüsseln.
  • SQL zum Erstellen von Tabellen: CREATE TABLE student (student_id INT PRIMARY KEY, name VARCHAR(20), major VARCHAR(20));

Einfügen, Aktualisieren und Löschen von Daten

  • Daten einfügen: INSERT INTO student (student_id, name, major) VALUES (1, 'Jack', 'Biologie');
  • Daten aktualisieren: UPDATE student SET major='Biochemie' WHERE student_id=1;
  • Daten löschen: DELETE FROM student WHERE student_id=1;

Komplexe Abfragen und Beziehungen

  • Verschachtelte Abfragen: Verwendung von Unterabfragen, um komplexere Ergebnisse zu erzielen.
  • Joins: Kombination von Zeilen aus zwei oder mehr Tabellen basierend auf verwandten Spalten.
    • Arten von Joins: INNER JOIN, LEFT JOIN, RIGHT JOIN.
  • Aggregatfunktionen:
    • SUM: Summe der Werte einer Spalte.
    • AVG: Durchschnitt der Werte einer Spalte.
    • COUNT: Anzahl der Zeilen.

Schema-Design und Beziehungen

  • Entity-Relationship-Diagramme (ER): Werkzeug zum Entwerfen und Visualisieren von Datenbankschemata.
    • Entitäten und Attribute: Identifizierung der Elemente und ihrer Eigenschaften.
    • Beziehungen: Definition, wie die Entitäten miteinander in Beziehung stehen.
    • Kardinalitäten: Definition, wie viele Elemente einer Entität mit Elementen einer anderen Entität verknüpft sein können.
  • Umwandlung von ER in Datenbankschema: Prozess der Umwandlung eines ER-Diagramms in eine Darstellung in Tabellen und Spalten.