Suche…


Bemerkungen

MySQL-Logo

MySQL ist ein Open Source-Relational Database Management System (RDBMS), das von der Oracle Corporation entwickelt und unterstützt wird.

MySQL wird unterstützt von einer großen Anzahl von Plattformen, einschließlich Linux - Varianten, OS X und Windows. Es verfügt auch über APIs für eine Vielzahl von Sprachen, darunter C, C ++, Java, Lua, .Net, Perl, PHP, Python und Ruby.

MariaDB ist eine Abspaltung von MySQL mit einem etwas anderen Funktionssatz . Es ist für die meisten Anwendungen vollständig mit MySQL kompatibel.

Versionen

Ausführung Veröffentlichungsdatum
1,0 1995-05-23
3.19 1996-12-01
3.20 1997-01-01
3.21 1998-10-01
3.22 1999-10-01
3.23 2001-01-22
4,0 2003-03-01
4.1 2004-10-01
5,0 2005-10-01
5.1 2008-11-27
5.5 2010-11-01
5.6 2013-02-01
5,7 2015-10-01

Fertig machen

Erstellen einer Datenbank in MySQL

CREATE DATABASE mydb;

Rückgabewert:

Abfrage OK, 1 Zeile betroffen (0,05 Sek.)


Verwenden der erstellten Datenbank mydb

USE mydb;

Rückgabewert:

Datenbank geändert

Erstellen einer Tabelle in MySQL

CREATE TABLE mytable
(
  id              int unsigned NOT NULL auto_increment,
  username        varchar(100) NOT NULL,
  email           varchar(100) NOT NULL,
  PRIMARY KEY     (id)
);

CREATE TABLE mytable erstellt eine neue Tabelle namens mytable .

id int unsigned NOT NULL auto_increment erstellt die id Spalte. Dieser id int unsigned NOT NULL auto_increment weist jedem Datensatz in der Tabelle eine eindeutige numerische ID zu (dh, in diesem Fall dürfen keine zwei Zeilen dieselbe id haben). MySQL weist automatisch eine neue, eindeutiger Wert für das id Feld des Datensatzes (beginnend mit 1).

Rückgabewert:

Abfrage OK, 0 Zeilen betroffen (0,10 Sek.)


Eine Zeile in eine MySQL-Tabelle einfügen

INSERT INTO mytable ( username, email )
VALUES ( "myuser", "[email protected]" );

Beispielrückgabewert:

Abfrage OK, 1 Zeile betroffen (0,06 Sek.)

Die varchar strings können auch mit einfachen Anführungszeichen eingefügt werden:

INSERT INTO mytable ( username, email )
VALUES ( 'username', '[email protected]' );

Aktualisieren einer Zeile in einer MySQL-Tabelle

UPDATE mytable SET username="myuser" WHERE id=8

Beispielrückgabewert:

Abfrage OK, 1 Zeile betroffen (0,06 Sek.)

Der int Wert kann ohne Anführungszeichen in eine Abfrage eingefügt werden. Strings und Daten müssen in einfachen Anführungszeichen eingeschlossen werden ' oder doppelte Anführungszeichen " .


Eine Zeile in einer MySQL-Tabelle löschen

DELETE FROM mytable WHERE id=8

Beispielrückgabewert:

Abfrage OK, 1 Zeile betroffen (0,06 Sek.)

Dadurch wird die Zeile mit der id 8 gelöscht.


Auswählen von Zeilen basierend auf den Bedingungen in MySQL

SELECT * FROM mytable WHERE username = "myuser";

Rückgabewert:

+----+----------+---------------------+
| id | username | email               |
+----+----------+---------------------+
|  1 | myuser   | [email protected]  |
+----+----------+---------------------+

1 Reihe im Satz (0,00 Sek.)


Liste der vorhandenen Datenbanken anzeigen

SHOW databases;

Rückgabewert:

+-------------------+
| Databases         |
+-------------------+
| information_schema|
| mydb              |
+-------------------+

2 Reihen im Satz (0,00 Sek.)

Sie können sich "information_schema" als eine "Master-Datenbank" vorstellen, die Zugriff auf Datenbank-Metadaten bietet.


Tabellen in einer vorhandenen Datenbank anzeigen

SHOW tables;

Rückgabewert:

+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
+----------------+

1 Reihe im Satz (0,00 Sek.)


Alle Felder einer Tabelle anzeigen

DESCRIBE databaseName.tableName;

oder, wenn Sie bereits eine Datenbank verwenden:

DESCRIBE tableName;

Rückgabewert:

+-----------+----------------+--------+---------+-------------------+-------+
| Field     | Type           | Null   | Key     | Default           | Extra |
+-----------+----------------+--------+---------+-------------------+-------+
| fieldname | fieldvaluetype | NO/YES | keytype | defaultfieldvalue |       |
+-----------+----------------+--------+---------+-------------------+-------+

Extra kann zum Beispiel auto_increment enthalten.

Key bezieht sich auf den Schlüsseltyp, der das Feld beeinflussen kann. Primary (PRI), Unique (UNI) ...

n Reihe im Satz (0,00 s)

Dabei ist n die Anzahl der Felder in der Tabelle.


Benutzer erstellen

Zuerst müssen Sie einen Benutzer erstellen und dem Benutzer dann Berechtigungen für bestimmte Datenbanken / Tabellen erteilen. Beim Erstellen des Benutzers müssen Sie außerdem angeben, von wo aus sich dieser Benutzer verbinden kann.

CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_password';

Erstellt einen Benutzer, der nur eine Verbindung auf dem lokalen Computer herstellen kann, auf dem die Datenbank gehostet wird.

CREATE USER 'user'@'%' IDENTIFIED BY 'some_password';

Erstellt einen Benutzer, der von überall her eine Verbindung herstellen kann (außer auf dem lokalen Computer).

Beispielrückgabewert:

Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Privilegien hinzufügen

Gewähren Sie dem Benutzer allgemeine, grundlegende Berechtigungen für alle Tabellen der angegebenen Datenbank:

GRANT SELECT, INSERT, UPDATE ON databaseName.* TO 'userName'@'localhost';

Gewähren Sie dem Benutzer alle Berechtigungen für alle Tabellen in allen Datenbanken (Achtung).

GRANT ALL ON *.* TO 'userName'@'localhost' WITH GRANT OPTION;

Wie oben gezeigt, bezieht sich *.* alle Datenbanken und Tabellen, databaseName.* alle Tabellen der jeweiligen Datenbank. Es ist auch möglich, Datenbank und Tabelle wie databaseName.tableName anzugeben.

WITH GRANT OPTION sollte ausgelassen werden, wenn der Benutzer anderen Benutzern keine Berechtigungen gewähren muss.

Privilegien können entweder sein

ALL

oder eine Kombination der folgenden, jeweils durch Komma getrennt (nicht erschöpfende Liste).

SELECT
INSERT
UPDATE
DELETE
CREATE
DROP

Hinweis

Im Allgemeinen sollten Sie versuchen, die Verwendung von Spalten- oder Tabellennamen, die Leerzeichen enthalten, oder die Verwendung von reservierten Wörtern in SQL zu vermeiden. Beispielsweise sollten Sie Namen wie table oder first name am besten vermeiden.

Wenn Sie solche Namen verwenden müssen, setzen Sie sie zwischen die Trennzeichen "back-tick `` . Zum Beispiel:

CREATE TABLE `table`
(   
   `first name` VARCHAR(30)
);

Eine Abfrage mit den Back-Tick-Trennzeichen in dieser Tabelle könnte lauten:

 SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';

Informationsschema Beispiele

Prozessliste

Dadurch werden alle aktiven und schlafenden Abfragen in dieser Reihenfolge angezeigt.
SELECT * FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;

Dies ist ein wenig detaillierter für Zeitfenster, da es standardmäßig in Sekunden ist

SELECT ID, USER, HOST, DB, COMMAND, 
TIME as time_seconds, 
ROUND(TIME / 60, 2) as time_minutes, 
ROUND(TIME / 60 / 60, 2) as time_hours, 
STATE, INFO
FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;

Gespeicherte Prozedur suchen

Durchsuchen Sie alle Stored Procedures einfach nach Wörtern und Platzhaltern.

SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%word%';


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow