Ändern von Inhalten mit MySQL (Ändern von Inhalten mit MySQL), Lektion, Seite 722371
https://www.purl.org/stefan_ram/pub/inhalte_aendern_mysql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Einfügen einer Zeile mit MySQL 

Vorbereitung

Als Vorbereitung auf Eingaben zum Einfügen von Daten legen wir hier zunächst ein Schema und eine Tabelle an.

Skript (MySQL )
DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( I VARCHAR ( 255 ));

Einfügen von Daten

Konsole (MySQL, E92, C99, C03)
INSERT INTO LISTE ( I ) VALUES ( '1' );
Query OK, 1 row affected (0.00 sec)

Durch »INSERT INTO« wird ein Wert in einen Tabellenspeicher eingefügt. Dabei wird zunächst der Name des Tabellenspeichers (hier »LISTE«) angegeben. Es folgt die Angabe der Spalte in runden Klammern (hier »( I )«) und dann hinter dem feststehenden Worte »VALUES« der einzufügenden Wert (hier »( '1' )«. Der Wert wird dabei in Apostrophen »'« angeführt.

Auch bei Verwendung von »INSERT INTO« sollte in MySQL  nach dem Namen des Tabellenspeichers ein Leerzeichen  folgen, damit dieser immer richtig erkannt wird.

Einfuegeanweisung (vereinfacht)
     .------.      .-----.     .------------.         .-.     .------------.     .-.          .------.      .-.     .--------.     .-.      .-.
--->( INSERT )--->( INTO )--->| Bezeichner |---.--->( ( )--->| Bezeichner |--->( ) )---.--->( VALUES )--->( ( )--->| Skalar |--->( ) )--->( ; )--->
'------' '-----' '------------' | '-' '------------' '-' ^ '------' '-' '--------' '-' '-'
Tabellenname | Spaltenname |
| |
'---------------------------------------'

Ein Skalar  ist eine in Apostrophen eingeschlossene Zeichenfolge.

Die Anweisung bezieht sich auf eine Tabelle, die unter dem angegebenen Namen in demjenigen Schema zu finden ist, welches zuletzt mit »USE« eingestellt wurde, also in »S«.

Anzeige von Daten

Wir wollen uns den veränderten Tabellenspeicher »LISTE« nun ansehen.

Konsole (MySQL, E92, C99, C03)
SELECT * FROM LISTE;

+------+
| I |
+------+
| 1 |
+------+

1 row in set (0.00 sec)

In der Ausgabe vom MySQL  ist das »I« über der Linie der Titel  der ausgegebenen Spalte. Der eigentliche Inhalte des Tabellenspeichers findet sich erst darunter.

Nach der Ausgabe des Inhalts des Tabellenspeichers folgt eine Statistik wie beispielsweise »1 row in set (0.00 sec)«. Diese Ausgabe ist für uns oft nicht interessant; sie wird daher im folgenden nicht immer mit abgedruckt oder kommentiert werden.

Da die Tabelle im Tabellenspeicher »LISTE« genau eine Zeile und genau eine Spalte hat, handelt es sich übrigens um eine skalare Tabelle.

Permanenz

Die einmal in dem Tabellenspeicher gespeicherten Werte bleiben dort auch dann gespeichert, wenn der Klient (Monitor) beendet und der das Datenbanksystem und der Rechner ordnungsgemäß nach unten gefahren wird und stehen beim nächsten Zugriff auf die Datenbank dann wieder zur Verfügung.

Weglassen des Spaltennamens

Für das folgende Beispiel legen wir zunächst erst einmal wieder einen neuen, leeren Tabellenspeicher »LISTE« an.

Vorbereitung (MySQL )
DROP SCHEMA S; CREATE SCHEMA S; USE S; CREATE TABLE LISTE ( I VARCHAR ( 255 ));

Nun zeigen wir das Einfügen eines Wertes ohne Angabe des Spaltennamens. Im Vergleich zu früher fehlt hier das » ( I )« hinter »LISTE«.

Konsole (MySQL, E92, C99, C03)
INSERT INTO LISTE       VALUES ( '10' );
Query OK, 1 row affected (0.00 sec)
Zum Vergleich das früher verwendete Kommando.
INSERT INTO LISTE ( I ) VALUES ( '1' );
Konsole (MySQL, E92, C99, C03)
SELECT * FROM LISTE;
+------+
| I |
+------+
| 10 |
+------+

Wie man sieht, ist es ebenfalls möglich, einen Wert ohne Angabe einer Spalte  in einen Tabellenspeicher einzufügen. Da dies jedoch zu Problemen führen kann, wie später begründet werden wird, werden wir diese Möglichkeit fürderhin nicht  nutzen. Es wird hier also davon abgeraten, den Spaltennamen wegzulassen, obwohl dies anscheinend manchmal möglich ist.

Übungsfrage

?   Ausgabe vorhersagen

Die Eingabe der folgenden vier Zeilen führt zur daruntenstehenden Ausgabe, in der aber zwei Teile hier durch Fragezeichen verdeckt wurden.

Nun sollen ohne tatsächliche Eingabe der vier Zeilen die beiden folgenden Fragen beantwortet werden:

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE A ( B VARCHAR ( 255 ));
INSERT INTO A ( B ) VALUES ( 'C' );
SELECT * FROM A;
+------+
| ? |
+------+
| ? |
+------+

Übungsaufgabe

Hinweis Mehrere aufeinanderfolgende Kommandos können zunächst in einem Texteditor  bearbeitet werden und dann in den Monitor kopiert werden. Dies erlaubt es bei Fehlern in den Kommandos, diese im Editor zu überarbeiten, ohne daß sie alle erneut eingegeben werden müssen. So können die Kommandos auch zum späteren Nachlesen gespeichert bleiben.

Hinweis Orientieren Sie sich zur Lösung dieser Übungsaufgabe an den obigen, im Kurs bereits verwendeten Kommandos.

/   Tabellenspeicher anlegen und sichten

Geben Sie Kommandos ein, die zu der folgenden Ausgabe führen.

+------+
| COL |
+------+
| 3 |
+------+

Zitate *

Datenänderungsanweisungen *

4.33.2.3 SQL-data change statements (gekürzt) *
The following are the SQL-data change statements:
— <insert statement>.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722371 stefan_ram:722371 Ändern von Inhalten mit MySQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722371, slrprddef722371, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/inhalte_aendern_mysql