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 a kérelem URI-jának gondos összeállítása szükséges. A következő 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, hajt végre egy GET műveletet a Táblák erőforráson a Lekérdezéstáblák műveletben leírtak szerint. A Tables erőforrás címzésének alapvető URI-ja a következő:

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

Egyetlen elnevezett tábla visszaadásához adja meg a táblát az alábbiak szerint:

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

Egy tábla összes entitásának visszaadásához adja meg a tábla nevét az URI-n a Tables erőforrás nélkül:

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

A lekérdezési eredmények a következő szerint vannak rendezvePartitionKeyRowKey: Az eredmények más módon történő rendezése jelenleg nem támogatott.

További beállításokat is megadhat a visszaadott táblák vagy entitások számá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éréshez 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 tördelése.

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 halmazá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 halmazbó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ót használó kérelmek esetén támogatott. További információ: LINQ-lekérdezések írása a Table Service-ben.

Megjegyzés

A kérelmek, amelyek az alapértelmezett maximumnál vagy a megadott maximális eredménynél többet adnak vissza, folytatási jogkivonatot adnak vissza a tördelés végrehajtásához. A folytatási jogkivonatokat tartalmazó további kérések esetén mindenképpen adja át az eredeti URI-t a kérelemhez. Ha például egy , $selectvagy $top egy lekérdezési beállítást adott meg $filteraz eredeti kérés részeként, ezt a beállítást a későbbi kérésekhez is hozzá kell adnia. Ellenkező esetben a későbbi kérések váratlan eredményeket adhatnak vissza. További információt a Lekérdezés időtúllépése és a Tördelés című témakörben talál.

Vegye figyelembe, hogy a többoldalas eredmények esetén a $top lekérdezési beállítás az eredmények maximális számát határozza meg oldalanként, nem pedig az eredmények maximális számát a teljes válaszkészletben.

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 adhatja meg azokat a feltételeket, amelyek alapján szűrni szeretné 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

Emellett a logikai tulajdonságok esetében a következő operátorok 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 kell kódolni, ha lekérdezési sztringben kell használni őket:

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

Szimpla idézőjel (')

A lekérdezési sztringekben szereplő szimpla idézőjeleket két egymást követő szimpla 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 is megírhatók. További információ: LINQ-lekérdezések írása a Table Service-ben.

Vegye figyelembe, hogy mind a beállítások, mind a $top$filter táblázatnevek szűrésére használható, a típustulajdonságokra Stringvaló szűréshez bemutatott szintaxis használatával.

A felső n entitás visszaadása

Bármely lekérdezés legfelső n entitásainak visszaadásához adja meg a $top lekérdezési beállítást. Az alábbi példa a Customers (Ügyfelek) nevű tábla 10 első 10 entitását adja vissza:

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

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

Mivel a PartitionKey tulajdonságok egy RowKey entitás elsődleges kulcsát képezik, speciális szintaxissal azonosíthatja az entitást 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. Mind a PartitionKeyRowKey tulajdonságok, mind a tulajdonságok típusa.String

Szűrősztringek létrehozása

Szűrősztring létrehozásakor tartsa szem előtt az alábbi szabályokat:

  • Az OData protokollspecifikáció által meghatározott logikai operátorok használatával összehasonlíthat 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

Mindenképpen ellenőrizze, hogy egy tulajdonság explicit módon lett-e begépelve, mielőtt azt feltételezné, hogy nem sztring típusú. Ha egy tulajdonság explicit módon lett begépelve, a típus az entitás visszaadásakor a válaszban lesz feltüntetve. Ha a tulajdonság nem lett explicit módon begépelve, akkor a típus a következő lesz String, és a típus nem jelenik meg a válaszban az entitás visszaadásakor.

Szűrés sztringtulajdonságok alapján

Sztringtulajdonságok szűrésekor a sztringkonstanst foglalja szimpla idézőjelek közé.

Az alábbi példa a tulajdonságokra PartitionKey szűr RowKey ; 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 egy FirstName tulajdonságra 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őtagok egyeztetését azonban összehasonlító operátorok használatával is elvégezheti a kívánt előtagon. 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ágok alapján

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 entitást visszaadja, Age amelynek értéke nagyobb, mint 30:

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

Ez a példa az összes olyan entitást visszaadja, AmountDue 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ágok alapján

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, amelyben a IsActive tulajdonság értéke true:

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

Szűrés Dátum/idő tulajdonságok alapján

Ha értékre DateTime szeretne szűrni, adja meg az datetime URI kulcsszót, majd a dátum/idő állandót szimpla idézőjelek között. A dátum/idő állandónak kombinált UTC formátumban kell lennie, a Dátum/idő értékek formázása című szakaszban leírtak szerint.

Az alábbi példa olyan entitásokat ad vissza, amelyek CustomerSince tulajdonsága 2008. július 10-ével egyenlő:

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 a kulcsszót guid az URI-n, majd a guid állandót egyetlen idézőjelben.

Az alábbi példa olyan entitásokat ad vissza, amelyek tulajdonsága GuidValue 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 lapozása
LINQ-lekérdezések írása a Table Service-ben