Zum Inhalt springen

Mysql/Grundlagen: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „ z. B.“ durch „ beispielsweise“
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 20: Zeile 20:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+--------------------+
+--------------------+
| Database           |
| Database     |
+--------------------+
+--------------------+
| information_schema |
| information_schema |
| mysql             |
| mysql       |
| performance_schema |
| performance_schema |
| sys               |
| sys       |
+--------------------+
+--------------------+
4 rows in set (0.00 sec)
4 rows in set (0.00 sec)
Zeile 49: Zeile 49:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+--------------------+
+--------------------+
| Database           |
| Database     |
+--------------------+
+--------------------+
| information_schema |
| information_schema |
| mysql             |
| mysql       |
| performance_schema |
| performance_schema |
| pets               |
| pets       |
| sys               |
| sys       |
+--------------------+
+--------------------+
5 rows in set (0.00 sec)
5 rows in set (0.00 sec)
Zeile 81: Zeile 81:
CREATE TABLE cats
CREATE TABLE cats
(
(
  id             INT unsigned NOT NULL AUTO_INCREMENT, # Unique ID for the record
id       INT unsigned NOT NULL AUTO_INCREMENT, # Unique ID for the record
  name           VARCHAR(150) NOT NULL,               <nowiki># Name of the cat</nowiki>
name     VARCHAR(150) NOT NULL,       <nowiki># Name of the cat</nowiki>
  owner           VARCHAR(150) NOT NULL,               <nowiki># Owner 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>
birth     DATE NOT NULL,           <nowiki># Birthday of the cat</nowiki>
  PRIMARY KEY     (id)                                 <nowiki># Make the id the primary key</nowiki>
PRIMARY KEY   (id)                 <nowiki># Make the id the primary key</nowiki>
);
);
</syntaxhighlight>
</syntaxhighlight>
Zeile 106: Zeile 106:
| Tables_in_pets |
| Tables_in_pets |
+----------------+
+----------------+
| cats           |
| cats     |
+----------------+
+----------------+
1 row in set (0.00 sec)
1 row in set (0.00 sec)
Zeile 119: Zeile 119:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+-------+------------------+------+-----+---------+----------------+
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra         |
| Field | Type       | Null | Key | Default | Extra     |
+-------+------------------+------+-----+---------+----------------+
+-------+------------------+------+-----+---------+----------------+
| id   | int(10) unsigned | NO   | PRI | NULL   | auto_increment |
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(150)     | NO  |    | NULL   |               |
| name | varchar(150)   | NO |   | NULL |       |
| owner | varchar(150)     | NO  |    | NULL   |               |
| owner | varchar(150)   | NO |   | NULL |       |
| birth | date             | NO  |    | NULL   |               |
| birth | date       | NO |   | NULL |       |
+-------+------------------+------+-----+---------+----------------+
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
4 rows in set (0.00 sec)
Zeile 134: Zeile 134:
<syntaxhighlight lang="sql" highlight="1" copy>
<syntaxhighlight lang="sql" highlight="1" copy>
INSERT INTO cats ( name, owner, birth) VALUES
INSERT INTO cats ( name, owner, birth) VALUES
  ( 'Sandy', 'Lennon', '2015-01-03' ),
( 'Sandy', 'Lennon', '2015-01-03' ),
  ( 'Cookie', 'Casey', '2013-11-13' ),
( 'Cookie', 'Casey', '2013-11-13' ),
  ( 'Charlie', 'River', '2016-05-21' );
( 'Charlie', 'River', '2016-05-21' );
</syntaxhighlight>
</syntaxhighlight>
<!-- output -->
<!-- output -->
Zeile 153: Zeile 153:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+----+---------+--------+------------+
+----+---------+--------+------------+
| id | name   | owner | birth     |
| id | name | owner | birth   |
+----+---------+--------+------------+
+----+---------+--------+------------+
| 1 | Sandy   | Lennon | 2015-01-03 |
| 1 | Sandy | Lennon | 2015-01-03 |
| 2 | Cookie | Casey | 2013-11-13 |
| 2 | Cookie | Casey | 2013-11-13 |
| 3 | Charlie | River | 2016-05-21 |
| 3 | Charlie | River | 2016-05-21 |
+----+---------+--------+------------+
+----+---------+--------+------------+
3 rows in set (0.00 sec)
3 rows in set (0.00 sec)
Zeile 169: Zeile 169:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+--------+
+--------+
| name   |
| name |
+--------+
+--------+
| Cookie |
| Cookie |
Zeile 193: Zeile 193:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+----+---------+--------+------------+
+----+---------+--------+------------+
| id | name   | owner | birth     |
| id | name | owner | birth   |
+----+---------+--------+------------+
+----+---------+--------+------------+
| 1 | Sandy   | Lennon | 2015-01-03 |
| 1 | Sandy | Lennon | 2015-01-03 |
| 3 | Charlie | River | 2016-05-21 |
| 3 | Charlie | River | 2016-05-21 |
+----+---------+--------+------------+
+----+---------+--------+------------+
2 rows in set (0.00 sec)
2 rows in set (0.00 sec)
Zeile 204: Zeile 204:
; Hinzufügen oder Löschen einer Spalte aus einer Tabelle
; 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
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.&nbsp;B.&nbsp;eine <tt>AFTER</tt> Klausel verwenden, um den Ort der neuen Spalte anzugeben
* Sie können beispielsweise&nbsp;eine <tt>AFTER</tt> Klausel verwenden, um den Ort der neuen Spalte anzugeben


<syntaxhighlight lang="sql" highlight="1" copy>
<syntaxhighlight lang="sql" highlight="1" copy>
Zeile 212: Zeile 212:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
Query OK, 0 rows affected (0.24 sec)
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0
Records: 0 Duplicates: 0 Warnings: 0
</syntaxhighlight>
</syntaxhighlight>


Zeile 222: Zeile 222:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+--------+------------------+------+-----+---------+----------------+
+--------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra         |
| Field | Type       | Null | Key | Default | Extra     |
+--------+------------------+------+-----+---------+----------------+
+--------+------------------+------+-----+---------+----------------+
| id     | int(10) unsigned | NO   | PRI | NULL   | auto_increment |
| id   | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name   | varchar(150)     | NO  |    | NULL   |               |
| name | varchar(150)   | NO |   | NULL |       |
| gender | char(1)         | YES |     | NULL   |               |
| gender | char(1)     | YES |   | NULL |       |
| owner | varchar(150)     | NO  |    | NULL   |               |
| owner | varchar(150)   | NO |   | NULL |       |
| birth | date             | NO  |    | NULL   |               |
| birth | date       | NO |   | NULL |       |
+--------+------------------+------+-----+---------+----------------+
+--------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
5 rows in set (0.00 sec)
Zeile 242: Zeile 242:
*************************** 1
*************************** 1
* row ***************************
* row ***************************
      Table: cats
    Table: cats
Create Table: CREATE TABLE `cats` (
Create Table: CREATE TABLE `cats` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(150) NOT NULL,
`name` varchar(150) NOT NULL,
  `gender` char(1) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
  `owner` varchar(150) NOT NULL,
`owner` varchar(150) NOT NULL,
  `birth` date NOT NULL,
`birth` date NOT NULL,
  PRIMARY KEY (`id`)
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
1 row in set (0.00 sec)
Zeile 261: Zeile 261:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
Query OK, 0 rows affected (0.19 sec)
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0
Records: 0 Duplicates: 0 Warnings: 0
</syntaxhighlight>
</syntaxhighlight>


Zeile 270: Zeile 270:
<syntaxhighlight lang="text" highlight="" line>
<syntaxhighlight lang="text" highlight="" line>
+-------+------------------+------+-----+---------+----------------+
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra         |
| Field | Type       | Null | Key | Default | Extra     |
+-------+------------------+------+-----+---------+----------------+
+-------+------------------+------+-----+---------+----------------+
| id   | int(10) unsigned | NO   | PRI | NULL   | auto_increment |
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(150)     | NO  |    | NULL   |               |
| name | varchar(150)   | NO |   | NULL |       |
| owner | varchar(150)     | NO  |    | NULL   |               |
| owner | varchar(150)   | NO |   | NULL |       |
| birth | date             | NO  |    | NULL   |               |
| birth | date       | NO |   | NULL |       |
+-------+------------------+------+-----+---------+----------------+
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
4 rows in set (0.00 sec)

Aktuelle Version vom 16. Juni 2026, 09:28 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