OrientDB - Kayıtları Göster

RDBMS'ye benzer şekilde, OrientDB, kayıtları veritabanından almak için farklı türde SQL sorgularını destekler. Kayıtları alırken, select ifadesiyle birlikte farklı sorgu varyasyonlarına veya seçeneklerine sahibiz.

Aşağıdaki ifade, SELECT komutunun temel sözdizimidir.

SELECT [ <Projections> ] [ FROM <Target> [ LET <Assignment>* ] ] 
   [ WHERE <Condition>* ] 
   [ GROUP BY <Field>* ] 
   [ ORDER BY <Fields>* [ ASC|DESC ] * ] 
   [ UNWIND <Field>* ] 
   [ SKIP <SkipRecords> ] 
   [ LIMIT <MaxRecords> ] 
   [ FETCHPLAN <FetchPlan> ] 
   [ TIMEOUT <Timeout> [ <STRATEGY> ] ]
   [ LOCK default|record ] 
   [ PARALLEL ] 
   [ NOCACHE ]

Yukarıdaki sözdizimindeki seçeneklerle ilgili ayrıntılar aşağıdadır.

<Projections> - Sonuç kayıtları kümesi olarak sorgudan çıkarmak istediğiniz verileri gösterir.

FROM- Sorgulanacak nesneyi gösterir. Bu bir sınıf, küme, tek bir Kayıt Kimliği, bir dizi Kayıt Kimliği olabilir. Tüm bu nesneleri hedef olarak belirtebilirsiniz.

WHERE - Sonuç kümesine filtre uygulanacak koşulu belirtir.

LET - Öngörüler, koşullar veya alt sorgularda kullanılan bağlam değişkenini gösterir.

GROUP BY - Kayıtların gruplanacağı alanı belirtir.

ORDER BY - Kayıt sırasına göre düzenlemek için başvuruyu gösterir.

UNWIND - Kayıtların toplanmasının çözüleceği alanı belirler.

SKIP - Sonuç kümesinin başından itibaren atlamak istediğiniz kayıtların sayısını tanımlar.

LIMIT - Sonuç kümesindeki maksimum kayıt sayısını gösterir.

FETCHPLAN - Sonuçları nasıl getirmek istediğinizi tanımlayan stratejiyi belirtir.

TIMEOUT - Sorgu için milisaniye cinsinden maksimum süreyi tanımlar.

LOCK- Kilitleme stratejisini tanımlar. VARSAYILAN ve KAYIT mevcut kilit stratejileridir.

PARALLEL - Sorguyu 'x' eşzamanlı evrelerde yürütür.

NOCACHE - Önbellek kullanmak isteyip istemediğinizi tanımlar.

Misal

Bir önceki bölümde oluşturulan aşağıdaki Müşteri tablosunu ele alalım.

Sr.No. İsim Yaş
1 Satish 25
2 Krishna 26
3 Kiran 29
4 Javeed 21
5 Raja 29

Müşteri tablosundan veri kayıtlarını almak için farklı seçim sorgularını deneyin.

Method 1 - Müşteri tablosundan tüm kayıtları seçmek için aşağıdaki sorguyu kullanabilirsiniz.

orientdb {db = demo}> SELECT FROM Customer

Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:1|Customer|2   |krishna|26   
2   |#11:2|Customer|3   |kiran  |29 
3   |#11:3|Customer|4   |javeed |21 
4   |#11:4|Customer|5   |raja   |29   
----+-----+--------+----+-------+----

Method 2 - Adı 'harfiyle başlayan tüm kayıtları seçink'.

orientdb {db = demo}> SELECT FROM Customer WHERE name LIKE 'k%'

VEYA yukarıdaki örnek için aşağıdaki sorguyu kullanabilirsiniz.

orientdb {db = demo}> SELECT FROM Customer WHERE name.left(1) = 'k'

Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:1|Customer|2   |krishna|26   
1   |#11:2|Customer|3   |kiran  |29 
----+-----+--------+----+-------+----

Method 3 - Müşteri tablosundan isimleri büyük harflerle olan id, isim kayıtlarını seçin.

orientdb {db = demo}> SELECT id, name.toUpperCase() FROM Customer

Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.

----+--------+----+------- 
#   |@CLASS  |id  |name     
----+--------+----+------- 
0   |null    |1   |SATISH   
1   |null    |2   |KRISHNA  
2   |null    |3   |KIRAN   
3   |null    |4   |JAVEED  
4   |null    |5   |RAJA      
----+--------+----+-------

Method 4 - Müşteri tablosundan yaşın 25 ile 29 arasında olduğu tüm kayıtları seçin.

orientdb {db = demo}> SELECT FROM Customer WHERE age in [25,29]

Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:2|Customer|3   |kiran  |29 
2   |#11:4|Customer|5   |raja   |29   
----+-----+--------+----+-------+----

Method 5 - Herhangi bir alanın 'sh' kelimesini içerdiği Müşteri tablosundan tüm kayıtları seçin.

orientdb {db = demo}> SELECT FROM Customer WHERE ANY() LIKE '%sh%'

Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:0|Customer|1   |satish |25   
1   |#11:1|Customer|2   |krishna|26   
----+-----+--------+----+-------+----

Method 6 - Müşteri tablosundan yaşa göre azalan sırayla tüm kayıtları seçin.

orientdb {db = demo}> SELECT FROM Customer ORDER BY age DESC

Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.

----+-----+--------+----+-------+---- 
#   |@RID |@CLASS  |id  |name   |age  
----+-----+--------+----+-------+---- 
0   |#11:2|Customer|3   |kiran  |29 
1   |#11:4|Customer|5   |raja   |29   
2   |#11:1|Customer|2   |krishna|26   
3   |#11:0|Customer|1   |satish |25   
4   |#11:3|Customer|4   |javeed |21 
----+-----+--------+----+-------+----