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 PartitionKey
szerint 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
, $select
vagy $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 String
való 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