MySQL Sorguları
MySQL sorguları, Compass modülünde Port'a eklenmiş bir MySQL veri kaynağı üzerinde MySQL SQL dialektiyle yazılan sorgulardır.
MySQL, standart SQL'e yakın bir dialekt kullanır ancak bazı fonksiyon ve sözdizim farklılıkları vardır. Özellikle backtick tanımlayıcı kullanımı, IFNULL(), GROUP_CONCAT() ve tarih fonksiyonları MySQL'e özgüdür.
Güçlü Yanları
| Özellik | Açıklama |
|---|---|
| Yaygın MES Kullanımı | Birçok MES ve SCADA sistemi MySQL / MariaDB kullanır |
| Hızlı Okumalar | MyISAM / InnoDB motorlarıyla hızlı SELECT sorguları |
| Basit Kurulum | Hafif ve yaygın; tesisinizde çalışma ihtimali yüksek |
| Tarih Fonksiyonları | YEAR(), MONTH(), DAY(), DATE_FORMAT() ile kolay tarih işleme |
| GROUP_CONCAT | Çok satırlı veriyi tek satırda birleştirme |
Pirivision'da Sık Kullanılan MySQL Kalıpları
Demo Fabrika — MySQL
Aşağıdaki örnekler Demo Fabrika MySQL veri setindeki demo_vardiya_uretim tablosunu kullanır (kolonlar: ts, hat_id, makine_id, vardiya, urun_ailesi, uretim_adet, hedef). Port'taki veri kaynağı adı: Demo Fabrika - MySQL (database app_db).
Aynı veriyi kendi ortamınızda oluşturmak için → Sentetik Veri Üretimi — MySQL
-- Son 50 üretim kaydı
SELECT ts, hat_id, makine_id, vardiya, urun_ailesi, uretim_adet
FROM demo_vardiya_uretim
ORDER BY ts DESC, hat_id
LIMIT 50;
-- Zaman aralığı (parametreli)
SELECT ts, hat_id, uretim_adet
FROM demo_vardiya_uretim
WHERE ts >= {{start_date}}
AND ts <= {{end_date}}
ORDER BY ts;
-- Son 7 gün
SELECT ts, hat_id, uretim_adet
FROM demo_vardiya_uretim
WHERE ts >= DATE_SUB(NOW(), INTERVAL 7 DAY)
ORDER BY ts DESC;
-- Günlük özet
SELECT DATE(ts) AS gun,
SUM(uretim_adet) AS toplam,
AVG(uretim_adet) AS ortalama,
MAX(uretim_adet) AS maksimum
FROM demo_vardiya_uretim
WHERE ts >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY DATE(ts)
ORDER BY gun;
-- IFNULL / IF ile koşullu değer
SELECT vardiya,
IFNULL(SUM(uretim_adet), 0) AS toplam,
IF(AVG(uretim_adet) >= 350, 'Hedef Üstü', 'Hedef Altı') AS durum
FROM demo_vardiya_uretim
WHERE ts >= DATE_SUB(NOW(), INTERVAL 7 DAY)
GROUP BY vardiya;
Önemli MySQL Fonksiyonları
| Kategori | Fonksiyon | Örnek |
|---|---|---|
| Zaman | NOW() |
WHERE ts > NOW() |
| Zaman | CURDATE() |
WHERE DATE(ts) = CURDATE() |
| Zaman | DATE_SUB() |
DATE_SUB(NOW(), INTERVAL 7 DAY) |
| Zaman | DATE_FORMAT() |
DATE_FORMAT(ts, '%Y-%m-%d') |
| Null | IFNULL() |
IFNULL(value, 0) |
| Koşullu | IF() |
IF(val > 100, 'Yüksek', 'Normal') |
| Metin | GROUP_CONCAT() |
GROUP_CONCAT(col SEPARATOR ',') |
| Tanımlayıcı | Backtick | `tablo adi` |
Gereksinimler
| Gereksinim | Açıklama |
|---|---|
| Port'ta MySQL veri kaynağı | Bağlantısı test edilmiş olmalı |
| SELECT yetkisi | Veritabanı kullanıcısının sorgulanacak tablolarda yetkisi olmalı |
Rehberler
| Rehber | Açıklama |
|---|---|
| MySQL Sorgusu Oluşturma | Compass'ta yeni MySQL sorgusu yazma |
| MySQL Sorgusu Düzenleme | Mevcut sorguyu güncelleme |
| Sorgu Taşıma | Farklı klasöre taşıma |
| Sorgu Çoğaltma | Kopyalama |
| Sorgu Silme | Kaldırma |