Edgedb Range
[en] Read in English 2023-04-11
Edgedb, range adında bir veri tipi sunar. Bu veri tipi, bir aralık veya bir sayısal aralığı temsil eder. Range veri tipi, matematiksel veya sayısal işlemler için oldukça kullanışlıdır ve veritabanı sorgularında sıklıkla kullanılır.
Range veri tipi, range<T>
şeklinde ifade edilir, burada T, aralıkta kullanılan veri tipini temsil eder. Range veri tipi, iki değer arasında bir aralığı temsil eder ve bu aralık belirli bir veri tipi için tanımlanabilir. Örneğin, range<int64>
veri tipi, iki int64
sayısı arasındaki sayısal aralığı temsil eder.
Range veri tipi, iki değer arasındaki aralığı açık veya kapalı şekilde tanımlayabilir. Açık aralık, sınır değerlerini dahil etmezken kapalı aralık, sınır değerlerini dahil eder. Örneğin, [1, 10)
ifadesi, 1 dahil ancak 10 dahil değil olan sayılar aralığını temsil ederken, [1, 10]
ifadesi, 1 ile 10 arasındaki tüm sayıları temsil eder.
Range veri tipi, ayrıca ..
veya ...
operatörleri ile de tanımlanabilir. ..
operatörü, kapalı bir aralığı temsil ederken, ...
operatörü açık bir aralığı temsil eder. Örneğin, 1..10
ifadesi, 1 ile 10 arasındaki tüm sayıları temsil eder.
Range veri tipi, birçok matematiksel veya sayısal işlem için kullanılabilir. Range veri tipi, sıralama ve filtreleme işlemleri için oldukça kullanışlıdır ve veritabanı sorgularında sıklıkla kullanılır.
Range veri tipi ile yapılabilecek işlemler şunlardır:
in
operatörü: Bir değer, bir aralık içinde mi yoksa dışında mı olduğunu kontrol etmek için kullanılır.contains
fonksiyonu: Bir aralık, bir değer içeriyor mu kontrol etmek için kullanılır.overlaps
fonksiyonu: İki aralık arasında kesişim olup olmadığını kontrol etmek için kullanılır.adjacent
fonksiyonu: İki aralık arasında yan yana sınırlar olup olmadığını kontrol etmek için kullanılır.is_empty
fonksiyonu: Boş bir aralık olup olmadığını kontrol etmek için kullanılır.union
fonksiyonu: İki aralığın birleşimini döndürür.intersection
fonksiyonu: İki aralığın kesişimini döndürür.difference
fonksiyonu: İki aralığın farkını döndürür.
SELECT range(1, 10) # 1..10
SELECT range(1, 10, step := 2) # 1, 3, 5, 7, 9
SELECT 5 in range(1, 10) # true
SELECT contains(range(1, 10), 5) # true
SELECT overlaps(range(1, 5), range(3, 7)) # true
SELECT adjacent(range(1, 5), range(6, 10)) # true
SELECT is_empty(range(5, 5)) # true
SELECT range(1, 5) + range(6, 10) # 1..10
SELECT range(1, 10) - range(5, 8) # 1..4, 9..10
SELECT range(1, 10).union(range(5, 8)) # 1..10
SELECT range(1, 10).intersection(range(5, 8)) # 5..8
SELECT range(1, 10).difference(range(5, 8)) # 1..4, 9..10
Range veri tipi ayrıca, bir dizinin veya bir sorgunun belli bir bölümünü seçmek için de kullanılabilir. Örneğin, my_array[1..3]
ifadesi, my_array
dizisinin 1. ve 3. indeksleri arasındaki öğeleri içeren bir alt dizi döndürür.
Edgedb, range veri tipi sayesinde, veritabanı sorgularında matematiksel veya sayısal işlemler yapmak için gelişmiş bir araç sunar. Range veri tipi, aralık veya sayısal aralıklar için oldukça kullanışlıdır ve veritabanı sorgularını daha basit hale getirir. Edgedb’nin zengin veri tipleri, geliştiricilerin veritabanı işlemlerini daha verimli ve etkili bir şekilde gerçekleştirmelerine yardımcı olur.