Zum Inhalt springen

Mysql/Grundlagen: Unterschied zwischen den Versionen

Aus Foxwiki
Markierung: Ersetzt
Zeile 14: Zeile 14:
<syntaxhighlight lang="bash" highlight="" line>
<syntaxhighlight lang="bash" highlight="" line>
</syntaxhighlight>
</syntaxhighlight>
== Grundlegende Operationen ==
[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 hier vorgestellt werden
=== Datenbanken anzeigen ===
; Vorhandene Datenbanken anzeigen
Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/show-databases.html SHOW DATABASES] Anweisung
<syntaxhighlight lang="sql" highlight="1" line>
mysql> SHOW DATABASES;
+--------------------+
| Database          |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
</syntaxhighlight>
=== Datenbank erstellen ===
; Erstellen einer neuen Datenbank
Verwenden Sie eine [https://dev.mysql.com/doc/refman/8.0/en/create-database.html CREATE DATABASE] Anweisung
<syntaxhighlight lang="sql" highlight="1" line>
mysql> CREATE DATABASE pets;
Query OK, 1 row affected (0.01 sec)
</syntaxhighlight>
Prüfen Sie, ob die Datenbank erstellt worden ist
<syntaxhighlight lang="sql" highlight="1" line>
mysql> SHOW DATABASES;
+--------------------+
| Database          |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| pets              |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
</syntaxhighlight>
=== Tabelle erstellen ===
; Erstellen einer Tabelle innerhalb einer Datenbank
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" line>
mysql> USE pets
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
* 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" line>
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>
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
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" line>
mysql> SHOW TABLES;
+----------------+
| Tables_in_pets |
+----------------+
| cats          |
+----------------+
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
<syntaxhighlight lang="sql" highlight="1" line>
mysql> 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)
</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" line>
INSERT INTO cats ( name, owner, birth) VALUES
  ( 'Sandy', 'Lennon', '2015-01-03' ),
  ( 'Cookie', 'Casey', '2013-11-13' ),
  ( 'Charlie', 'River', '2016-05-21' );
</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" line>
mysql> 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)
</syntaxhighlight>
Um bestimmte Spalten und Zeilen nach einer bestimmten Bedingung auszuwählen, verwenden Sie die <tt>WHERE</tt>-Klausel
<syntaxhighlight lang="sql" highlight="1" line>
mysql> SELECT name FROM cats WHERE owner = 'Casey';
+--------+
| 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" line>
mysql> DELETE FROM cats WHERE name='Cookie';
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)
</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 z.B
* eine <tt>AFTER</tt> Klausel verwenden, um den Ort der neuen Spalte anzugeben
<syntaxhighlight lang="sql" highlight="1" line>
mysql> ALTER TABLE cats ADD gender CHAR(1) AFTER name;
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" line>
mysql> 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)
</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" line>
mysql> 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)
</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" line>
mysql> ALTER TABLE cats DROP gender;
Query OK, 0 rows affected (0.19 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> 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)
</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 ===
=== Problembehebung ===

Version vom 18. März 2026, 10:49 Uhr

Mysql/Grundlagen - MySQL-Einführung

Beschreibung

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

Anwendung

Grundlegende Operationen

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

Datenbanken anzeigen

Vorhandene Datenbanken anzeigen

Verwenden Sie eine SHOW DATABASES Anweisung

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

Datenbank erstellen

Erstellen einer neuen Datenbank

Verwenden Sie eine CREATE DATABASE Anweisung

mysql> CREATE DATABASE pets;
Query OK, 1 row affected (0.01 sec)

Prüfen Sie, ob die Datenbank erstellt worden ist

mysql> 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

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

mysql> USE pets
Database changed

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

  • 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, 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

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

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


DESCRIBE zeigt Informationen über alle Spalten einer Tabelle

mysql> 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

mysql> 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

mysql> 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

mysql> DELETE FROM cats WHERE name='Cookie';
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)

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 z.B
  • 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

mysql> 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

mysql> 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

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

mysql> 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

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Projekt