Mysql/Grundlagen: Unterschied zwischen den Versionen
K Textersetzung - „ )“ durch „)“ |
|||
| (65 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''Mysql/Grundlagen''' - MySQL-Einführung | |||
MySQL ist die beliebteste Open-Source-Datenbank | == Beschreibung == | ||
; MySQL ist die weltweit beliebteste Open-Source-Datenbank | |||
* leistungsstarke Funktionen | |||
* einfach einzurichten | |||
* leicht zu verwenden | |||
== Anwendungen == | |||
=== Anmeldung === | |||
=== Datenbanken anzeigen === | |||
; Vorhandene Datenbanken anzeigen | |||
[https://dev.mysql.com/doc/refman/8.0/en/show-databases.html SHOW DATABASES] Anweisung | |||
<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> | |||
== | === Datenbank erstellen === | ||
; Erstellen einer neuen Datenbank | |||
[https://dev.mysql.com/doc/refman/8.0/en/create-database.html CREATE DATABASE] Anweisung | |||
<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> | |||
; 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> | |||
=== 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 [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> | |||
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 | |||
mysql | ; 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 | |||
<syntaxhighlight lang="sql" highlight="1" copy> | |||
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> | |||
); | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="text" highlight="" line> | |||
</syntaxhighlight> | |||
; 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 | ||
; Tabelle prüfen | |||
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> | |||
== | ; 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> | |||
=== Datensätze hinzufügen === | |||
; Hinzufügen von Datensätzen in eine Tabelle | |||
Verwenden Sie zum Beispiel eine [https://dev.mysql.com/doc/refman/8.0/en/insert.html INSERT...VALUES]-Anweisung | |||
<syntaxhighlight lang="sql" highlight="1" copy> | |||
INSERT INTO cats (name, owner, birth) VALUES | |||
('Sandy', 'Lennon', '2015-01-03'), | |||
('Cookie', 'Casey', '2013-11-13'), | |||
('Charlie', 'River', '2016-05-21'); | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="text" highlight="" line> | |||
</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 | |||
=== 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> | |||
Um bestimmte Spalten und Zeilen nach einer bestimmten Bedingung auszuwählen, verwenden Sie die <tt>WHERE</tt>-Klausel | |||
<syntaxhighlight lang="sql" highlight="1" copy> | |||
SELECT name FROM cats WHERE owner = 'Casey'; | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="text" highlight="" line> | |||
+--------+ | |||
| name | | |||
+--------+ | |||
| Cookie | | |||
+--------+ | |||
1 row in set (0.00 sec) | |||
</syntaxhighlight> | |||
=== 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> | |||
<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 | | |||
| 3 | Charlie | River | 2016-05-21 | | |||
+----+---------+--------+------------+ | |||
2 rows in set (0.00 sec) | |||
</syntaxhighlight> | |||
=== 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 eine <tt>AFTER</tt> Klausel verwenden, um den Ort der neuen Spalte anzugeben | |||
<syntaxhighlight lang="sql" highlight="1" copy> | |||
mysql> ALTER TABLE cats ADD gender CHAR(1) AFTER name; | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="text" highlight="" line> | |||
Query OK, 0 rows affected (0.24 sec) | |||
Records: 0 Duplicates: 0 Warnings: 0 | |||
</syntaxhighlight> | |||
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> | |||
[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 | |||
<syntaxhighlight lang="sql" highlight="1" copy> | |||
SHOW CREATE TABLE cats\G | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="text" highlight="" line> | |||
*************************** 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) | |||
</syntaxhighlight> | |||
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> | |||
<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> | |||
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 | |||
=== Problembehebung === | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
<div style="column-count:2"> | |||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | |||
</div> | |||
---- | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |||
=== Dokumentation === | |||
<!-- | |||
; Man-Page | |||
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | |||
; Info-Pages | |||
--> | |||
* [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 | |||
=== Links === | |||
==== Projekt ==== | |||
==== Weblinks ==== | |||
<!-- | |||
{{DEFAULTSORT:new}} | |||
{{DISPLAYTITLE:new}} | |||
--> | |||
[[Kategorie:Mysql]] | |||
</noinclude> | |||
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
Links
Projekt
Weblinks