Mysql Script: Unterschied zwischen den Versionen
| Zeile 2: | Zeile 2: | ||
== Datenbankverwaltung == | == Datenbankverwaltung == | ||
| − | + | Datenbank erstellen. | |
* create database my_db; | * create database my_db; | ||
| − | + | Datenbank löschen. | |
* drop database my_db; | * drop database my_db; | ||
| − | + | In eine Datenbank wechseln. | |
* use my_db; | * use my_db; | ||
== Tabellenverwaltung == | == Tabellenverwaltung == | ||
| − | + | Tabelle mit mehreren Spalten erstellen. | |
* create table my_table (kw int(4), tests int(16), labor int(16), postiv int(16), prozent float); | * 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; | * desc my_table; | ||
| − | + | Tabelle löschen. | |
* drop table my_table; | * drop table my_table; | ||
| − | + | Alle Werte in einer Tabelle löschen. | |
* truncate table my_table; | * truncate table my_table; | ||
== Daten einfügen und bearbeiten == | == Daten einfügen und bearbeiten == | ||
| − | + | Werte in eine Tabelle einfügen. | |
* insert into my_table values(11,127457,114,7582,5.95); | * 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; | * update my_table set labor=154 where kw=14; | ||
| − | + | Reihe aus der Tabelle löschen. | |
* delete from my_table where kw=11; | * delete from my_table where kw=11; | ||
== Daten abfragen == | == Daten abfragen == | ||
| − | + | Alle Werte einer Tabelle anzeigen. | |
* select * from my_table; | * select * from my_table; | ||
| − | + | Bestimmte Spalten ausgeben, wenn eine Bedingung erfüllt ist. | |
* select kw, prozent from my_table where tests > 500000; | * select kw, prozent from my_table where tests > 500000; | ||
| − | + | Sortierte Ausgabe der Ergebnisse. | |
* select * from my_table where tests > 500000 order by labor; | * 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; | * select * from my_table order by kw desc limit 1; | ||
== CSV-Import und -Export == | == CSV-Import und -Export == | ||
| − | + | Daten aus einer CSV-Datei in die Tabelle laden. | |
* load data infile "/var/lib/mysql-files/my.csv" into table my_table fields terminated by ',' lines terminated by '\n' ignore 1 rows; | * load data infile "/var/lib/mysql-files/my.csv" into table my_table fields terminated by ',' lines terminated by '\n' ignore 1 rows; | ||
| − | + | Daten aus einer Tabelle als CSV-Datei speichern. | |
* select * into outfile "/var/lib/mysql-files/backup.csv" fields terminated by ',' enclosed by '"' lines terminated by '\n' from my_table; | * 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 und Wiederherstellung == | ||
| − | + | Backup einer Datenbank erstellen. | |
* mysqldump my_db > my_db.sql; | * mysqldump my_db > my_db.sql; | ||
| − | + | Backup aller Datenbanken erstellen. | |
* mysqldump --all-databases > all_dbs.sql; | * mysqldump --all-databases > all_dbs.sql; | ||
| − | + | Backup einer einzelnen Datenbank wiederherstellen. | |
* mysql my_db < my_db.sql; | * mysql my_db < my_db.sql; | ||
| − | + | Backup aller Datenbanken wiederherstellen. | |
* mysql < all_dbs.sql; | * mysql < all_dbs.sql; | ||
== Benutzerverwaltung == | == Benutzerverwaltung == | ||
| − | + | Neuen Benutzer anlegen. | |
* create user 'tuxman'@'localhost' identified by 'Suxer-88'; | * create user 'tuxman'@'localhost' identified by 'Suxer-88'; | ||
| − | + | Benutzerrechte für eine Datenbank vergeben. | |
* grant all privileges on my_db.* to 'tuxman'@'localhost'; | * grant all privileges on my_db.* to 'tuxman'@'localhost'; | ||
* flush privileges; | * flush privileges; | ||
| − | + | Benutzerrechte entziehen. | |
* revoke all privileges on my_db.* from 'tuxman'@'localhost'; | * revoke all privileges on my_db.* from 'tuxman'@'localhost'; | ||
* flush privileges; | * flush privileges; | ||
| − | + | Passwort eines Benutzers ändern. | |
* update user set password=password('suxer') where user='tuxman'; | * update user set password=password('suxer') where user='tuxman'; | ||
* flush privileges; | * flush privileges; | ||
| − | + | Liste aller Benutzer ausgeben. | |
* select user from mysql.user; | * select user from mysql.user; | ||
== Erweiterte SQL-Funktionen == | == 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); | * create table my_table (kw int(4) primary key, tests int(16), labor int(16), postiv int(16), prozent float); | ||
| − | + | Neue Spalte zur Tabelle hinzufügen. | |
* alter table my_table add column test_p_1000 int(16); | * alter table my_table add column test_p_1000 int(16); | ||
| − | + | Spalte aus einer Tabelle entfernen. | |
* alter table my_table drop column test_p_1000; | * alter table my_table drop column test_p_1000; | ||
| − | + | Berechnete Spalte hinzufügen. | |
* alter table my_table add column prozent float default (postiv / tests * 100); | * alter table my_table add column prozent float default (postiv / tests * 100); | ||
| − | + | Tabelle duplizieren. | |
* create table my_new_table like my_table; | * create table my_new_table like my_table; | ||
| − | + | Datentyp einer Spalte ändern. | |
* alter table my_table modify column prozent double; | * alter table my_table modify column prozent double; | ||
| − | + | Spaltennamen ändern. | |
* alter table my_table change prozent anteil float; | * alter table my_table change prozent anteil float; | ||
== Gruppierte Abfragen == | == Gruppierte Abfragen == | ||
| − | + | Summenberechnung nach Gruppen. | |
* select sum(AnzahlFall), Altersgruppe from rki_csv where Landkreis = 'SK Zweibrücken' group by Altersgruppe; | * select sum(AnzahlFall), Altersgruppe from rki_csv where Landkreis = 'SK Zweibrücken' group by Altersgruppe; | ||
== Automatisierung mit Triggern und Events == | == 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()); | * 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; | * 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-Unterstützung in MySQL 5.7+ und MariaDB == | ||
| − | + | JSON-Daten in einer Tabelle speichern. | |
* create table json_test (id int auto_increment primary key, daten json); | * 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; | * select json_extract(daten, '$.name') from json_test; | ||
== Fazit == | == 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. | |
| − | |||
| − | |||
Version vom 15. März 2025, 10:25 Uhr
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 mit mehreren Spalten 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 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;
CSV-Import und -Export
Daten aus einer CSV-Datei in die Tabelle laden.
- load data infile "/var/lib/mysql-files/my.csv" into table my_table fields terminated by ',' lines terminated by '\n' ignore 1 rows;
Daten aus einer Tabelle als CSV-Datei speichern.
- 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 erstellen.
- mysqldump my_db > my_db.sql;
Backup aller Datenbanken erstellen.
- mysqldump --all-databases > all_dbs.sql;
Backup einer einzelnen Datenbank wiederherstellen.
- mysql my_db < my_db.sql;
Backup aller Datenbanken wiederherstellen.
- mysql < all_dbs.sql;
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.
- update user set password=password('suxer') where user='tuxman';
- flush privileges;
Liste aller Benutzer ausgeben.
- 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);
Neue Spalte zur Tabelle hinzufügen.
- alter table my_table add column test_p_1000 int(16);
Spalte aus einer Tabelle entfernen.
- alter table my_table drop column test_p_1000;
Berechnete Spalte hinzufügen.
- 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;
Spaltennamen ändern.
- alter table my_table change prozent anteil float;
Gruppierte Abfragen
Summenberechnung nach Gruppen.
- select sum(AnzahlFall), Altersgruppe from rki_csv where Landkreis = 'SK Zweibrücken' group by Altersgruppe;
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;
JSON-Unterstützung in MySQL 5.7+ und MariaDB
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
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.