Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Frågespråket innehåller en kraftfull, SQL-liknande syntax för att arbeta med JSON-data. Det här språket är utformat för att vara bekant för användare med SQL-erfarenhet, samtidigt som det stöder JSON-dokuments flexibilitet och hierarkiska karaktär. Den här artikeln beskriver grundläggande begrepp, syntax och funktioner i frågespråket.
Grundläggande begrepp i frågespråket
Frågespråket är skapat för att ge uttrycksfull och effektiv åtkomst till data som lagras som JSON-dokument. I grunden är språket utformat för att fungera internt med hierarkiska och flexibla data, med stöd för både enkla och komplexa frågor över dokument som kan ha olika strukturer.
Frågor består av en välbekant SQL-liknande syntax, men anpassas för dokumentmodellen. Den här anpassningen innebär att det, till skillnad från traditionella relationsdatabaser, inte finns något fast schema – egenskaper kan saknas eller ha olika typer av dokument. Språket är skiftlägeskänsligt och stöder referens till kapslade egenskaper, matriser och objekt direkt i frågor. Logiska operatorer, jämförelser och aritmetiska operatorer är tillgängliga och språket är utformat för att vara intuitivt för utvecklare med SQL-erfarenhet samtidigt som noSQL-data är flexibla.
Frågemotorn är optimerad för hög prestanda och skalbarhet och använder automatiskt index för att effektivt filtrera, sortera och aggregera data. Den stöder en mängd olika frågemönster, från enkla sökningar till komplexa aggregeringar och underfrågor. Det här stödet gör frågemotorn lämplig för både transaktions- och analysarbetsbelastningar. Språket innehåller även konstruktioner för att arbeta med matriser, hantera null- och odefinierade värden och projicera resultat i flexibla JSON-former. Dessa konstruktioner gör det möjligt för utvecklare att hämta exakt de data de behöver i det format som krävs av deras program.
Grundläggande frågestruktur
En typisk fråga består av följande satser:
-
SELECT: Anger vilka fält eller värden som ska returneras. -
FROM: Identifierar källcontainern och kan tilldela ett alias. -
WHERE: Filtrerar dokument baserat på villkor. -
ORDER BY: Sorterar resultatet. -
GROUP BY: Grupperar resultat efter en eller flera egenskaper.
Exempel: Enkel fråga
SELECT p.id, p.name
FROM products p
WHERE p.price > 20
ORDER BY p.price ASC
Den här frågan returnerar id produkter och name med ett pris större än 20, sorterat efter pris i stigande ordning.
Arbeta med JSON-egenskaper
Du kan komma åt kapslade egenskaper med hjälp av punkt notation eller hakparentes notation:
SELECT p.manufacturer.name, p["metadata"].sku
FROM products p
Matriser kan passeras med hjälp av JOIN eller underfrågor:
SELECT p.name, c AS color
FROM products p
JOIN c IN p.metadata.colors
Filtrera data
WHERE Satsen stöder en mängd olika operatorer, inklusive aritmetiska, logiska, jämförelse- och strängåtgärder:
SELECT *
FROM products p
WHERE p.category IN ("Accessories", "Clothing") AND p.price BETWEEN 10 AND 50
Sammansättning och gruppering
Du kan använda aggregerade funktioner och gruppresultat:
SELECT p.category, COUNT(1) AS productCount
FROM products p
GROUP BY p.category
Distinkt, överkant och liknande
-
DISTINCTtar bort dubblettvärden. -
TOP Nbegränsar antalet resultat. -
LIKEstöder mönstermatchning med jokertecken.
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%"
Subqueries
Underfrågor möjliggör mer avancerad filtrering och projektion, inklusive kontroll av förekomsten av värden i matriser:
SELECT VALUE p.name
FROM products p
WHERE EXISTS (
SELECT VALUE c FROM c IN p.metadata.colors WHERE c LIKE "%blue%"
)