Jython HomeDruckenJava-Online

Datensätze mit INSERT einfügen

Die INSERT - Anweisung fügt in eine bestehende Tabelle Datensätze ein. Allgemeine Form:

INSERT INTO tabelle (feld1, feld2, ...) VALUES (wert1, wert2, ...)

Durch die Angabe der Feldnamen im ersten Teil der Anweisung legt man fest, in welches Feld die Werte eingetragen werden sollen. Falls man Werte in alle Felder der Tabelle einfügt, kann man auf die Angabe der Feldname verzichten und schreibt kurz

INSERT INTO tabelle (wert1, wert2...)

Die Reihenfolge der Werte muss mit der Reihenfolge der Felder übereinstimmen. Werte der Felder, die als INTEGER definiert wurden, müssen ganze Zahlen sein. Texte werden in Anführungszeichen eingegeben. Mit einer INSERT-Anweisung können mehrere Datensätze eingefügt werden. Die dreifache Anführungszeichen ermöglichen es, die INSERT-Anweisung auf mehrere Zeilen zu verteilen.

Beispiel 1: Mehrere Datensätze in die Tabelle person einfügen

# InsertPersonEx1.py

from sqlite3 import *
from prettytable import printTable

with connect("demo.db") as con:
    cursor = con.cursor()
    cursor.execute("""INSERT INTO person VALUES
                  (1,'Huber','Lia','Bern','w', 2002),
                  (2,'Meier','Luca','Basel','m', 2003),
                  (3,'Frech','Marc','Bern','m', 2000),
                  (4,'Bauer','Paul','Luzern','m', 2003),
                  (5,'Zwahlen','Noe','Thun','m', 2002),
                  (6,'Meier','Nina','Biel','w', 2001)""")   
    cursor.execute("SELECT * FROM person")
    printTable(cursor)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Ergebnis:


Erklärungen zum Programmcode:
Die Tabelle kann im Ausgabefenster von TigerJython angezeigt werden. Dazu muss man zuerst mit "SELECT * FROM person" alle Datensätze auswählen und den Befehl printTable(cursor) aus dem Modul prettytable auflisten

 

Beispiel 2: Weitere Datensätze einfügen

Die Zahl im Feld id muss eindeutig sein. Da id als PRIMARY KEY definiert wurde, kann man die id-Zahl bei der Eingabe weglassen. Das System setzt automatisch als sogenannter AUTO_INCREMENT die nächste grössere Zahl ein. In diesem Fall muss man aber in der INSERT-Anweisung die Feldnamen angegeben, da die Anzahl der eingegebenen Werte mit der Anzahl der Feldern nicht übereinstimmt.


# InsertPersonEx2.py

from sqlite3 import *
from prettytable import printTable

with connect("demo.db") as con:
    cursor = con.cursor()
    cursor.execute("""INSERT INTO person (name,vorname,wohnort,geschlecht,jahrgang)
                   VALUES ('Neuhaus','Lucia','Aarau','w', 2004),
                          ('Hubacher','Julia','Zug','w', 2002)""")
    cursor.execute("SELECT * FROM person")
    printTable(cursor)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Ergebnis:


Erklärungen zum Programmcode:
"""INSERT(.....)"""
Die Verwendung der dreifachen Anführungszeichen ermöglicht es, die INSERT-Anweisung auf mehrere Zeilen zu verteilen.

Bemerkung:
Im Internet findet man einige Tools, mit welchen man die SQLite-Tabellen anschauen und bearbeiten kann.
Beispielsweise DBBrowser for SQLite (Download unter http://sqlitebrowser.org/)