Hi
gibt es eine Liste mit allen möglichen Befehlen die in dem execute eingesetzt werden können?
Ich bin gerade auf der suche nacht etwas kann aber irgendwie keine gute Übersicht finden.
Vielleicht habe ich auch einen falschen Ansatz
Wenn ich eine Datenbank habe mit einer Tabelle. Die ersten drei Spalten haben Werte (mehrere Zeilen). Wenn ich dann eine neue Spalte hinzufüge die nur einen Wert in zB. der 5ten Reihe hat. Wie kann ich überprüfen wo der Wert steht? Ich will also die ID des letzten Wertes in Spalte 4 haben.
Oder (fällt mir jetzt beim schreiben ein) sollte ich für diesen vierten Wert lieber eine neue Tabelle anlegen in der Datenbank? Die letzte Zeile mit einem Wert habe ich immerhin hinbekommen
lg
Befehle Python sqlite3
Das ist verwirrend. Du sprichst von drei Reihen, dann von Reihe 5 fragst aber nach Reihe 4?
Dass Du von Zeilen redest, läßt mich vermuten, dass Du von SQL-Datenbanken ein falsches Verständnis hast.
Tabellen haben Einträge und diese haben Felder. Von einem ersten oder letzten Eintrag zu reden, macht nur Sinn, wenn man auch ein Kriterium hat, wie die Einträge zu ordnen sind, z.B. sortiert nach dem Wert eines Feldes.
Kannst Du mal konkret sagen, was für ein Problem Du versuchst zu lösen, ohne schon vorweg zu nehmen, wie Du denkst, dass es zu lösen wäre, also z.B. auch dass dafür eine Datenbank nötig wäre.
Dass Du von Zeilen redest, läßt mich vermuten, dass Du von SQL-Datenbanken ein falsches Verständnis hast.
Tabellen haben Einträge und diese haben Felder. Von einem ersten oder letzten Eintrag zu reden, macht nur Sinn, wenn man auch ein Kriterium hat, wie die Einträge zu ordnen sind, z.B. sortiert nach dem Wert eines Feldes.
Kannst Du mal konkret sagen, was für ein Problem Du versuchst zu lösen, ohne schon vorweg zu nehmen, wie Du denkst, dass es zu lösen wäre, also z.B. auch dass dafür eine Datenbank nötig wäre.
- __blackjack__
- User
- Beiträge: 13079
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@slook: Um die direkte Frage zu beantworten: https://sqlite.org/
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
- __blackjack__
- User
- Beiträge: 13079
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@slook: Du fragst halt Spalte `f` ab mit der Bedingung das `id` den Wert 9 hat. Das so ziemlich das simpelste SELECT-Beispiel das man sich vorstellen kann. Du musst SQL lernen. Da sollte es mehr als genug Material im Netz geben. Sowohl SQL allgemein, als auch für SQLite.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@slook
Noch der Hinweis:
Eine "Tabelle" in einer Datenbank ist nicht eine Tabelle in einer Tabellenkalkulation.
Das dynamische Hinzufügen von Spalten weist auf ein kaputtes Design hin.
Lerne SQL, beschäftige dich damit, was "Relation" in "Relationalen Datenbanken" bedeutet und was Normalisierung ist.
Noch der Hinweis:
Eine "Tabelle" in einer Datenbank ist nicht eine Tabelle in einer Tabellenkalkulation.
Das dynamische Hinzufügen von Spalten weist auf ein kaputtes Design hin.
Lerne SQL, beschäftige dich damit, was "Relation" in "Relationalen Datenbanken" bedeutet und was Normalisierung ist.
@_blackjack_ ich weiß aber nicht an welcher id der letzte wert ist.
also benutze ich sql obwohl ich es nicht brauche/sollte?
ich habe daten in den ersten spalten, auf der basis der daten berechne ich neue werte. der wert an zb. id 9 bekommt dann einen neuen zusätzlichen wert. später will ich die berechneten werte auf bestimmte zahlenwerte überprüfen, und dann zugriff auf die ganzen werte die zu der id gehören haben.
ist sql dafür das falsche werkzeug?
also benutze ich sql obwohl ich es nicht brauche/sollte?
ich habe daten in den ersten spalten, auf der basis der daten berechne ich neue werte. der wert an zb. id 9 bekommt dann einen neuen zusätzlichen wert. später will ich die berechneten werte auf bestimmte zahlenwerte überprüfen, und dann zugriff auf die ganzen werte die zu der id gehören haben.
ist sql dafür das falsche werkzeug?
@slook: so ganz habe ich Dein Problem noch nicht verstanden. Um ehrlich zu sein, ich verstehe überhaupt nicht, was Du da versuchst zu machen. Kannst Du das Problem, das Du versuchst, nicht mal erklären? Was bedeuten die Zahlen, oder die Reihen, was willst Du berechnen? Woher kommen die Daten und wo soll das Ergebnis hin?
in erster linie will ich das ganze etwas lernen, also python.
habe daher etwas geschaut und versuche mich jetzt an was eigentlich ziemlich einfachen.
ich rufe den endkurs einer aktie von der börse ab, also habe ich schonmal die einträge Datum und Kurs.
und dann will ich einfach den durchschnittlichen Kurs der letzten Tage berechenen, zb: 9
und den will ich dann an die passende stelle schreiben. und weil ja bei den ersten tagen keine durchschnittswert da sind, sind die leer.
bisher habe ich eine funktion geschrieben um die daten abzurufen. die nächste soll dann den durchschnittswert eintragen und um zu wissen das
ich am nächsten tag quasi eine id weiter anfangen muss, muss ich ja irgendwie wissen an welchem tag das letzte mal ein wert berechnet wurde.
habe daher etwas geschaut und versuche mich jetzt an was eigentlich ziemlich einfachen.
ich rufe den endkurs einer aktie von der börse ab, also habe ich schonmal die einträge Datum und Kurs.
und dann will ich einfach den durchschnittlichen Kurs der letzten Tage berechenen, zb: 9
und den will ich dann an die passende stelle schreiben. und weil ja bei den ersten tagen keine durchschnittswert da sind, sind die leer.
bisher habe ich eine funktion geschrieben um die daten abzurufen. die nächste soll dann den durchschnittswert eintragen und um zu wissen das
ich am nächsten tag quasi eine id weiter anfangen muss, muss ich ja irgendwie wissen an welchem tag das letzte mal ein wert berechnet wurde.
ok, ich würde es jetzt so machen:
cursor.execute("SELECT ID FROM Aktie WHERE durchschnitt = (SELECT MAX(durchschnitt ) FROM Aktie)")
wenn ich jetzt mehrere durchschnittswerte berechene, wäre es ratsam dann eine extra Tabelle für die durchschnittswerte in der Datenbank zu erstellen?
cursor.execute("SELECT ID FROM Aktie WHERE durchschnitt = (SELECT MAX(durchschnitt ) FROM Aktie)")
wenn ich jetzt mehrere durchschnittswerte berechene, wäre es ratsam dann eine extra Tabelle für die durchschnittswerte in der Datenbank zu erstellen?
- __blackjack__
- User
- Beiträge: 13079
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@slook: Das sind dann ja redundante Daten – die würde man eher nicht speichern, sondern berechnen wenn man sie braucht.
Und warum der maximale Durchschnitt der letzte sein sollte, erschliesst sich mir nicht. Das könnte ja nur stimmen bei Aktien die immer nur steigen. Das Kriterium ist doch wohl eher welche Datensätze keinen Durchschnitt haben – eventuell noch mit einer Einschränkung wie weit zurück geschaut werden soll.
Und warum der maximale Durchschnitt der letzte sein sollte, erschliesst sich mir nicht. Das könnte ja nur stimmen bei Aktien die immer nur steigen. Das Kriterium ist doch wohl eher welche Datensätze keinen Durchschnitt haben – eventuell noch mit einer Einschränkung wie weit zurück geschaut werden soll.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Um solche Durchschnittswerte zu berechnen, kennt SQL inzwischen sogenannte Window-Functions. Das speichert man nicht mit in die Datenbank, weil sowas will man ja variabel gestalten, je nachdem über wieviele Tage man den Durchschnitt bilden will. Zusätzlich brauchst Du noch das Datum des Aktienkurses, denn nach dem Datum willst Du die Werte ja sortieren.