@nobby46: Welches PHP-Programm speichert denn Zeitangaben nicht als DATETIME oder TIMESTAMP, sondern als TEXT/CHAR/VARCHAR in so einem komischen Format? Datenbanken haben doch extra Datentypen für so etwas. Zum Beispiel um Messdaten in einem bestimmten Zeitraum abzufragen. Das funktioniert mit Zeiten als Zeichenketten entweder nicht richtig oder mindestens ineffizienter.
Tabellennamen würde ich in Einzahl benennen. Denn so ein CREATE beschreibt *einen* Datensatz, also woraus *eine* Temperatur besteht. Das ist äquivalent zu einer Klassendefinition, oder in C eine Struktur. Hier würde `temperaturen` für die Struktur ja auch irreführend sein:
[codebox=c file=Unbenannt.c]typedef struct {
int id;
char *name;
double wert;
} temperatur;[/code]
Ich habe da `wert` statt `fuehler` als Bezeichnung für die Temperatur genommen, denn ``temperatur.wert = 42.23;`` macht mehr Sinn als ``temperatur.fuehler = 42.23;``. Das ist bei SQL nicht anders.
Zur Namenschreibweise in Python gibt's den
Style Guide for Python Code. Ausser Konstanten (ALLES_GROSS) und Klassen (MixedCase) schreibt man Namen klein_mit_unterstrichen. Also `aussenf` statt `Aussenf`. Wobei mir das `f` hier unklar ist (Fahrenheit? Bitte, bitte nicht `float`!), und `aussen` etwas zu unpräzise. `aussentemperatur` wäre passend wenn es die Aussentemperatur ist.
`connection` würde ich auch nicht abkürzen. Oder wenn dann vielleicht als `db` schreiben, denn das ist wenigstens eine gängige Abkürzung.
Und ich plädiere immer wieder gerne dafür SQLAlchemy als Abstraktionsschicht zu verwenden. Mindestens den Teil der vermeidet das man SQL von Hand schreiben muss, aber auch gerne das ORM.
Ohne ORM (ungetestet):
Code: Alles auswählen
for id_, temperatur in [(1, aussentemperatur), (2, innentemperatur)]:
connection.execute(
temperature_table.update()
.where(temperature_table.c.id=id_)
.values(wert=temperatur)
)
connection.commit()
Mit ORM (ungetestet):
Code: Alles auswählen
for id_, temperaturwert in [(1, aussentemperatur), (2, innentemperatur)]:
(
session.query(Temperatur)
.filter_by(id=id_)
.update({Temperatur.wert: temperaturwert})
)
session.commit()