Mysql Script: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Dynamische Webseiten mit PHP und MySQL – Prinzip = == Einführung == * Dynamische Webseiten generieren Inhalte zur Laufzeit, abhängig von Benutzereingabe…“) |
|||
| Zeile 1: | Zeile 1: | ||
| − | = | + | = 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: | * 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()); | * create trigger log_insert after insert on my_table for each row insert into log_table (aktion, zeit) values ('INSERT', now()); | ||
| − | * Zeitgesteuerte | + | * Zeitgesteuerte Bereinigung von Daten: |
* 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 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:22 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 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.