Wichtigsten Linux- und SQL-Befehle für MySQL

Damit der Einstieg in MySQL auf ein Linux-Umgebung erleichtert wird, hier ist eine Liste von Linux- und SQL-Befehle. Diese Liste ist nicht komplett, wird aber mit der Zeit ergänzt.

Datenbanken erstellen, anzeigen, auswählen, löschen, verlassen, …
CREATE DATABASE datenbank_name; Datenbank erstellen
SHOW DATABASES; Datenbanken anzeigen
use datenbank_name Datenbank auswählen
DROP DATABASE datenbank_name Datenbank löschen
DROP DATABASE IF EXISTS datenbank_name; Datenbank löschen
status Status der Server anzeigen
help Hilfe anzeigen
exit Datenbank verlassen
quit Datenbank verlassen
Tabelle erstellen, anzeigen, ändern, löschen, prüfen
CREATE TABLE tabelle_name (

id INT AUTO_INCREMENT PRIMARY KEY, spalte1 varchar(50)  NOT NULL);

Tabelle erstellen
SHOW TABLES FROM datenbank_name; Tabellen anzeigen
DROP TABLE tabelle_name; Tabelle löschen
DROP TABLE IF EXISTS tabelle_name; Tabelle löschen
ALTER TABLE tabelle_name ADD COLUMN (spalte2 char(50)); Spalte hinzufügen
ALTER TABLE tabelle_name MODIFY (spalte2 varchar(50)); Datentyp einer Spalte ändern
ALTER TABLE tabelle_name DROP COLUMN spalte2; Spalte löschen
CHECK Table tabelle_name QUICK Prüft Tabelle nach Fehler
CHECK Table tabelle_name FAST Prüft Tabelle nach Fehler,
CHECK Table tabelle_name CHANGED Prüft Tabelle nach Fehler
CHECK Table tabelle_name MEDIUM Prüft Tabelle nach Fehler
CHECK Table tabelle_name EXTENDED Prüft Tabelle nach Fehler
Daten hinzufügen, anzeigen, ändern, löschen
INSERT INTO tabelle_name (spalte1, spalte2) VALUES (wert1, wert2); Daten hinzufügen
SELECT * FROM tabelle_name; Alle Daten anzeigen
UPDATE tabelle_name SET spalte1 = neuer_wert1 WHERE id = 1; Daten ändern
DELETE FROM tabelle_name WHERE id = 1; Bestimmte Daten löschen
DELETE FROM tabelle_name; Alle Daten löscht
Bestimmte Daten Anzeigen
SELECT spalte1, spalte2 FROM tabelle_name; Daten im Spalte1 und Spalte2 Anzeigen
SELECT DISTINCT spalte1 FROM tabelle_name; keine doppelten Zeilen anzeigen
SELECT * FROM tabelle_name WHERE id = 1; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE spalte1 = ‘blabla’; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE id BETWEEN 10 AND 20; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE spalte1 LIKE ‘%blabla%’; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE spalte1 LIKE ‘w__t’; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE id > 10 AND id < 20; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE id = 10 OR id = 20; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE id < 10 AND NOT id = 5; Bestimmte Daten anzigen
SELECT * FROM tabelle_name WHERE id < 10 OR (spalte1 = ‘blabla’ AND id = 5); Bestimmte Daten anzigen
Daten Anzeigen mittel Aggregatfunktionen
SELECT COUNT(*) FROM tabelle_name WHERE spalte1 = ‘blabla’; Zeilen zählen, wo das Wort blabla taucht
SELECT SUM(preis) FROM tabelle_name; Summierung
SELECT AVG(preis) FROM tabelle_name; Durchschnitt
SELECT MAX(preis) FROM tabelle_name; Maximal-wert
SELECT MIN(preis) FROM tabelle_name; Minimal-wert
SELECT spalte1, COUNT(*) FROM tabelle_name GROUP BY spalte1; Gruppierung
Daten aufsteigend oder absteigend anzeigen
SELECT * FROM tabelle_name ORDER BY spalte1; aufsteigend
SELECT * FROM tabelle_name ORDER BY spalte1 ASC; aufsteigend
SELECT * FROM tabelle_name ORDER BY spalte1 DESC; absteigend
SELECT * FROM tabelle_name ORDER BY spalte1, spalte2; aufsteigend

Verwandte Artikel:

Dieser Beitrag wurde unter Linux abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

23 Antworten auf Wichtigsten Linux- und SQL-Befehle für MySQL

  1. admin sagt:

    Datenbank sichern:
    mysqldump -u BENUTZERNAME -p PASSWORD DATENBANKNAME > daten300710.SQL

    Datenbank wiederherstellen:
    mysql -u BENUTZERNAME -p PASSWORD DATENBANKNAME < daten300710.SQL

  2. admin sagt:

    Bestimmte Tabelle sichern:
    mysqldump -u BENUTZERNAME -p PASSWORD DATENBANKNAME TABELLENAME > tabellenameBackup.SQL

    Bestimmte Tabelle mit Linux-Befehl ‘cat’ wiederherstellen:
    cat tabellenameBackup.SQL | mysql -u root DATENBANKNAME

  3. admin sagt:

    Mehrere Datenbanken sichern:
    mysqldump -u BENUTZERNAME -p PASSWORD -B DATENBANKNAME1 DATENBANKNAME2 DATENBANKNAME3 > alle_datenbanken_backup.SQL

  4. admin sagt:

    Alle Datenbanken sichern:
    mysqldump -u BENUTZERNAME -p PASSWORD -A > alle_datenbanken_backup.SQL

  5. admin sagt:

    Datenbank-Struktur sichern (also ohne Daten)
    mysqldump -d -u BENUTZERNAME -p PASSWORD DATENBANKNAME > strukturback.SQL

  6. admin sagt:

    Datenbank komprimiert sichern:
    mysqldump -u BENUTZERNAME -p PASSWORD DATENBANKNAME | gzip -9 > daten300710.SQL.gz

    Komprimierte Datenbank wiederherstellen:
    gunzip < daten300710.SQL.gz | mysql -u BENUTZERNAME -p PASSWORD DATENBANKNAME

  7. admin sagt:

    Teil eines Strings zurückgeben:

    SELECT SUBSTRING_INDEX(‘www.wissensrallye.de’, ‘.’, 2);
    -> ‘www.wissensrallye’

    SELECT SUBSTRING_INDEX(‘www.wissensrallye.de’, ‘.’, -1);
    -> ‘de’

  8. admin sagt:

    Mysql Bash History findet man unter:
    /HOME/USERNAME/.mysql_history

  9. admin sagt:

    Mehrere String verbinden und ausgeben
    SELECT CONCAT(‘www’ , ‘.’ , ‘wissensrallye’ , ‘.’ , ‘de’);
    -> http://www.wissensrallye.de

  10. admin sagt:

    Daten von mehrere Tabellen, die miteinander verbunden sind, ausgeben:

    SELECT * FROM TABELLE1, TABELLE2 WHERE TABELLE1.id=TABELLE2.id;

    SELECT * FROM TABELLE1 LEFT JOIN TABELLE2 USING (id);

    SELECT * FROM TABELLE1 LEFT JOIN TABELLE2 ON TABELLE1.id=TABELLE2.id;

  11. admin sagt:

    Struktur einer Tabelle ausgeben:
    desc TABELLENAME;

  12. admin sagt:

    Daten von ein Textdatei in Datenbanktabelle importieren:

    Fallbeispiel:
    /tmp/herstellerliste.txt enthält folgende Daten:
    7;APRILIA;NULL;2010-10-04 17:30:01;NULL
    8;AWO;NULL;2010-10-04 17:30:01;NULL
    9;BENELLI;NULL;2010-10-04 17:30:01;NULL
    10;BIMOTA;NULL;2010-10-04 17:30:01;NULL

    Der Befehl zum Importieren lautet:
    mysql> load data infile “/tmp/herstellerliste.txt” into table manufacturers fields terminated by “;”

    PS:
    Der Text Datei muss genau im Verzeichnis /tmp/ liegen
    Die Tabelle manufacturers enthält genau 5 Spalten,

  13. admin sagt:

    Bestimmte Daten von eine Tabelle in ein andere Tabelle kopieren:

    INSERT INTO tabelle_yyy (spalte_y1, spalte_y2) select spalte_x1, spalte_x2 from tabelle_xxx;
    dh. hier werden die Daten der spalte_x1 und spalte_x2 der Tabelle tabelle_xxx in spalte_y1 und spalte_y2 der Tabelle tabelle_yyy kopiert.

  14. admin sagt:

    SHOW PROCESSLIST
    Es spricht für sich selbst

  15. admin sagt:

    Subselect / Subquery
    SELECT Spalte1 FROM Tabelle1 WHERE Spalte2 = (SELECT MIN(Spalte3) FROM Tabelle2)
    SELECT Spalte2 FROM Tabelle1 WHERE Spalte2 IN (SELECT Spalte3 FROM Tabelle2)
    SELECT Spalte3 FROM Tabelle1 WHERE Spalte3 NOT IN (SELECT Spalte3 FROM Tabelle2)

  16. admin sagt:

    Horizontale Ausgabe einer Tabelle:
    select * from products where products_id=”187548″ limit 4\G;

  17. admin sagt:

    Nur bestimmte Daten einer Tabelle sichern
    mysqldump -t -uc8xtcommerce -pUfHdRL c8xtcommerce content_manager
    - -where=”content_group=4″ > content_manager_impressum_Backup.SQL

    -t keine Tabelle (ohne -t ist gefährlich, da beim Wiederherstellen die Tabelle neu erstellt wird, und dadurch wird die Alte gelöscht und ein neue erstellt, somit werden wir alle Daten der Tabelle verlieren).

  18. admin sagt:

    Der Unterschied zwischen REPLACE und INSERT
    REPLACE funktioniert genau so wie INSERT. Der einzige Unterschied ist, dass der alter Datensatz gelöscht wird, bevor der neue eingefügt wird, wenn dieser gleiche Wert wie der neuer Datensatz für einen Primärschlüssel oder einen eindeutigen Index hat.

  19. admin sagt:

    Der Unterschied zwischen REPLACE und INSERT

    REPLACE funktioniert genau so wie INSERT. Der einzige Unterschied ist, dass der alter Datensatz gelöscht wird, bevor der neue eingefügt wird, wenn dieser gleiche Wert wie der neuer Datensatz für einen Primärschlüssel oder einen eindeutigen Index hat.

  20. admin sagt:

    PASSWORD ändern:
    mysql -u BENUTZERNAME -p PASS;
    use mysql;
    update user set password=PASSWORD(“NEUPASSW”)
    where User=”BENUTZERNAME”;
    mysql> flush privileges;

  21. admin sagt:

    Datenbank Sichern (die bessere Variante)

    mysqldump - -databases -uroot persons > persons.sql

    Mit der Option – -databases wird beim Wiederherstellen der Datenbank der Datenbank selbst erstellt falls diese nicht existiert.

    D.h. der Wiederherstellungsskript enthält schon das Befehl “create database”

Hinterlasse eine Antwort