OrientDB - İşlevler
Bu bölüm, OrientDB'deki farklı işlev türlerinin tam referansını açıklamaktadır. Aşağıdaki tablo, işlevlerine göre kategorize edilen işlevlerin listesini tanımlar.
Grafik İşlevleri
Sr.No. | Fonksiyon Adı & Tanımı |
---|---|
1 | Out(): Vertex olarak geçerli kayıttan başlayarak bitişik giden köşeleri alır. Syntax - dışarı ([<label-1>] [, <label-n>] *) |
2 | In(): Vertex olarak geçerli kayıttan başlayarak bitişik gelen köşeleri alır. Syntax - içinde ([<label-1>] [, <label-n>] *) |
3 | Both(): Vertex olarak geçerli kayıttan başlayarak bitişik giden ve gelen köşeleri alır. Syntax - her ikisi de ([<label1>] [, <label-n>] *) |
4 | outE(): Vertex olarak geçerli kayıttan başlayarak bitişik giden kenarları alır. Syntax - outE ([<label1>] [, <label-n>] *) |
5 | inE(): Vertex olarak geçerli kayıttan başlayarak bitişik gelen kenarları alır. Syntax - inE ([<label1>] [, <label-n>] *) |
6 | bothE(): Vertex olarak geçerli kayıttan başlayarak bitişik giden ve gelen kenarları alır. Syntax - her ikisiE ([<label1>] [, <label-n>] *) |
7 | outV(): Geçerli kayıttan başlayarak giden köşeleri Edge olarak alır. Syntax - outV () |
8 | inV(): Mevcut kayıttan gelen köşeleri Edge olarak alın. Syntax - inV () |
9 | traversedElement(): Travers komutlarında geçilen öğeleri döndürür. Syntax - traversedElement (<index> [, <items>]) |
10 | traversedVertex(): Traverse komutlarında geçilen köşe (ler) i döndür. Syntax - traversedVertex (<index> [, <items>]) |
11 | traversedEdge(): Travers komutlarında geçilen kenarları döndürür. Syntax - traversedEdge (<index> [, <items>]) |
12 | shortestPath(): İki köşe arasındaki en kısa yolu döndürür. Yön OUT (varsayılan), IN veya BOTH olabilir. Synatx - shortestPath (<sourceVertex>, <destinationVertex> [, <direction> [, <edgeClassName>]]) |
13 | dijkstra(): Dijkstra algoritmasını kullanarak iki köşe arasındaki en ucuz yolu döndürür. Syntax - dijkstra (<sourceVertex>, <destinationVertex>, <weightEdgeFieldName> [, <direction>]) |
Aşağıdaki sorgularla birlikte bazı grafik işlevlerini deneyin.
Tüm giden köşeleri tüm araç köşelerinden almak için aşağıdaki sorguyu yürütün.
orientdb {db = demo}>SELECT out() from Vehicle
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
---+----------+---------
# | @class | out
---+----------+---------
0 | Vehicle | #11:2
1 | Vehicle | #13:1
2 | Vehicle | #13:4
---+----------+---------
11: 3 numaralı köşe noktasından hem gelen hem de giden köşeleri almak için aşağıdaki sorguyu yürütün.
orientdb {db = demo}>SELECT both() FROM #11:3
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
---+----------+--------+-------
# | @class | out | in
---+----------+--------+-------
0 | Vehicle | #13:2 | #10:2
---+----------+-------+-------
Matematik Fonksiyonları
Sr.No. | Fonksiyon Adı & Tanımı |
---|---|
1 | eval(): Tırnak işaretleri (veya çift tırnak işaretleri) arasındaki ifadeyi değerlendirir. Syntax - eval ('<ifade>') |
2 | min(): Minimum değeri döndürür. Birden fazla parametre ile çağrılırsa, tüm argümanlar arasında minimum argüman değerini döndürür. Syntax - min (<field> [, <field-n>] *) |
3 | max(): Maksimum değeri döndürür. Birden fazla parametre ile çağrılırsa, tüm bağımsız değişkenler arasındaki maksimum değeri döndürür. Syntax - max (<field> [, <field-n>] *) |
4 | sum() Döndürülen tüm değerlerin toplamını döndürür. Syntax - toplam (<field>) |
5 | abs(): Mutlak değeri verir. Integer, Long, Short, Double, Float, BigInteger, BigDecimal, null ile çalışır. Syntax - abs (<field>) |
6 | avg(): Ortalama değeri verir. Syntax - ort (<field>) |
7 | count(): Sorgu koşuluyla eşleşen kaydı sayar. Alan olarak * kullanılmıyorsa, kayıt yalnızca içerik boş değilse sayılacaktır. Syntax - say (<field>) |
8 | mode(): En büyük sıklıkta oluşan değeri döndürür. Hesaplamada boş değerler yok sayılır. Syntax - mod (<field>) |
9 | median(): Değerler sıralandıktan sonra orta değeri veya orta değeri temsil eden enterpolasyonlu değeri döndürür. Hesaplamada boş değerler yok sayılır. Syntax - medyan (<field>) |
10 | percentile(): N. yüzdelik dilimi döndürür. Null, hesaplamada göz ardı edilir. Syntax - yüzdelik dilim (<field> [, <quantile-n>] *) |
11 | variance() Orta varyansı verir: Ortalamadan kare farkının ortalaması.
Syntax - varyans (<field>) |
12 | stddev() Standart sapmayı döndürür: Değerlerin nasıl yayıldığının ölçüsü. Hesaplamada boş değerler yok sayılır. Syntax - stddev (<field>) |
Aşağıdaki sorguları kullanarak bazı matematik işlevlerini deneyin.
Tüm çalışanların maaşlarının toplamını almak için aşağıdaki sorguyu yürütün.
orientdb {db = demo}>SELECT SUM(salary) FROM Employee
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
---+----------+---------
# | @CLASS | sum
---+----------+---------
0 | null | 150000
---+----------+---------
Tüm çalışanların ortalama maaşını almak için aşağıdaki sorguyu yürütün.
orientdb {db = demo}>SELECT avg(salary) FROM Employee
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
---+----------+---------
# | @CLASS | avg
---+----------+---------
0 | null | 25
---+----------+---------
Koleksiyonlar İşlevleri
Sr.No. | Fonksiyon Adı & Tanımı |
---|---|
1 | set(): Bir kümeye değer ekler. Değer bir koleksiyon ise, kümeyle birleştirilir, aksi takdirde <değer> eklenir. Syntax - ayarla (<field>) |
2 | map(): Harita ilk oluşturulduğunda haritaya bir değer ekler. <value> bir haritaysa, haritayla birleştirilir, aksi takdirde <key> ve <value> çifti yeni giriş olarak haritaya eklenir. Syntax - harita (<key>, <value>) |
3 | ist(): Liste ilk oluşturulduğunda listelemek için bir değer ekler. <Değer> bir koleksiyon ise, listeyle birleştirilir, aksi takdirde listeye <değer> eklenir. Syntax - liste (<field>) |
4 | difference(): Toplu veya satır içi olarak çalışır. Yalnızca bir bağımsız değişken iletilirse, o zaman toplar, aksi takdirde çalıştırır ve parametre olarak alınan koleksiyonlar arasındaki FARKI döndürür. Syntax - fark (<field> [, <field-n>] *) |
5 | first(): Çok değerli alanların (diziler, koleksiyonlar ve haritalar) yalnızca ilk öğesini alır. Çok değerli olmayan türler için yalnızca değeri döndürür. Syntax - ilk (<field>) |
6 | intersect(): Toplu veya satır içi olarak çalışır. Yalnızca bir bağımsız değişken iletilirse, parametre olarak alınan koleksiyonların ETKİLEŞİMİNİ toplar, aksi takdirde yürütür ve döndürür. Syntax - kesişme (<field> [, <field-n>] *) |
7 | distinct(): Bağımsız değişken olarak belirttiğiniz alana bağlı olarak yalnızca benzersiz veri girişlerini alır. Standart SQL DISTINCT ile karşılaştırıldığında temel fark, OrientDB ile parantezli bir fonksiyon ve yalnızca bir alan belirtilebilmesidir. Syntax - farklı (<field>) |
8 | expand(): Bu işlevin iki anlamı vardır−
Syntax - genişlet (<field>) |
9 | unionall(): Toplu veya satır içi olarak çalışır. Yalnızca bir bağımsız değişken iletilirse, toplanır, aksi takdirde parametre olarak alınan tüm koleksiyonların bir BİRLİĞİNİ yürütür ve döndürür. Ayrıca koleksiyon değerleri olmadan çalışır. Syntax - unionall (<field> [, <field-n>] *) |
10 | flatten(): Alandaki koleksiyonu çıkarır ve sonuç olarak kullanır. Kullanımdan kaldırılmıştır, bunun yerine expand () kullanın. Syntax - düzleştir (<field>) |
11 | last(): Çok değerli alanların (diziler, koleksiyonlar ve haritalar) yalnızca son öğesini alır. Çok değerli olmayan türler için yalnızca değeri döndürür. Syntax - son (<field>) |
12 | symmetricDifference(): Toplu veya satır içi olarak çalışır. Yalnızca bir bağımsız değişken aktarılırsa, parametre olarak alınan koleksiyonlar arasındaki SİMETRİK FARKI toplar, aksi takdirde yürütür ve döndürür. Syntax - simetrik Fark (<field> [, <field-n>] *) |
Aşağıdaki sorguları kullanarak bazı toplama işlevlerini deneyin.
9. sınıfa öğreten bir dizi öğretmen almak için aşağıdaki sorguyu yürütün.
orientdb {db = demo}>SELECT ID, set(teacher.id) AS teacherID from classess where class_id = 9
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
---+----------+--------+--------------------------
# | @CLASS | id | TeacherID
---+----------+--------+--------------------------
0 | null | 9 | 1201, 1202, 1205, 1208
---+----------+-------+---------------------------
Çeşitli Fonksiyonlar
Sr.No. | Fonksiyon Adı & Tanımı |
---|---|
1 | date(): Bir dizeyi biçimlendiren bir tarih döndürür. <date-as-string>, dize biçimindeki tarihtir ve <format>, bu kuralları izleyen tarih biçimidir. Syntax - tarih (<date-as-string> [<format>] [, <timezone>]) |
2 | sysdate(): Geçerli tarih ve saati döndürür. Syntax - sysdate ([<format>] [, <timezone>]) |
3 | format(): String.format () kurallarını kullanarak bir değeri biçimlendirir. Syntax - biçim (<biçim> [, <arg1>] (, <arg-n>] *. Md) |
4 | distance(): Haversine algoritmasını kullanarak dünyadaki iki nokta arasındaki mesafeyi döndürür. Koordinatlar derece olmalıdır. Syntax - mesafe (<x-field>, <y-field>, <x-value>, <y-value>) |
5 | ifnull(): Geçilen alanı / değeri (veya isteğe bağlı return_value_if_not_null parametresini) döndürür. Alan / değer boş değilse, return_value_if_null döndürür. Syntax - ifnull (<alan | değer>, <return_value_if_null> [, <return_value_if_not_null>] (, <alan & .md # 124; değer>] *) |
6 | coalesce(): İlk alanı / değeri, boş olmayan parametreyi döndürür. Hiçbir alan / değer boş değilse, boş döndürür. Syntax - birleştirme (<alan | değer> [, <alan-n | değer-n>] *) |
7 | uuid(): Leach-Salz varyantını kullanarak 128 bitlik bir değer olarak bir UUID oluşturur. Syntax - uuid () |
8 | if(): Bir koşulu (ilk parametreler) değerlendirir ve koşul doğruysa ikinci parametreyi, aksi takdirde üçüncü parametreyi döndürür. Syntax - eğer (<ifade>, <sonuç-varsa-doğru>, <sonuç-yanlış-yanlış>) |
Aşağıdaki sorguları kullanarak bazı Misc işlevlerini deneyin.
If ifadesinin nasıl yürütüleceğini öğrenmek için aşağıdaki sorguyu yürütün.
orientdb {db = demo}> SELECT if(eval("name = 'satish'"), "My name is satish",
"My name is not satish") FROM Employee
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
----+--------+-----------------------
# |@CLASS | IF
----+--------+-----------------------
0 |null |My name is satish
1 |null |My name is not satish
2 |null |My name is not satish
3 |null |My name is not satish
4 |null |My name is not satish
----+--------+------------------------
Sistem tarihini almak için aşağıdaki sorguyu yürütün.
orientdb {db = demo}> SELECT SYSDATE() FROM Employee
Yukarıdaki sorgu başarıyla yürütülürse, aşağıdaki çıktıyı alacaksınız.
----+--------+-----------------------
# |@CLASS | SYSDATE
----+--------+-----------------------
0 |null |2016-02-10 12:05:06
1 |null |2016-02-10 12:05:06
2 |null |2016-02-10 12:05:06
3 |null |2016-02-10 12:05:06
4 |null |2016-02-10 12:05:06
----+--------+------------------------
Bu işlevi kapsamlı bir şekilde kullanarak, OrientDB verilerini kolayca değiştirebilirsiniz.