SQL

Aus Xinux Wiki
Version vom 15. März 2025, 10:28 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= SQL Kompaktskript = == Einführung in SQL == SQL (Structured Query Language) ist eine Sprache zur Verwaltung und Abfrage relationaler Datenbanken. Sie wird…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

SQL Kompaktskript

Einführung in SQL

SQL (Structured Query Language) ist eine Sprache zur Verwaltung und Abfrage relationaler Datenbanken. Sie wird genutzt, um Daten zu speichern, zu bearbeiten und abzufragen. SQL basiert auf relationalen Konzepten, in denen Daten in Tabellen organisiert sind.

SQL besteht aus verschiedenen Kategorien von Befehlen:

  • DDL (Data Definition Language) – Definition von Datenbankstrukturen, z. B. CREATE, ALTER, DROP.
  • DML (Data Manipulation Language) – Bearbeitung von Daten, z. B. INSERT, UPDATE, DELETE.
  • DQL (Data Query Language) – Abfragen von Daten, z. B. SELECT.
  • DCL (Data Control Language) – Verwaltung von Benutzerrechten, z. B. GRANT, REVOKE.
  • TCL (Transaction Control Language) – Verwaltung von Transaktionen, z. B. COMMIT, ROLLBACK.

SQL wird in vielen relationalen Datenbanksystemen wie MySQL, PostgreSQL, SQLite und Microsoft SQL Server verwendet. Während die Grundlagen universell sind, gibt es systemabhängige Erweiterungen.

Datenbankverwaltung

Datenbank erstellen.

  • create database my_db;

Datenbank löschen.

  • drop database my_db;

In eine Datenbank wechseln.

  • use my_db;

Tabellenverwaltung

Tabelle mit mehreren Spalten erstellen.

  • create table my_table (kw int, tests int, labor int, postiv int, prozent float);

Beschreibung einer Tabelle anzeigen.

  • desc my_table;

Tabelle löschen.

  • drop table my_table;

Alle Werte in einer Tabelle löschen.

  • truncate table my_table;

Daten einfügen und bearbeiten

Werte in eine Tabelle einfügen.

  • insert into my_table values(11,127457,114,7582,5.95);

Wert in einer Reihe ändern.

  • update my_table set labor=154 where kw=14;

Reihe aus der Tabelle löschen.

  • delete from my_table where kw=11;

Daten abfragen

Alle Werte einer Tabelle anzeigen.

  • select * from my_table;

Bestimmte Spalten ausgeben, wenn eine Bedingung erfüllt ist.

  • select kw, prozent from my_table where tests > 500000;

Sortierte Ausgabe der Ergebnisse.

  • select * from my_table where tests > 500000 order by labor;

Letzten Wert aus der Tabelle ausgeben.

  • select * from my_table order by kw desc limit 1;

Gruppierte Abfragen

Summenberechnung nach Gruppen.

  • select sum(AnzahlFall), Altersgruppe from rki_csv where Landkreis = 'SK Zweibrücken' group by Altersgruppe;

Transaktionen in SQL

Transaktionen ermöglichen es, mehrere SQL-Operationen als eine Einheit zu behandeln.

  • start transaction;
  • update my_table set labor=200 where kw=15;
  • commit; -- Änderungen dauerhaft speichern
  • rollback; -- Änderungen verwerfen

Automatisierung mit Triggern und Events

Automatische Protokollierung von Einträgen aktivieren.

  • create trigger log_insert after insert on my_table for each row insert into log_table (aktion, zeit) values ('INSERT', now());

Regelmäßige Bereinigung alter Daten durch ein Event.

  • create event cleanup_old_entries on schedule every 1 day do delete from my_table where kw < 10;

Benutzerverwaltung

Neuen Benutzer anlegen.

  • create user 'tuxman'@'localhost' identified by 'Suxer-88';

Benutzerrechte für eine Datenbank vergeben.

  • grant all privileges on my_db.* to 'tuxman'@'localhost';
  • flush privileges;

Benutzerrechte entziehen.

  • revoke all privileges on my_db.* from 'tuxman'@'localhost';
  • flush privileges;

Passwort eines Benutzers ändern.

  • alter user 'tuxman'@'localhost' identified by 'neuesPasswort';

Liste aller Benutzer ausgeben.

  • select user from information_schema.users;

JSON-Unterstützung in SQL

Einige moderne relationale Datenbanken unterstützen JSON-Felder für semi-strukturierte Daten.

JSON-Daten in einer Tabelle speichern.

  • create table json_test (id int auto_increment primary key, daten json);

Daten aus JSON-Feld extrahieren.

  • select json_extract(daten, '$.name') from json_test;

Fazit

SQL ist eine universelle Sprache zur Verwaltung relationaler Datenbanken. Sie ermöglicht effizientes Speichern, Abrufen und Bearbeiten von Daten und wird in verschiedenen Datenbanksystemen mit leichten Abweichungen verwendet. Die Kombination aus SQL-Grundlagen und spezifischen Erweiterungen macht sie vielseitig einsetzbar.