Arbeiten mit der Datenbank

Arbeiten mit der Datenbank

Die Funktionen für die Arbeit mit Datenbanken basieren auf der beliebten und einfach zu bedienende SQLite Engine. Die bequeme Eigenschaft dieser Engine besteht darin, dass sich die gesamte Datenbank in einer einzigen Datei auf der Festplatte des Nutzer-PCs befindet.

Die Funktionen ermöglichen das bequeme Erstellen von Tabellen, das Hinzufügen von Daten, die Durchführung von Änderungen und die Arbeit mit Stichproben über den einfachen SQL-Anfragen:

  • die Abfrage von Handelshistorie und Kursdaten aus beliebigen Formaten,
  • das Speichern von Optimierungs- und Testergebnissen,
  • Vorbereitung und Austausch von Daten mit anderen Analysepaketen,
  • Speicherung von MQL5-Anwendungseinstellungen und -Status.

Abfragen erlauben die Verwendung von statistischen und mathematischen Funktionen.

Die Funktionen für die Arbeit mit Datenbanken ermöglichen es, die sich am häufigsten wiederholenden Operationen zur Behandlung großer Datenfelder durch SQL-Anfragen zu ersetzen, so dass es oft möglich ist, die Aufrufe DatenbankAusführen/DatenbankVorbereiten zu verwenden, anstatt komplexe Schleifen und Vergleiche zu programmieren. Verwenden Sie die Funktion DatabaseReadBind, um ganz einfach die Abfrageergebnisse in einer vorgefertigten Struktur zu erhalten. Die Funktion ermöglicht das Lesen aller Datensatzfelder auf einmal innerhalb eines einzigen Aufrufs.

Um das Lesen, Schreiben und Modifizieren zu beschleunigen, kann eine Datenbank mit dem Flag DATABASE_OPEN_MEMORY im RAM geöffnet/angelegt werden, obwohl eine solche Datenbank nur für eine bestimmte Anwendung verfügbar ist und nicht gemeinsam genutzt wird. Bei der Arbeit mit Datenbanken, die sich auf der Festplatte befinden, sollten Einfügungen/Änderungen von Massendaten in Transaktionen mit DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback umhüllt werden. Dies beschleunigt den Prozess um das Hundertfache.

Um die Arbeit mit den Funktionen zu beginnen, lesen Sie den Artikel SQLite: Natives Arbeiten mit SQL-Datenbanken in MQL5.

Funktion

Aktion

DatabaseOpen

Öffnet oder erstellt die angegebene Datenbankdatei

DatabaseClose

Schließt die Datenbank

DatabaseImport

Importieren von Daten aus einer Datei in eine Tabelle

DatabaseExport

Exportiert eine Tabelle oder das Ergebnis einer SQL-Anfrage in eine CSV-Datei

DatabasePrint

Druckt eine Tabelle oder ein Ergebnis der SQL-Anfrage im Experten-Journal aus

DatabaseTableExists

Prüft das Vorhandensein der Tabelle in einer Datenbank

DatabaseExecute

Ausführung einer Anfrage an die angegebene Datenbank

DatabasePrepare

Erstellt das Handle für die Anfragen, die durch DatabaseRead() ausgeführt werden kann

DatabaseReset

Rücksetzen einer Anfrage, wie nach dem Aufruf von DatabasePrepare()

DatabaseBind

Setzt einen Parameterwert in einer Anfrage

DatabaseBindArray

Setzt einen Parameterarray als Parameterwert

DatabaseRead

Wechselt zum nächsten Eintrag als Ergebnis einer Anfrage

DatabaseReadBind

Wechselt zum nächsten Datensatz und liest aus ihm Daten in die Struktur

DatabaseFinalize

Entfernt eine Anfrage, die durch DatabasePrepare() erstellt wurde

DatabaseTransactionBegin

Startet die Ausführung der Transaktion

DatabaseTransactionCommit

Schließt die Ausführung der Transaktion ab

RDatabaseTransactionRollback

Zurücksetzen der Transaktionen

DatabaseColumnsCount

Abrufen der Felderanzahl einer Anfrage

DatabaseColumnName

Abrufen des Feldnamens nach dem Index

DatabaseColumnType

Abrufen des Feldtyps nach dem Index

DatabaseColumnSize

Abrufen der Feldgröße in Bytes

DatabaseColumnText

Abrufen des Feldwerts als Zeichenkette aus dem aktuellen Datensatz

DatabaseColumnInteger

Abrufen des Integer-Werts aus dem aktuellen Datensatz

DatabaseColumnLong

Abrufen des Long-Werts aus dem aktuellen Datensatz

DatabaseColumnDouble

Abrufen des Double-Wertes aus dem aktuellen Datensatz

DatabaseColumnBlob

Abrufen des Feldwerts als Array aus dem aktuellen Datensatz

 

Statistische Funktionen:

  • mode – Modus
  • median – Median (50. Perzentil)
  • percentile_25 – 25. Perzentil
  • percentile_75
  • percentile_90
  • percentile_95
  • percentile_99
  • stddev oder stddev_samp — Standardabweichung der Stichprobe
  • stddev_pop — Standardabweichung der Grundgesamtheit
  • variance or var_samp — Varianz der Stichprobe
  • var_pop — Varianz der Grundgesamtheit

Mathematische Funktionen

  • acos(X) - Arkuscosinus im Bogenmaß
  • acosh(X) - hyperbolischer Arkuscosinus
  • asin(X) - Arkussinus im Bogenmaß
  • asinh(X) - hyperbolischer Arkussinus
  • atan(X) - Arkustangens im Bogenmaß
  • atan2(X,Y) - Arkustangens im Bogenmaß des Verhältnisses X/Y
  • atanh(X) - hyperbolischer Arkustangens
  • ceil(X) - Aufrunden auf eine ganze Zahl
  • ceiling(X) - Aufrunden auf eine ganze Zahl
  • cos(X) - Cosinus des Winkels im Bogenmaß
  • cosh(X) - hyperbolischer Cosinus
  • degrees(X) - Umrechnung eines Bogenmaßes in einen Winkel
  • exp(X) - Exponent
  • floor(X) - Abrunden auf eine ganze Zahl
  • ln(X) - natürlicher Logarithmus
  • log(B,X) - Logarithmus zur angegebenen Basis
  • log(X) - dezimaler Logarithmus
  • log10(X) - dezimaler Logarithmus
  • log2(X) - Logarithmus zur Basis 2
  • mod(X,Y) - Rest der Division
  • pi() - Näherung von Pi
  • pow(X,Y) - potenzieren der angegebenen Basis mit dem Exponenten
  • power(X,Y) – potenzieren der angegebenen Basis mit dem Exponenten
  • radians(X) - wandelt den Winkel in Bogenmaß um
  • sin(X) – Sinus eines Winkels in Bogenmaß
  • sinh(X) - hyperbolischer Sinus
  • sqrt(X) - Quadratwurzel
  • tan(X) - Tangens eines Winkels in Bogenmaß
  • tanh(X) - hyperbolischer Tangens
  • trunc(X) - Abschneiden auf die ganze Zahl, die näher 0 ist

Beispiel:

select
  count(*) as book_count,
  cast(avg(parentas integeras mean,
  cast(median(parentas integeras median,
  mode(parentas mode,
  percentile_90(parentas p90,
  percentile_95(parentas p95,
  percentile_99(parentas p99
from moz_bookmarks;