Táblák és entitások lekérdezése

A táblák és entitások táblaszolgáltatásban való lekérdezéséhez gondosan kell felépíteni a kérelem URI-ját. Az alábbi szakaszok ismertetik a lekérdezési lehetőségeket, és bemutatnak néhány gyakori forgatókönyvet.

Egyszerű lekérdezési szintaxis

Ha egy adott tárfiók összes tábláját vissza szeretné adni, hajtsa végre GET a műveletet a Táblák erőforráson a Lekérdezéstáblák műveletben leírtak szerint. A Táblák erőforrás kezelésére szolgáló alapszintű URI a következő:

https://myaccount.table.core.windows.net/Tables  

Ha egyetlen nevű táblát szeretne visszaadni, adja meg a táblát az alábbiak szerint:

https://myaccount.table.core.windows.net/Tables('MyTable')  

Ha egy tábla összes entitását vissza szeretné adni, adja meg a tábla nevét az URI-n a Táblák erőforrás nélkül:

https://myaccount.table.core.windows.net/MyTable()  

A lekérdezés eredményei a PartitionKeyszerint vannak rendezve, majd a szerint RowKey. Az eredmények más módon történő rendelése jelenleg nem támogatott.

További beállításokat is megadhat a visszaadott táblák vagy entitások halmazának korlátozásához az alábbi Támogatott lekérdezési beállítások szakaszban leírtak szerint.

Megjegyzés

Az egyetlen kérelemhez visszaadott entitások száma korlátozott lehet, ha a lekérdezés meghaladja az entitások maximális számát, túllépi az időtúllépési időközt, vagy átlép egy partícióhatárt. További információ: Lekérdezés időtúllépése és lapszámozása.

Támogatott lekérdezési beállítások

A Table szolgáltatás az alábbi lekérdezési beállításokat támogatja, amelyek megfelelnek az OData protokoll specifikációjának. Ezekkel a beállításokkal korlátozhatja a lekérdezés által visszaadott táblák, entitások vagy entitástulajdonságok készletét.

Rendszer lekérdezési lehetőség Description
$filter Csak a megadott szűrőnek megfelelő táblákat vagy entitásokat adja vissza.

Vegye figyelembe, hogy egy sztringben $filter legfeljebb 15 különálló összehasonlítás engedélyezett.
$top Csak a felső n táblákat vagy entitásokat adja vissza a készletből.
$select Egy entitás kívánt tulajdonságait adja vissza a készletből. Ez a lekérdezési beállítás csak a 2011-08-18-es vagy újabb verziójú kérések esetében támogatott. További információ: LINQ-lekérdezések írása a Table Service-ben.

Megjegyzés

Az alapértelmezett maximumnál vagy a megadott maximális számú eredménynél többet visszaküldött kérések a lapszámozás végrehajtásához egy folytatási jogkivonatot adnak vissza. A folytatási jogkivonatokat tartalmazó további kérések esetén mindenképpen adja át az eredeti URI-t a kérésen. Ha például egy $filter, $selectvagy $top lekérdezési beállítást adott meg az eredeti kérés részeként, akkor ezt a beállítást a későbbi kérésekre is fel kell vennie. Ellenkező esetben a későbbi kérések váratlan eredményeket adhatnak vissza. További információ: Lekérdezés időtúllépése és lapszámozása .

Vegye figyelembe, hogy a $top lekérdezési beállítás abban az esetben, ha az eredmények lapszámozottak, az eredmény oldalonkénti maximális számát adja meg, nem pedig a teljes válaszkészletben található eredmények maximális számát.

Az OData által definiált további lekérdezési beállításokat a Table szolgáltatás nem támogatja.

Támogatott összehasonlító operátorok

A záradékon $filter belül összehasonlító operátorok használatával megadhatja, hogy mely feltételek alapján szűrje a lekérdezési eredményeket.

Az összes tulajdonságtípus esetében a következő összehasonlító operátorok támogatottak:

Operátor URI-kifejezés
Equal eq
GreaterThan gt
GreaterThanOrEqual ge
LessThan lt
LessThanOrEqual le
NotEqual ne

A logikai tulajdonságok esetében a következő operátorok is támogatottak:

Operátor URI-kifejezés
And and
Not not
Or or

A szűrőszintaxissal kapcsolatos további információkért lásd az OData protokoll specifikációját.

Lekérdezési sztring kódolása

A következő karaktereket kódolni kell, ha lekérdezési sztringben kell használni őket:

  • Perjel (/)
  • Kérdőjel (?)
  • Kettőspont (:)
  • "At" szimbólum (@)
  • Ampersand (&)
  • Egyenlőségjel (=)
  • Pluszjel (+)
  • Vessző (,)
  • Dollárjel ($)

Egy idézőjel (')

A lekérdezési sztringekben szereplő egyetlen idézőjeleket két egymást követő egyetlen idézőjelként kell ábrázolni (''). Az "o'clock" például a következő:

o''clock

Minta lekérdezési kifejezések

Az alábbi minták bemutatják, hogyan hozhat létre kérelem URI-t néhány tipikus entitás-lekérdezéshez REST szintaxis használatával. Ugyanezek a lekérdezések linq szintaxissal írhatók. További információ: LINQ-lekérdezések írása a Table Service-ben.

Vegye figyelembe, hogy a és $filter a $top beállítás is használható a táblanevek szűrésére, a típus tulajdonságaira Stringvaló szűréshez bemutatott szintaxis használatával.

A top n entitások visszaadása

A lekérdezések legfelső n entitásainak visszaadásához adja meg a $top lekérdezési lehetőséget. Az alábbi példa a 10 legnagyobb entitást adja vissza egy Customers (Ügyfelek) nevű táblából:

https://myaccount.table.core.windows.net/Customers()?$top=10  

Szűrés a PartitionKey és a RowKey tulajdonságain

Mivel a PartitionKey és RowKey a tulajdonságok egy entitás elsődleges kulcsát alkotják, az entitás azonosításához használhat speciális szintaxist az alábbiak szerint:

https://myaccount.table.core.windows.net/Customers(PartitionKey='MyPartition',RowKey='MyRowKey1')  

A $filter lehetőség részeként is meghatározhatja ezeket a tulajdonságokat, a következő szakaszban látható módon.

Vegye figyelembe, hogy a kulcstulajdonság nevei és az állandó értékek megkülönböztetik a kis- és nagybetűket. A és RowKey a PartitionKey tulajdonság típusa is .String

Szűrősztringek létrehozása

Szűrősztring létrehozásakor tartsa szem előtt ezeket a szabályokat:

  • Az OData protokollspecifikáció által meghatározott logikai operátorok használatával hasonlítson össze egy tulajdonságot egy értékkel. Vegye figyelembe, hogy egy tulajdonság nem hasonlítható össze dinamikus értékkel; a kifejezés egyik oldalának állandónak kell lennie.

  • A tulajdonság nevét, az operátort és az állandó értéket URL-kódolású szóközzel kell elválasztani. A szóköz URL-kódolása %20.

  • A szűrési sztring minden része megkülönbözteti a kis- és nagybetűket.

  • Az állandó érték adattípusának meg kell egyeznie a tulajdonságéval ahhoz, hogy a szűrő érvényes eredményeket adjon vissza. További információ a támogatott tulajdonságtípusokról: A Table szolgáltatás adatmodelljének ismertetése.

Megjegyzés

Mielőtt feltételezné, hogy egy tulajdonság nem sztring típusú, ellenőrizze, hogy egy tulajdonság explicit módon lett-e begépelve. Ha egy tulajdonságot explicit módon gépeltek be, a típus a válaszon belül jelenik meg az entitás visszaadásakor. Ha a tulajdonság nincs explicit módon begépelve, akkor a típusa String, és a típus nem jelenik meg a válaszban az entitás visszaadásakor.

Szűrés sztringtulajdonságokon

Sztringtulajdonságok szűrésekor a sztringállandót egyetlen idézőjelek közé kell befoglalni.

Az alábbi példa a és RowKey a PartitionKey tulajdonságra szűr; további nem kulcstulajdonságok is hozzáadhatók a lekérdezési sztringhez.

https://myaccount.table.core.windows.net/Customers()?$filter=PartitionKey%20eq%20'MyPartitionKey'%20and%20RowKey%20eq%20'MyRowKey1'  

Az alábbi példa egy és LastName tulajdonságra FirstName szűr:

https://myaccount.table.core.windows.net/Customers()?$filter=LastName%20eq%20'Smith'%20and%20FirstName%20eq%20'John'  

Vegye figyelembe, hogy a Table szolgáltatás nem támogatja a helyettesítő lekérdezéseket. Az előtag-egyeztetést azonban a kívánt előtag összehasonlító operátorainak használatával végezheti el. Az alábbi példa az "A" betűvel kezdődő tulajdonsággal rendelkező LastName entitásokat adja vissza:

https://myaccount.table.core.windows.net/Customers()?$filter=LastName%20ge%20'A'%20and%20LastName%20lt%20'B'  

Szűrés numerikus tulajdonságokon

Ha egész számra vagy lebegőpontos számra szeretne szűrni, adja meg az URI állandó értékét idézőjelek nélkül.

Ez a példa az összes olyan tulajdonsággal rendelkező Age entitást adja vissza, amelynek értéke nagyobb, mint 30:

https://myaccount.table.core.windows.net/Customers()?$filter=Age%20gt%2030  

Ez a példa az összes olyan tulajdonsággal rendelkező AmountDue entitást adja vissza, amelynek értéke kisebb vagy egyenlő 100,25-nél:

https://myaccount.table.core.windows.net/Customers()?$filter=AmountDue%20le%20100.25%20  

Szűrés logikai tulajdonságokra

Ha logikai értékre szeretne szűrni, adjon meg vagy false ne adjon meg true idézőjeleket.

Az alábbi példa az összes olyan entitást visszaadja, ahol a IsActive tulajdonság értéke true:

https://myaccount.table.core.windows.net/Customers()?$filter=IsActive%20eq%20true  

Szűrés DateTime-tulajdonságok alapján

Ha egy DateTime értékre szeretne szűrni, adja meg a kulcsszót datetime az URI-n, majd a dátum/idő állandót egyetlen idézőjelben. A dátum-/időállandónak kombinált UTC formátumban kell lennie, a Dátum/idő értékek formázása szakaszban leírtak szerint.

Az alábbi példa olyan entitásokat ad vissza, amelyekben a CustomerSince tulajdonság értéke 2008. július 10.:

https://myaccount.table.core.windows.net/Customers()?$filter=CustomerSince%20eq%20datetime'2008-07-10T00:00:00Z'  

Szűrés GUID-tulajdonságok alapján

Ha EGY GUID-értékre szeretne szűrni, adja meg az guid URI kulcsszóját, majd a GUID állandót egyetlen idézőjelben.

Az alábbi példa olyan entitásokat ad vissza, amelyek GuidValue tulajdonsága egyenlő:

https://myaccount.table.core.windows.net/Customers()?$filter=GuidValue%20eq%20guid'a455c695-df98-5678-aaaa-81d3367e5a34'  

Lásd még:

A Table Service szolgáltatással kapcsolatos fogalmak
A Table Service adatmodelljének ismertetése
A Table Service erőforrásainak kezelése
Lekérdezés időtúllépése és tördelése
LINQ-lekérdezések írása a Table Service-ben