SQL - wichtige Befehle für die Kommandozeile

Holger Weischenberg | 30.06.2014
Dieser Beitrag ist über ein Jahr alt. Im Internet ist das eine Ewigkeit.

SQL-Befehle für Noobs

Eine kurze Übersicht über die wichtigsten Befehle:

mysql -h hostname -u username -p

Verbindet mit dem MySQL-Server

SHOW DATABASES;

MySQL-Datenbanken anzeigen

DROP DATABASE datenbankname;

MySQL-Datenbank löschen

CREATE DATABASE datenbankname;

MySQL-Datenbank erstellen

USE datenbankname;

Datenbank verwenden

SHOW TABLES;

Tabellen in einer Datenbank anzeigen

DESCRIBE namedertabelle;

Einzelne Tabelle mit Spalten anzeigen

DROP TABLE namedertabelle;

Tabelle in einer Datenbank löschen

Exkurs Tabellen in einer Datenbank erstellen:

CREATE TABLE namedertabelle (

Erste Zeile startet Befehlzeile zur Erstellung der Datenbank mit oben angebenen Namen, da kein ; am Ende des Befehls steht, erwartet SQL weitere Angaben zur Tabelle

NameSpalte TypSpalte SpaltenDetails,

Erste Spalte - ein Beispiel:

ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

Beispiel für eine ID-Spalte:

  1. ID INT - Eine Spalte mit dem Namen ID, die eine Zahl INT enthält (integer, ganze Zahl).

  2. NOT NULL - Die Spalte darf nicht leer bleiben

  3. AUTO_INCREMENT - SQL vergibt selbst einen Wert, der um eins höher als der Vorhergehende ist

  4. PRIMARY KEY - Alle Werte müssen eindeutig sein

Zweite Spalte - ein Beispiel für eine Text-Spalte:

NameSpalte TEXT,

Dritte Spalte - ein Beispiel für eine Spalte mit Datum:

NameSpalte DATE NOT NULL);

Da es die letzte Spalte in der Tabelle sein soll, beendet es die Eingabe mit einem Schließen der Klammer und einem Abschließenden Semikolon );

Exkurs Datenbanksätze in eine Tabelle einfügen - am Beispiel TEXT und DATE Spalte:

INSERT INTO namedertabelle SET
Namederspalte = "Hier steht der Text, der in der Tabelle aufgenommen werden soll",
Namederspalte = "2014-06-30";

Exkurs Tabellen in eine Datenbank einfügen:

mysql -u username -p databasename < filename.sql

 

Development

Hier aus der IT OTRS FAQ, der **** von odcheck ;-)

in der Kommandozeile kann man sich dann anschließend als Administrator mit folgendem Befehl anmelden:

mysql -u root -p

Danach sollte man eine Befehlszeile des MySQL-Servers sehen mit "mysql> ". Wer nun sehen möchte, welche Datenbanken angelegt sind, kann dies mit folgendem Befehl tun:

show databases;

(Das Semikolon (;) am Schluss ist ganz wichtig, da der Server nur so den Befehl als beendet erkennt)

Datenbanken kreieren kann man auch ganz leicht indem man einfach folgendes Kommando benutzt:

create database NEUE_DATENBANK;

Jetzt benötigen wir noch einen oder mehrere Benutzer, die auf die neu geschaffene Datenbank zugreifen dürfen. Dazu wird ein erst ein neuer Benutzer erstellt und ihm im Anschluss ein Passwort zugewiesen (beim Passwort muss man aufpassen, da man die Anführungszeichen nicht weglassen darf):

create user NEUER_BENUTZER@localhost;
set password for NEUER_BENUTZER@localhost = password('NEUES_PASSWORT');

Zu guter letzt müssen wir nur noch dem Benutzer die Datenbank zuweisen. Dies kann man mit folgendem Befehl machen, der alle Rechte (grant all) dem neuen Benutzer zuweist.

grant all on NEUE_DATENBANK.* to NEUER_BENUTZER@localhost;

Fertig ist die frisch gebackene Datenbank mit Benutzern die auch noch darauf zugreifen dürfen.

Es geht natürlich auch die Kurzform in zwei Zeilen.

create database busfahrer;
grant all privileges on busfahrer.* to 'datenbankbenutzer'@'localhost' identified by 'Passwort' with grant option;

Oder mal den alten Mist rausschmeissen, nebst dem von Dir genannten drop database... auch mal die User:

Vorhandene User auflisten:

mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | 127.0.0.1 |
| root             | ::1       |
| godebiangouserdb | localhost |
| blabuser         | localhost |
| dbsupeuser       | localhost |
| webx1            | localhost |
| webx3            | localhost |
| webx4            | localhost |
| webx6            | localhost |
| webx8            | localhost |
| sowiesodbuser    | localhost |
| piwikuserdb      | localhost |
| root             | localhost |
| looserddbuser    | localhost |
| vonboedefelduser | localhost |
| xyzuseryzrs      | localhost |
+------------------+-----------+
16 rows in set (0.00 sec)
mysql> DROP USER 'webx6'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Jo - have fun with this!

Kommentieren