Mysql Script

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

MySQL Kompaktskript

Datenbankverwaltung

  • Datenbank erstellen:
  • create database my_db;
  • Datenbank löschen:
  • drop database my_db;
  • In eine Datenbank wechseln:
  • use my_db;

Tabellenverwaltung

  • Tabelle erstellen:
  • create table my_table (kw int(4), tests int(16), labor int(16), postiv int(16), 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 löschen:
  • delete from my_table where kw=11;

Daten abfragen

  • Alle Werte einer Tabelle anzeigen:
  • select * from my_table;
  • Bestimmte Werte ausgeben:
  • select kw, prozent from my_table where tests > 500000;
  • Sortierte Ausgabe:
  • select * from my_table where tests > 500000 order by labor;
  • Letzten Wert anzeigen:
  • select * from my_table order by kw desc limit 1;

CSV-Import und -Export

  • Tabelle aus CSV-Datei füllen:
  • load data infile "/var/lib/mysql-files/my.csv" into table my_table fields terminated by ',' lines terminated by '\n' ignore 1 rows;
  • Sicherung in CSV-Datei:
  • select * into outfile "/var/lib/mysql-files/backup.csv" fields terminated by ',' enclosed by '"' lines terminated by '\n' from my_table;

Backup und Wiederherstellung

  • Backup einer Datenbank:
  • mysqldump my_db > my_db.sql;
  • Backup aller Datenbanken:
  • mysqldump --all-databases > all_dbs.sql;
  • Wiederherstellung einer Datenbank:
  • mysql my_db < my_db.sql;
  • Wiederherstellung aller Datenbanken:
  • mysql < all_dbs.sql;

Benutzerverwaltung

  • Benutzer anlegen:
  • create user 'tuxman'@'localhost' identified by 'Suxer-88';
  • Benutzerrechte gewähren:
  • 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:
  • update user set password=password('suxer') where user='tuxman';
  • flush privileges;
  • Alle Benutzer anzeigen:
  • select user from mysql.user;

Erweiterte SQL-Funktionen

  • Tabelle mit Primärschlüssel erstellen:
  • create table my_table (kw int(4) primary key, tests int(16), labor int(16), postiv int(16), prozent float);
  • Spalte hinzufügen:
  • alter table my_table add column test_p_1000 int(16);
  • Spalte entfernen:
  • alter table my_table drop column test_p_1000;
  • Spaltenwerte berechnen:
  • alter table my_table add column prozent float default (postiv / tests * 100);
  • Tabelle duplizieren:
  • create table my_new_table like my_table;
  • Datentyp einer Spalte ändern:
  • alter table my_table modify column prozent double;
  • Name einer Spalte ändern:
  • alter table my_table change prozent anteil float;

Gruppierte Abfragen

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

Automatisierung mit Triggern und Events

  • Automatische Protokollierung bei INSERT:
  • create trigger log_insert after insert on my_table for each row insert into log_table (aktion, zeit) values ('INSERT', now());
  • Zeitgesteuerte Bereinigung von Daten:
  • create event cleanup_old_entries on schedule every 1 day do delete from my_table where kw < 10;

JSON-Unterstützung in MySQL 5.7+ und MariaDB

  • JSON-Daten 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

  • Dieses Skript fasst die wichtigsten MySQL-Befehle kompakt zusammen.
  • Die vorgestellten Befehle ermöglichen effizientes Datenbankmanagement.
  • Automatisierung und Optimierung können durch Trigger, Events und JSON-Unterstützung erweitert werden.