Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sorgu dili, JSON verileriyle çalışmak için güçlü, SQL benzeri bir söz dizimi sağlar. Bu dil, SQL deneyimine sahip kullanıcılara tanıdık olacak şekilde tasarlanmıştır ve JSON belgelerinin esnekliğini ve hiyerarşik doğasını destekler. Bu makalede sorgu dilinin temel kavramları, söz dizimi ve özellikleri tanıtmaktadır.
Sorgu dilinin temel kavramları
Sorgu dili, JSON belgeleri olarak depolanan verilere açıklayıcı ve verimli erişim sağlamak için oluşturulur. Temeli olan dil, hiyerarşik ve esnek verilerle yerel olarak çalışacak şekilde tasarlanmıştır ve farklı yapılara sahip olabilecek belgeler üzerinde hem basit hem de karmaşık sorguları destekler.
Sorgular tanıdık bir SQL benzeri söz dizimi kullanılarak oluşturulur, ancak belge modeline uyarlanır. Bu uyarlama, geleneksel ilişkisel veritabanlarının aksine sabit bir şema olmadığı anlamına gelir; özellikler eksik olabilir veya belgeler arasında farklı türlerde olabilir. Dil büyük/küçük harfe duyarlıdır ve iç içe özelliklere, dizilere ve nesnelere doğrudan sorgular içinde başvurmayı destekler. Mantıksal, karşılaştırma ve aritmetik işleçler mevcuttur ve dil, NoSQL verilerinin esnekliğini benimserken SQL deneyimine sahip geliştiriciler için sezgisel olacak şekilde tasarlanmıştır.
Sorgu altyapısı, verileri verimli bir şekilde filtrelemek, sıralamak ve toplamak için dizinleri kullanarak otomatik olarak yüksek performans ve ölçeklenebilirlik için iyileştirilmiştir. Basit aramalardan karmaşık toplamalara ve alt sorgulara kadar çok çeşitli sorgu desenlerini destekler. Bu destek, sorgu altyapısını hem işlem hem de analitik iş yükleri için uygun hale getirir. Dil ayrıca dizilerle çalışmaya, null ve tanımsız değerleri işlemeye ve sonuçları esnek JSON şekillerinde yansıtmaya yönelik yapılar sağlar. Bu yapılar, geliştiricilerin tam olarak ihtiyaç duydukları verileri uygulamalarının gerektirdiği biçimde almasını sağlar.
Temel Sorgu Yapısı
Tipik bir sorgu aşağıdaki yan tümcelerden oluşur:
-
SELECT: Döndürülecek alanları veya değerleri belirtir. -
FROM: Kaynak kapsayıcıyı tanımlar ve bir diğer ad atayabilir. -
WHERE: Belgelere koşullara göre filtre uygulama. -
ORDER BY: Sonuçları sıralar. -
GROUP BY: Sonuçları bir veya daha fazla özelliğe göre gruplandırma.
Örnek: Basit Sorgu
SELECT p.id, p.name
FROM products p
WHERE p.price > 20
ORDER BY p.price ASC
Bu sorgu, fiyatı 20'den büyük olan ürünlerin ve name değerlerini artan düzende fiyata göre sıralanmış olarak döndürürid.
JSON Özellikleriyle Çalışma
Noktalı gösterimi veya köşeli ayraç gösterimini kullanarak iç içe özelliklere erişebilirsiniz:
SELECT p.manufacturer.name, p["metadata"].sku
FROM products p
Diziler veya alt sorgular kullanılarak JOIN geçirilebilir:
SELECT p.name, c AS color
FROM products p
JOIN c IN p.metadata.colors
Verileri Filtreleme
WHERE yan tümcesi aritmetik, mantıksal, karşılaştırma ve dize işlemleri dahil olmak üzere çok çeşitli işleçleri destekler:
SELECT *
FROM products p
WHERE p.category IN ("Accessories", "Clothing") AND p.price BETWEEN 10 AND 50
Toplama ve Gruplandırma
Toplama işlevlerini ve grup sonuçlarını kullanabilirsiniz:
SELECT p.category, COUNT(1) AS productCount
FROM products p
GROUP BY p.category
Distinct, Top ve Like
-
DISTINCTyinelenen değerleri kaldırır. -
TOP Nsonuç sayısını sınırlar. -
LIKEjoker karakterlerle desen eşleştirmeyi destekler.
SELECT DISTINCT VALUE p.category
FROM products p
SELECT TOP 5 *
FROM products p
ORDER BY p.price DESC
SELECT *
FROM products p
WHERE p.name LIKE "%bike%"
Alt Sorgular
Alt sorgular, dizilerdeki değerlerin varlığını denetleme de dahil olmak üzere daha gelişmiş filtreleme ve projeksiyon sağlar:
SELECT VALUE p.name
FROM products p
WHERE EXISTS (
SELECT VALUE c FROM c IN p.metadata.colors WHERE c LIKE "%blue%"
)