Zum Inhalt springen

Mysql/Grundlagen: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „ )“ durch „)“
 
(64 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Einführung in MySQL =
'''Mysql/Grundlagen''' - MySQL-Einführung


MySQL ist die beliebteste Open-Source-Datenbank der Welt. Trotz der leistungsstarken Funktionen von ist MySQL einfach einzurichten und leicht zu verwenden. Im Folgenden finden Sie einige Anleitungen, die Ihnen helfen, MySQL in wenigen Schritten einzurichten und zum Laufen zu bringen. Wir erklären auch, wie Sie einige grundlegende Operationen mit MySQL unter Verwendung des '''mysql''' Clients durchführen können.
== Beschreibung ==
; MySQL ist die weltweit beliebteste Open-Source-Datenbank
* leistungsstarke Funktionen
* einfach einzurichten
* leicht zu verwenden


Anmerkungen
== Anwendungen ==
* Die folgenden Anweisungen gelten nicht unbedingt für Versionen von MySQL, die älter als MySQL 5.7 sind.
=== Anmeldung ===
* Dies sind nur Anweisungen für eine Neuinstallation. Wenn Sie bereits MySQL verwenden und auf eine neuere Version upgraden möchten, lesen Sie bitte [https://dev.mysql.com/doc/refman/8.0/en/upgrading.html MySQL upgraden].


Rechtliche Informationen finden Sie in den [https://dev.mysql.com/doc/mysql-getting-started/en/index.html#legalnotice Rechtlichen Hinweisen ].
=== Datenbanken anzeigen ===
; Vorhandene Datenbanken anzeigen
[https://dev.mysql.com/doc/refman/8.0/en/show-databases.html SHOW DATABASES] Anweisung


Wenn Sie Hilfe bei der Verwendung von MySQL benötigen, besuchen Sie bitte die [http://forums.mysql.com/ MySQL-Foren], wo Sie unter Ihre Probleme mit anderen MySQL-Benutzern diskutieren können.  
<syntaxhighlight lang="sql" highlight="1" copy>
SHOW DATABASES;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
4 rows in set (0.00 sec)
</syntaxhighlight>


== Einige grundlegende Operationen mit MySQL ==
=== Datenbank erstellen ===
; Erstellen einer neuen Datenbank
[https://dev.mysql.com/doc/refman/8.0/en/create-database.html CREATE DATABASE] Anweisung


Hier finden Sie einige grundlegende Operationen mit dem MySQL-Server. [https://dev.mysql.com/doc/refman/8.0/en/sql-statements.html SQL-Anweisungen] erklärt detailliert die reichhaltige Syntax und die Funktionalität der SQL-Anweisungen, die unter dargestellt sind.  
<syntaxhighlight lang="sql" highlight="1" copy>
CREATE DATABASE pets;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
Query OK, 1 row affected (0.01 sec)
</syntaxhighlight>


Vorhandene Datenbanken anzeigen.&nbsp; Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/show-databases.html SHOW DATABASES] Anweisung:
; Prüfen, ob die Datenbank erstellt wurde
<syntaxhighlight lang="sql" highlight="1" line>
SHOW DATABASES;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| pets        |
| sys        |
+--------------------+
5 rows in set (0.00 sec)
</syntaxhighlight>


mysql> SHOW DATABASES;
=== Tabelle erstellen ===
+--------------------+
Erstellen einer Tabelle innerhalb einer Datenbank
| Database          |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)


Erstellen einer neuen Datenbank.&nbsp; Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/create-database.html CREATE DATABASE] Anweisung:
; Datenbank auswählen
Wählen Sie zunächst die Datenbank aus, in der Sie die Tabelle mit einer [https://dev.mysql.com/doc/refman/8.0/en/use.html USE]-Anweisung erstellen möchten
<syntaxhighlight lang="sql" highlight="1" copy>
USE pets
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
Database changed
</syntaxhighlight>


mysql> CREATE DATABASE pets;
Die Anweisung [https://dev.mysql.com/doc/refman/8.0/en/use.html USE] weist MySQL an, <tt>pets</tt> als Standarddatenbank für nachfolgende Anweisungen zu verwenden
Query OK, 1 row affected (0.01 sec)


Prüfen Sie, ob die Datenbank erstellt worden ist:  
; Tabelle erstellen
Als Nächstes erstellen Sie eine Tabelle mit einer [https://dev.mysql.com/doc/refman/8.0/en/create-table.html CREATE TABLE] Anweisung


mysql> SHOW DATABASES;
<syntaxhighlight lang="sql" highlight="1" copy>
+--------------------+
CREATE TABLE cats
  | Database          |
(
  +--------------------+
  id      INT unsigned NOT NULL AUTO_INCREMENT, # Unique ID for the record
  | information_schema |
  name      VARCHAR(150) NOT NULL,        <nowiki># Name of the cat</nowiki>
  | mysql              |
  owner      VARCHAR(150) NOT NULL,        <nowiki># Owner of the cat</nowiki>
  | performance_schema |
  birth      DATE NOT NULL,            <nowiki># Birthday of the cat</nowiki>
| pets              |
  PRIMARY KEY  (id)                <nowiki># Make the id the primary key</nowiki>
| sys                |
);
+--------------------+
</syntaxhighlight>
5 rows in set (0.00 sec)
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
</syntaxhighlight>


Erstellen einer Tabelle innerhalb einer Datenbank.&nbsp; Wählen Sie zunächst die Datenbank aus, in der Sie die Tabelle mit einer [https://dev.mysql.com/doc/refman/8.0/en/use.html USE]-Anweisung erstellen möchten:  
; Datentypen
Datentypen, die Sie in jeder Spalte verwenden können, werden in [https://dev.mysql.com/doc/refman/8.0/en/data-types.html Datentypen] erläutert. [https://dev.mysql.com/doc/refman/8.0/en/primary-key-optimization.html Primärschlüssel-Optimierung] erklärt das Konzept von eines Primärschlüssels
* Was auf ein <tt><nowiki>#</nowiki></tt> in jeder Zeile folgt, ist ein Kommentar, der vom '''mysql''' Client ignoriert wird; siehe [https://dev.mysql.com/doc/refman/8.0/en/comments.html Kommentare] für andere Kommentararten


mysql> USE pets
; Tabelle prüfen
Database changed
Prüfen Sie, ob die Tabelle mit einer [https://dev.mysql.com/doc/refman/8.0/en/show-tables.html SHOW TABLES] Anweisung erstellt wurde
<syntaxhighlight lang="sql" highlight="1" copy>
SHOW TABLES;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
+----------------+
| Tables_in_pets |
+----------------+
| cats      |
+----------------+
1 row in set (0.00 sec)
</syntaxhighlight>


Die Anweisung [https://dev.mysql.com/doc/refman/8.0/en/use.html USE] weist MySQL an, <tt>pets</tt> als Standarddatenbank für nachfolgende Anweisungen zu verwenden. Als nächstes erstellen Sie eine Tabelle mit einer [https://dev.mysql.com/doc/refman/8.0/en/create-table.html CREATE TABLE] Anweisung:
; Informationen anzeigen
[https://dev.mysql.com/doc/refman/8.0/en/explain.html DESCRIBE] zeigt Informationen über alle Spalten einer Tabelle
<syntaxhighlight lang="sql" highlight="1" copy>
DESCRIBE cats;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
+-------+------------------+------+-----+---------+----------------+
| Field | Type      | Null | Key | Default | Extra    |
+-------+------------------+------+-----+---------+----------------+
| id  | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| name | varchar(150)  | NO  |  | NULL  |        |
| owner | varchar(150)  | NO  |  | NULL  |        |
| birth | date      | NO  |  | NULL  |        |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
</syntaxhighlight>


CREATE TABLE cats
=== Datensätze hinzufügen ===
  (
; Hinzufügen von Datensätzen in eine Tabelle
  id              INT unsigned NOT NULL AUTO_INCREMENT, # Unique ID for the record
Verwenden Sie zum Beispiel eine [https://dev.mysql.com/doc/refman/8.0/en/insert.html INSERT...VALUES]-Anweisung
  name            VARCHAR(150) NOT NULL,               <nowiki># Name of the cat</nowiki>
<syntaxhighlight lang="sql" highlight="1" copy>
  owner          VARCHAR(150) NOT NULL,                <nowiki># Owner of the cat</nowiki>
INSERT INTO cats (name, owner, birth) VALUES
  birth          DATE NOT NULL,                        <nowiki># Birthday of the cat</nowiki>
  ('Sandy', 'Lennon', '2015-01-03'),
  PRIMARY KEY    (id)                                  <nowiki># Make the id the primary key</nowiki>
('Cookie', 'Casey', '2013-11-13'),
);
('Charlie', 'River', '2016-05-21');
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
</syntaxhighlight>


Datentypen, die Sie in jeder Spalte verwenden können, werden in [https://dev.mysql.com/doc/refman/8.0/en/data-types.html Datentypen] erläutert. [https://dev.mysql.com/doc/refman/8.0/en/primary-key-optimization.html Primärschlüssel-Optimierung] erklärt das Konzept von eines Primärschlüssels. Was auf ein <tt><nowiki>#</nowiki></tt> in jeder Zeile folgt, ist ein Kommentar, der vom '''mysql''' Client ignoriert wird; siehe [https://dev.mysql.com/doc/refman/8.0/en/comments.html Kommentare] für andere Kommentararten.
Siehe [https://dev.mysql.com/doc/refman/8.0/en/literals.html Literale Werte] für das Schreiben von Strings, Datumswerten und anderen Arten von Literalen in MySQL


Prüfen Sie, ob die Tabelle mit einer [https://dev.mysql.com/doc/refman/8.0/en/show-tables.html SHOW TABLES] Anweisung erstellt wurde:
=== Datensätzen anzeigen ===
; Abrufen von Datensätzen aus einer Tabelle
Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/select.html SELECT]-Anweisung und "*", um alle Spalten abzugleichen
<syntaxhighlight lang="sql" highlight="1" copy>
SELECT * FROM cats;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
+----+---------+--------+------------+
| id | name  | owner | birth  |
+----+---------+--------+------------+
| 1 | Sandy  | Lennon | 2015-01-03 |
| 2 | Cookie | Casey | 2013-11-13 |
| 3 | Charlie | River | 2016-05-21 |
+----+---------+--------+------------+
3 rows in set (0.00 sec)
</syntaxhighlight>


mysql> SHOW TABLES;
Um bestimmte Spalten und Zeilen nach einer bestimmten Bedingung auszuwählen, verwenden Sie die <tt>WHERE</tt>-Klausel
+----------------+
<syntaxhighlight lang="sql" highlight="1" copy>
  | Tables_in_pets |
SELECT name FROM cats WHERE owner = 'Casey';
+----------------+
</syntaxhighlight>
| cats          |
<!-- output -->
+----------------+
<syntaxhighlight lang="text" highlight="" line>
1 row in set (0.00 sec)
+--------+
| name |
+--------+
| Cookie |
+--------+
1 row in set (0.00 sec)
</syntaxhighlight>


[https://dev.mysql.com/doc/refman/8.0/en/explain.html DESCRIBE] zeigt Informationen über alle Spalten einer Tabelle:
=== Datensatz löschen ===
; Löschen eines Datensatzes aus einer Tabelle
Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/delete.html DELETE]-Anweisung, um einen -Datensatz aus einer Tabelle zu löschen, und geben Sie das Kriterium für das Löschen mit der <tt>WHERE</tt>-Klausel an
<syntaxhighlight lang="sql" highlight="1" copy>
DELETE FROM cats WHERE name='Cookie';
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
Query OK, 1 row affected (0.05 sec)
</syntaxhighlight>


mysql> DESCRIBE cats;
<syntaxhighlight lang="sql" highlight="1" copy>
+-------+------------------+------+-----+---------+----------------+
SELECT * FROM cats;
| Field | Type            | Null | Key | Default | Extra          |
</syntaxhighlight>
+-------+------------------+------+-----+---------+----------------+
<!-- output -->
| id    | int(10) unsigned | NO  | PRI | NULL    | auto_increment |
<syntaxhighlight lang="text" highlight="" line>
  | name  | varchar(150)    | NO  |    | NULL    |                |
+----+---------+--------+------------+
| owner | varchar(150)    | NO  |     | NULL    |                |
| id | name  | owner | birth  |
| birth | date            | NO  |    | NULL    |                |
+----+---------+--------+------------+
+-------+------------------+------+-----+---------+----------------+
| 1 | Sandy | Lennon | 2015-01-03 |
4 rows in set (0.00 sec)
| 3 | Charlie | River | 2016-05-21 |
+----+---------+--------+------------+
2 rows in set (0.00 sec)
</syntaxhighlight>


Hinzufügen von Datensätzen in eine Tabelle.&nbsp; Verwenden Sie zum Beispiel eine [https://dev.mysql.com/doc/refman/8.0/en/insert.html INSERT...VALUES]-Anweisung:
=== Spalten hinzufügen/löschen ===
; Hinzufügen oder Löschen einer Spalte aus einer Tabelle
Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/alter-table.html ALTER TABLE...ADD] Anweisung, um eine Spalte hinzuzufügen
* Sie können beispielsweise&nbsp;eine <tt>AFTER</tt> Klausel verwenden, um den Ort der neuen Spalte anzugeben


INSERT INTO cats ( name, owner, birth) VALUES
<syntaxhighlight lang="sql" highlight="1" copy>
  ( 'Sandy', 'Lennon', '2015-01-03' ),
mysql> ALTER TABLE cats ADD gender CHAR(1) AFTER name;
  ( 'Cookie', 'Casey', '2013-11-13' ),
</syntaxhighlight>
  ( 'Charlie', 'River', '2016-05-21' );
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0
</syntaxhighlight>


Siehe [https://dev.mysql.com/doc/refman/8.0/en/literals.html Literale Werte] für das Schreiben von Strings, Datumswerten und anderen Arten von Literalen in MySQL.  
Verwenden Sie [https://dev.mysql.com/doc/refman/8.0/en/explain.html DESCRIBE], um das Ergebnis zu überprüfen
<syntaxhighlight lang="sql" highlight="1" copy>
DESCRIBE cats;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
+--------+------------------+------+-----+---------+----------------+
| Field | Type      | Null | Key | Default | Extra    |
+--------+------------------+------+-----+---------+----------------+
| id  | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| name  | varchar(150)  | NO  |  | NULL  |        |
| gender | char(1)    | YES |  | NULL  |        |
| owner | varchar(150)  | NO  |  | NULL  |        |
| birth | date      | NO  |  | NULL  |        |
+--------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
</syntaxhighlight>


Abrufen von Datensätzen aus einer Tabelle.&nbsp; Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/select.html SELECT]-Anweisung und "*", um alle Spalten abzugleichen:
[https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html SHOW CREATE TABLE] zeigt eine [https://dev.mysql.com/doc/refman/8.0/en/create-table.html CREATE TABLE] Anweisung, die noch mehr Details über die Tabelle liefert


mysql> SELECT * FROM cats;
<syntaxhighlight lang="sql" highlight="1" copy>
+----+---------+--------+------------+
SHOW CREATE TABLE cats\G
  | id | name    | owner  | birth      |
</syntaxhighlight>
  +----+---------+--------+------------+
<!-- output -->
  1 | Sandy  | Lennon | 2015-01-03 |
<syntaxhighlight lang="text" highlight="" line>
  | 2 | Cookie  | Casey  | 2013-11-13 |
*************************** 1
  |  3 | Charlie | River  | 2016-05-21 |
* row ***************************
+----+---------+--------+------------+
    Table: cats
3 rows in set (0.00 sec)
Create Table: CREATE TABLE `cats` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(150) NOT NULL,
  `gender` char(1) DEFAULT NULL,
  `owner` varchar(150) NOT NULL,
  `birth` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
</syntaxhighlight>


Um bestimmte Spalten und Zeilen nach einer bestimmten Bedingung auszuwählen, verwenden Sie die <tt>WHERE</tt>-Klausel:  
Verwenden Sie [https://dev.mysql.com/doc/refman/8.0/en/alter-table.html ALTER TABLE...DROP] um eine Spalte zu löschen
<syntaxhighlight lang="sql" highlight="1" copy>
ALTER TABLE cats DROP gender;
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="text" highlight="" line>
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0
</syntaxhighlight>


mysql> SELECT name FROM cats WHERE owner = 'Casey';
<syntaxhighlight lang="sql" highlight="1" copy>
+--------+
DESCRIBE cats;
| name  |
</syntaxhighlight>
+--------+
<!-- output -->
  | Cookie |
<syntaxhighlight lang="text" highlight="" line>
  +--------+
+-------+------------------+------+-----+---------+----------------+
1 row in set (0.00 sec)
| Field | Type      | Null | Key | Default | Extra    |
+-------+------------------+------+-----+---------+----------------+
| id  | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| name | varchar(150)  | NO  |  | NULL  |        |
| owner | varchar(150)  | NO  |  | NULL |       |
| birth | date      | NO  |  | NULL |        |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
</syntaxhighlight>


Löschen eines Datensatzes aus einer Tabelle.&nbsp; Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/delete.html DELETE]-Anweisung, um einen -Datensatz aus einer Tabelle zu löschen, und geben Sie das Kriterium für das Löschen mit der <tt>WHERE</tt>-Klausel an:
Im [https://dev.mysql.com/doc/refman/8.0/en/tutorial.html Tutorial] finden Sie weitere Anleitungen für die Arbeit mit dem MySQL-Server


mysql> DELETE FROM cats WHERE name='Cookie';
=== Problembehebung ===
Query OK, 1 row affected (0.05 sec)


mysql> SELECT * FROM cats;
+----+---------+--------+------------+
| id | name    | owner  | birth      |
+----+---------+--------+------------+
|  1 | Sandy  | Lennon | 2015-01-03 |
|  3 | Charlie | River  | 2016-05-21 |
+----+---------+--------+------------+
2 rows in set (0.00 sec)


Hinzufügen oder Löschen einer Spalte aus einer Tabelle.&nbsp; Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/alter-table.html ALTER TABLE...ADD] Anweisung, um eine Spalte hinzuzufügen. Sie können z.B. eine <tt>AFTER</tt> Klausel verwenden, um den Ort der neuen Spalte anzugeben:
<noinclude>


mysql> ALTER TABLE cats ADD gender CHAR(1) AFTER name;
== Anhang ==
Query OK, 0 rows affected (0.24 sec)
=== Siehe auch ===
Records: 0  Duplicates: 0  Warnings: 0
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


Verwenden Sie [https://dev.mysql.com/doc/refman/8.0/en/explain.html DESCRIBE], um das Ergebnis zu überprüfen:
=== Dokumentation ===
<!--
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]


mysql> DESCRIBE cats;
; Info-Pages
+--------+------------------+------+-----+---------+----------------+
-->
| Field  | Type            | Null | Key | Default | Extra          |
+--------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO  | PRI | NULL    | auto_increment |
| name  | varchar(150)    | NO  |    | NULL    |                |
| gender | char(1)          | YES  |    | NULL    |                |
| owner  | varchar(150)    | NO  |    | NULL    |                |
| birth  | date            | NO  |    | NULL    |                |
+--------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)


[https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html SHOW CREATE TABLE] zeigt eine [https://dev.mysql.com/doc/refman/8.0/en/create-table.html CREATE TABLE] Anweisung, die noch mehr Details über die Tabelle liefert:
* [https://dev.mysql.com/doc/refman/8.0/en/sql-statements.html SQL-Anweisungen] erklärt detailliert Syntax und Funktionalität der SQL-Anweisungen, die hier vorgestellt werden


mysql> SHOW CREATE TABLE cats\G
=== Links ===
*************************** 1. row ***************************
==== Projekt ====
        Table: cats
==== Weblinks ====
Create Table: CREATE TABLE `cats` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(150) NOT NULL,
  `gender` char(1) DEFAULT NULL,
  `owner` varchar(150) NOT NULL,
  `birth` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)


Verwenden Sie [https://dev.mysql.com/doc/refman/8.0/en/alter-table.html ALTER TABLE...DROP] um eine Spalte zu löschen:
<!--
{{DEFAULTSORT:new}}
{{DISPLAYTITLE:new}}
-->


mysql> ALTER TABLE cats DROP gender;
[[Kategorie:Mysql]]
Query OK, 0 rows affected (0.19 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE cats;
</noinclude>
+-------+------------------+------+-----+---------+----------------+
| Field | Type            | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO  | PRI | NULL    | auto_increment |
| name  | varchar(150)    | NO  |    | NULL    |                |
| owner | varchar(150)    | NO  |    | NULL    |                |
| birth | date            | NO  |    | NULL    |                |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
 
Im [https://dev.mysql.com/doc/refman/8.0/en/tutorial.html Tutorial] finden Sie weitere Anleitungen für die Arbeit mit dem MySQL-Server .

Aktuelle Version vom 17. Juni 2026, 10:40 Uhr

Mysql/Grundlagen - MySQL-Einführung

Beschreibung

MySQL ist die weltweit beliebteste Open-Source-Datenbank
  • leistungsstarke Funktionen
  • einfach einzurichten
  • leicht zu verwenden

Anwendungen

Anmeldung

Datenbanken anzeigen

Vorhandene Datenbanken anzeigen

SHOW DATABASES Anweisung

SHOW DATABASES;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
4 rows in set (0.00 sec)

Datenbank erstellen

Erstellen einer neuen Datenbank

CREATE DATABASE Anweisung

CREATE DATABASE pets;
Query OK, 1 row affected (0.01 sec)
Prüfen, ob die Datenbank erstellt wurde
SHOW DATABASES;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| pets        |
| sys        |
+--------------------+
5 rows in set (0.00 sec)

Tabelle erstellen

Erstellen einer Tabelle innerhalb einer Datenbank

Datenbank auswählen

Wählen Sie zunächst die Datenbank aus, in der Sie die Tabelle mit einer USE-Anweisung erstellen möchten

USE pets
Database changed

Die Anweisung USE weist MySQL an, pets als Standarddatenbank für nachfolgende Anweisungen zu verwenden

Tabelle erstellen

Als Nächstes erstellen Sie eine Tabelle mit einer CREATE TABLE Anweisung

CREATE TABLE cats
(
 id       INT unsigned NOT NULL AUTO_INCREMENT, # Unique ID for the record
 name      VARCHAR(150) NOT NULL,        <nowiki># Name of the cat</nowiki>
 owner      VARCHAR(150) NOT NULL,        <nowiki># Owner of the cat</nowiki>
 birth      DATE NOT NULL,            <nowiki># Birthday of the cat</nowiki>
 PRIMARY KEY   (id)                 <nowiki># Make the id the primary key</nowiki>
);
Datentypen

Datentypen, die Sie in jeder Spalte verwenden können, werden in Datentypen erläutert. Primärschlüssel-Optimierung erklärt das Konzept von eines Primärschlüssels

  • Was auf ein # in jeder Zeile folgt, ist ein Kommentar, der vom mysql Client ignoriert wird; siehe Kommentare für andere Kommentararten
Tabelle prüfen

Prüfen Sie, ob die Tabelle mit einer SHOW TABLES Anweisung erstellt wurde

SHOW TABLES;
+----------------+
| Tables_in_pets |
+----------------+
| cats      |
+----------------+
1 row in set (0.00 sec)
Informationen anzeigen

DESCRIBE zeigt Informationen über alle Spalten einer Tabelle

DESCRIBE cats;
+-------+------------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra     |
+-------+------------------+------+-----+---------+----------------+
| id  | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| name | varchar(150)   | NO  |   | NULL  |        |
| owner | varchar(150)   | NO  |   | NULL  |        |
| birth | date       | NO  |   | NULL  |        |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

Datensätze hinzufügen

Hinzufügen von Datensätzen in eine Tabelle

Verwenden Sie zum Beispiel eine INSERT...VALUES-Anweisung

INSERT INTO cats (name, owner, birth) VALUES
 ('Sandy', 'Lennon', '2015-01-03'),
 ('Cookie', 'Casey', '2013-11-13'),
 ('Charlie', 'River', '2016-05-21');

Siehe Literale Werte für das Schreiben von Strings, Datumswerten und anderen Arten von Literalen in MySQL

Datensätzen anzeigen

Abrufen von Datensätzen aus einer Tabelle

Verwenden Sie eine SELECT-Anweisung und "*", um alle Spalten abzugleichen

SELECT * FROM cats;
+----+---------+--------+------------+
| id | name  | owner | birth   |
+----+---------+--------+------------+
| 1 | Sandy  | Lennon | 2015-01-03 |
| 2 | Cookie | Casey | 2013-11-13 |
| 3 | Charlie | River | 2016-05-21 |
+----+---------+--------+------------+
3 rows in set (0.00 sec)

Um bestimmte Spalten und Zeilen nach einer bestimmten Bedingung auszuwählen, verwenden Sie die WHERE-Klausel

SELECT name FROM cats WHERE owner = 'Casey';
+--------+
| name  |
+--------+
| Cookie |
+--------+
1 row in set (0.00 sec)

Datensatz löschen

Löschen eines Datensatzes aus einer Tabelle

Verwenden Sie eine DELETE-Anweisung, um einen -Datensatz aus einer Tabelle zu löschen, und geben Sie das Kriterium für das Löschen mit der WHERE-Klausel an

DELETE FROM cats WHERE name='Cookie';
Query OK, 1 row affected (0.05 sec)
SELECT * FROM cats;
+----+---------+--------+------------+
| id | name  | owner | birth   |
+----+---------+--------+------------+
| 1 | Sandy  | Lennon | 2015-01-03 |
| 3 | Charlie | River | 2016-05-21 |
+----+---------+--------+------------+
2 rows in set (0.00 sec)

Spalten hinzufügen/löschen

Hinzufügen oder Löschen einer Spalte aus einer Tabelle

Verwenden Sie eine ALTER TABLE...ADD Anweisung, um eine Spalte hinzuzufügen

  • Sie können beispielsweise eine AFTER Klausel verwenden, um den Ort der neuen Spalte anzugeben
mysql> ALTER TABLE cats ADD gender CHAR(1) AFTER name;
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0

Verwenden Sie DESCRIBE, um das Ergebnis zu überprüfen

DESCRIBE cats;
+--------+------------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra     |
+--------+------------------+------+-----+---------+----------------+
| id   | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| name  | varchar(150)   | NO  |   | NULL  |        |
| gender | char(1)     | YES |   | NULL  |        |
| owner | varchar(150)   | NO  |   | NULL  |        |
| birth | date       | NO  |   | NULL  |        |
+--------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

SHOW CREATE TABLE zeigt eine CREATE TABLE Anweisung, die noch mehr Details über die Tabelle liefert

SHOW CREATE TABLE cats\G
*************************** 1
* row ***************************
    Table: cats
Create Table: CREATE TABLE `cats` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(150) NOT NULL,
 `gender` char(1) DEFAULT NULL,
 `owner` varchar(150) NOT NULL,
 `birth` date NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

Verwenden Sie ALTER TABLE...DROP um eine Spalte zu löschen

ALTER TABLE cats DROP gender;
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0
DESCRIBE cats;
+-------+------------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra     |
+-------+------------------+------+-----+---------+----------------+
| id  | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| name | varchar(150)   | NO  |   | NULL  |        |
| owner | varchar(150)   | NO  |   | NULL  |        |
| birth | date       | NO  |   | NULL  |        |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

Im Tutorial finden Sie weitere Anleitungen für die Arbeit mit dem MySQL-Server

Problembehebung

Anhang

Siehe auch



Dokumentation

  • SQL-Anweisungen erklärt detailliert Syntax und Funktionalität der SQL-Anweisungen, die hier vorgestellt werden

Projekt