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.



Bu gibi daha fazla gönderi...

Edgedb Computed Links

2023-04-12 | #edgedb #edgedb-links

Computed Links, iki nesne arasındaki ilişkileri tanımlamak için kullanılan bir yapıdır. Bu bağlantılar, ilişkilendirilmiş nesnelerin birbirine olan ilişkisini hesaplamak için tanımlanmış bir sorgu veya fonksiyon kullanarak oluşturulur. Bu yapı, veritabanında tutulan verilerin tutarlılığını sağlamak için oldukça yararlıdır. Computed Links, veriler arasında sıkı bir şekilde bağlantı kurmanın yanı sıra, veritabanında saklanan verilerin değiştirilmesi veya güncellenmesi durumunda bağlantıların otomatik olarak güncellenmesini sağlar. Ayrıca, sorgulama ve raporlama işlemlerini kolaylaştırmak için de kullanılabilir. Örneğin, bir Computed Link aracılığıyla iki nesne arasındaki ilişkiyi hesaplayarak, sorgulama işlemini daha verimli hale getirebilirsiniz.

Devamı 


Edgedb İlişkiler

2023-04-12 | #edgedb #edgedb-links #edgedb-multi-link

Edgedb’de iki tablo arasında ilişki kurmak için link anahtar kelimesi kullanılır. Linkler, bir objenin başka bir objeyle ilişkilendirilmesine izin verir. Örneğin, bir User tablosu ve bir Article tablosu varsa, Article tablosundaki her bir Article, bir Userya atfedilebilir. Bu durumda, User ve Article tabloları arasında bir ilişki kurabiliriz. İlk olarak, User tablosunda bir id özelliği tanımlarız. Bu özellik, kullanıcının benzersiz bir kimliğini temsil eder. type User { required property id -> uuid; property name -> str; } Ardından, Article tablosunda bir author özelliği tanımlarız.

Devamı 


Edgedb Exclusive Constraint

2023-04-12 | #edgedb #edgedb-constraints

Edgedb’de exclusive constraint (özel kısıtlama) terimi, belirli bir özelliğin benzersiz olmasını veya belirli bir aralıkta olmasını sağlayan bir kısıtlama türünü ifade eder. Örneğin, bir User objesinde email özelliğinin benzersiz olmasını sağlayan bir özel kısıtlama oluşturabilirsiniz. Böylece, her bir User’ın sadece bir kez kaydedilmesini sağlayabilirsiniz. Aşağıdaki örnekte, email özelliğinde benzersizlik sağlayan bir özel kısıtlama tanımlıyoruz: type User { required property id -> uuid; required property name -> str; exclusive constraint unique_email on (.

Devamı 