SELECT komutunun temel yapısı
Veritabanından bir tabloya veri okumak için TROIA'da özel bir SELECT ... INTO söz dizimi kullanılır — standart SQL'e çok benziyor ama sonucu doğrudan bir TROIA tablo değişkenine bağlar:
SELECT [ALL | DISTINCT] {kolonlar}
FROM {tablo} [, {digertablolar}]
[INNER | OUTER JOIN {jointablo} ON {onkosulu}]
[WHERE {kosul}]
[ORDERBY {kolonlar} [ASC | DESC]]
[INTO {hedeftablo}];
Örnek: filtreleme ve sıralama
OBJECT:
TABLE TABLEVAR1;
SELECT CLIENT, USERNAME, PWDVALIDITY
FROM IASUSERS
WHERE CLIENT == '00'
ORDER BY PWDVALIDITY DESC
INTO TABLEVAR1;
ORDERBY mı, ORDER BY mı?
TROIA'nın kendi anahtar kelimesi boşluksuz ORDERBY'dir, ama standart SQL yazımı olan ORDER BY (boşluklu) de destekleniyor — örnekte olduğu gibi ikisini karışık görebilirsiniz.
Değişkenleri sorguya bağlamak
TROIA değişkenlerini doğrudan WHERE koşulunda kullanabilirsiniz; interpreter, değişkenin veri tipine göre sorguya otomatik bind eder — string birleştirme yapıp SQL enjeksiyonu riski almanıza gerek yok:
OBJECT:
STRING PCLIENT,
TABLE TABLEVAR1;
PCLIENT = '00';
SELECT USERNAME
FROM IASUSERS
WHERE CLIENT == PCLIENT
INTO TABLEVAR1;
INTO: sonucu tabloya bağlamak
INTO anahtar kelimesi sadece hedef tablo değişkenini belirtir; SELECT komutu seçilen veriyi bu değişkene atar. Hedef tablo daha önce tanımlanmış olmalıdır (OBJECT/GLOBAL/LOCAL ile TABLE tipinde).
Sonuç
SELECT ... INTO, TROIA'da veritabanı okumanın temel yapı taşı — WHERE ile filtreleme, ORDERBY/ORDER BY ile sıralama, INTO ile sonucu tabloya bağlama. Değişkenleri doğrudan koşulda kullanmak hem daha güvenli hem daha okunaklı, string birleştirerek sorgu kurmaktan kaçının.
Yorumlar (0)
Yorum Yaz