Veritabanlarıyla çalışma

Veritabanlarıyla çalışma fonksiyonları popüler ve kullanımı kolay SQLite motorunu kullanır. Bu motorun önemli bir özelliği, tüm veritabanının kullanıcının bilgisayarında bulunan tek bir standart dosyaya yerleştirilmiş olmasıdır.

Fonksiyonlar, basit SQL istekleri kullanılarak tabloların kolayca oluşturulmasına, bunlara veri eklenmesine, değişiklik ve örnekleme yapılmasına olanak tanır:

  • herhangi bir formattan işlem geçmişi ve kotasyon alma,
  • optimizasyon ve sınama sonuçlarını kaydetme,
  • diğer analiz paketleriyle veri hazırlama ve veri değişimi,
  • MQL5 uygulama ayarlarını ve durumunu saklama.

Sorgular, istatistiksel ve matematiksel fonksiyonların kullanılmasına olanak sağlar.

Veritabanlarıyla çalışma fonksiyonları, büyük veri dizilerini işlemek için en çok yinelenen işlemlerin SQL istekleriyle değiştirilmesine olanak tanır; bu, birçok durumda karmaşık döngüler ve karşılaştırmaları programlamak yerine DatabaseExecute/DatabasePrepare çağrılarını kullanmanıza olanak sağlar. İstek sonuçlarını hazır bir yapı halinde kolayca elde etmek için DatabaseReadBind fonksiyonunu kullanın. Fonksiyon, tek bir çağrıda tüm kayıt alanlarının aynı anda okunmasına olanak sağlar.

Okuma, yazma ve değiştirme işlemlerini hızlandırmak için, veritabanı DATABASE_OPEN_MEMORY bayrağıyla RAM'de açılabilir/oluşturulabilir, ancak bu tür bir veritabanı yalnızca belirli bir uygulama tarafından kullanılabilir ve paylaşılmaz. Sabit diskte bulunan veritabanlarıyla çalışırken, toplu veri eklemeleri/değişiklikleri DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback kullanılarak sarılmalıdır. Bu, işlemi yüzlerce kez hızlandırır.

Fonksiyonlarla çalışmaya başlamak için SQLite: MQL5'te SQL veritabanlarıyla yerel çalışma makalesini okuyun.

Fonksiyon

Eylem

DatabaseOpen

Belirtilen dosyada veritabanı açar veya oluşturur

DatabaseClose

Veritabanını kapatır

DatabaseImport

Verileri bir dosyadan tabloya aktarır

DatabaseExport

Bir tablo veya SQL isteği yürütme sonucunu bir CSV dosyasına aktarır

DatabasePrint

Uzman Danışmanlar günlüğüne bir tablo veya SQL isteği yürütme sonucu yazdırır

DatabaseTableExists

Veritabanında tablonun varlığını kontrol eder

DatabaseExecute

Belirtilen veritabanına istek yürütür

DatabasePrepare

Daha sonra DatabaseRead() kullanılarak yürütülebilen bir istek tanıtıcı değeri oluşturur

DatabaseReset

DatabasePrepare() çağrıldıktan sonra olduğu gibi isteği sıfırlar

DatabaseBind

İstekte bir parametre değeri ayarlar

DatabaseBindArray

Diziyi parametre değeri olarak ayarlar

DatabaseRead

İstek sonucunda bir sonraki girdiye gider

DatabaseFinalize

DatabasePrepare()'da oluşturulan isteği kaldırır

DatabaseTransactionBegin

İşlem yürütmeyi başlatır

DatabaseTransactionCommit

İşlem yürütmeyi tamamlar

DatabaseTransactionRollback

İşlemleri geri alır

DatabaseColumnsCount

İstekteki alan sayısını elde eder

DatabaseColumnName

Alan adını indekse göre elde eder

DatabaseColumnType

Alan tipini indekse göre elde eder

DatabaseColumnSize

Alan boyutunu bayt cinsinden elde eder

DatabaseColumnText

Alan değerini geçerli kayıttan dizge olarak elde eder

DatabaseColumnInteger

Geçerli kayıttan int tipi değeri elde eder

DatabaseColumnLong

Geçerli kayıttan long tipi değeri elde eder

DatabaseColumnDouble

Geçerli kayıttan double tipi değeri elde eder

DatabaseColumnBlob

Alan değerini geçerli kayıttan dizi olarak elde eder

 

İstatistiksel fonksiyonlar:

  • mode – mod
  • median – medyan (50'nci persantil)
  • percentile_25 – 25'inci persantil
  • percentile_75
  • percentile_90
  • percentile_95
  • percentile_99
  • stddev or stddev_samp — örneklem standart sapması
  • stddev_pop — popülasyon standart sapması
  • variance or var_samp — örneklem varyansı
  • var_pop — popülasyon varyansı

Matematiksel fonksiyonlar:

  • acos(X) – radyan cinsinden arccos
  • acosh(X) – hiperbolik arccos
  • asin(X) – radyan cinsinden arcsin
  • asinh(X) – hiperbolik arcsin
  • atan(X) – radyan cinsinden arctan
  • atan2(X,Y) – X/Y oranlı radyan cinsinden arctan
  • atanh(X) – hiperbolik arctan
  • ceil(X) – yukarıdaki en yakın tam sayıya yuvarlar
  • ceiling(X) – yukarıdaki en yakın tam sayıya yuvarlar
  • cos(X) – radyan cinsinden açının kosinüsü
  • cosh(X) – hiperbolik kosinüs
  • degrees(X) – radyanı açıya dönüştürür
  • exp(X) – üs
  • floor(X) – aşağıdaki en yakın tam sayıya yuvarlar
  • ln(X) – doğal logaritma
  • log(B,X) – belirtilen tabana göre logaritma
  • log(X) – bayağı logaritma
  • log10(X) – bayağı logaritma
  • log2(X) – 2 tabanına göre logaritma
  • mod(X,Y) – bölme işleminin kalanı
  • pi() – yaklaşık Pi
  • pow(X,Y) – belirtilen tabanı kuvvet yapar
  • power(X,Y) – belirtilen tabanı kuvvet yapar
  • radians(X) – açıyı radyana dönüştürür
  • sin(X) – radyan cinsinden açının sinüsü
  • sinh(X) – hiperbolik sinüs
  • sqrt(X) – karekök
  • tan(X) – radyan cinsinden açının tanjantı
  • tanh(X) – hiperbolik tanjant
  • trunc(X) – 0'a yakın olan tam sayıya kısaltır

Örnek:

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;