Exportar (0) Imprimir
Expandir todo

Consultar tablas y entidades

Actualizado: febrero de 2014

Cuando se consultan tablas y entidades en el servicio Tabla, es necesario poner especial cuidado al crear el URI de la solicitud. En las secciones siguientes se describen las opciones de consulta y se muestran algunos escenarios habituales.

Para devolver todas las tablas de una cuenta de almacenamiento determinada, realice una operación GET en el recurso Tablas, tal como se describe en la operación Query Tables (API de REST). El URI básico para especificar la dirección del recurso Tablas es el siguiente:

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

Para devolver una única tabla con nombre, especifique la tabla del modo siguiente:

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

Para devolver todas las entidades de una tabla, especifique el nombre de la tabla en el URI, sin el recurso Tablas:

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

Los resultados de la consulta se ordenan por PartitionKey y, a continuación, por RowKey. Actualmente, no es posible ordenar los resultados de otra forma.

Puede especificar opciones adicionales para limitar el conjunto de tablas o de entidades devueltas, tal como se describe en la siguiente sección, Opciones de consulta admitidas.

noteNota
El número de entidades devueltas para una única solicitud puede estar limitado si la consulta supera el número máximo de entidades, si supera el intervalo de tiempo de espera, o si cruza el límite de una partición. Para obtener más información, vea Tiempo de espera y paginación de las consultas.

El servicio Tabla admite las opciones de consulta siguientes, que se ajustan a la Especificación de protocolo OData. Puede utilizar estas opciones para limitar el conjunto de tablas, entidades o propiedades de entidad devueltas por una consulta.

 

Opción de consulta del sistema Descripción

$filter

Devuelve solo las tablas o las entidades que pasan el filtro especificado.

Tenga en cuenta que no se permiten más de 15 comparaciones discretas en una cadena $filter.

$top

Devuelve solo las n primeras tablas o entidades del conjunto.

$select

Devuelve las propiedades deseadas de una entidad del conjunto. Esta opción de consulta solo se admite en solicitudes que usan la versión 2011-08-18 o una versión más reciente. Para obtener más información, vea Escribir consultas LINQ con el servicio Tabla.

noteNota
No se admiten opciones de consulta adicionales definidas por OData por el servicio Tabla.

En las cláusulas $filter, puede utilizar operadores de comparación para especificar los criterios con los que se filtrarán los resultados de la consulta.

Para todos los tipos de propiedades, se admiten los operadores de comparación siguientes:

 

Operador Expresión URI

Equal

eq

GreaterThan

gt

GreaterThanOrEqual

ge

LessThan

lt

LessThanOrEqual

le

NotEqual

ne

Además, las propiedades booleanas admiten los operadores siguientes:

 

Operador Expresión URI

And

and

Not

not

Or

or

Para obtener más información sobre sintaxis de filtro, vea la Especificación de protocolo de OData.

Los siguientes caracteres deben estar codificados si se van a utilizar en una cadena de consulta:

  • Barra diagonal (/)

  • Signo de interrogación (?)

  • Dos puntos (:)

  • Arroba (@)

  • Y comercial (&)

  • Signo igual (=)

  • Signo más (+)

  • Coma (,)

  • Signo de dólar ($)

En los ejemplos siguientes se muestra cómo crear el URI de solicitud para algunas consultas de entidad habituales usando la sintaxis REST. Las mismas consultas se pueden escribir utilizando la sintaxis LINQ. Para obtener más información, vea Escribir consultas LINQ con el servicio Tabla.

Tenga en cuenta que las opciones $top y $filter también se pueden utilizar para filtrar según los nombres de tabla utilizando la sintaxis mostrada para filtrar según las propiedades de tipo String.

Para devolver las n primeras entidades en una consulta, especifique la opción de consulta $top. El ejemplo siguiente devuelve las 10 primeras entidades de una tabla denominada Customers:

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

Dado que las propiedades PartitionKey y RowKey forman la clave principal de una entidad, puede utilizar una sintaxis especial para identificar la entidad, tal como se indica a continuación:

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

O bien, puede especificar estas propiedades como parte de la opción $filter, tal como se muestra en la sección siguiente.

Tenga en cuenta que los nombres de las propiedades de clave y los valores constantes distinguen entre mayúsculas y minúsculas. Las propiedades PartitionKey y RowKey son del tipo String.

Al crear una cadena de filtro, tenga presentes estas reglas:

  • Use los operadores lógicos definidos por la Especificación de protocolo de OData para comparar una propiedad con un valor. Tenga en cuenta que no es posible comparar una propiedad con un valor dinámico; un lado de la expresión debe ser una constante.

  • El nombre de la propiedad, el operador y el valor constante deben separarse con espacios codificados para URL. Un espacio codificado para URL es %20.

  • Todas las partes de la cadena de filtro distinguen entre mayúsculas y minúsculas.

  • El valor constante debe ser del mismo tipo de datos que la propiedad para que el filtro devuelva resultados válidos. Para obtener más información sobre los tipos de propiedades admitidos, vea Introducción al modelo de datos del servicio Tabla.

noteNota
Asegúrese de comprobar si una propiedad tiene un tipo explícito antes de dar por hecho que es de un tipo distinto de cadena. Si se ha escrito explícitamente una propiedad, el tipo se indica dentro de la respuesta cuando se devuelve la entidad. Si la propiedad no se ha escrito explícitamente, será del tipo String, y el tipo no se indicará dentro de la respuesta cuando se devuelva la entidad.

Al filtrar según propiedades de cadena, agregue la constante de cadena entre comillas simples.

En el ejemplo siguiente se filtra según las propiedades PartitionKey y RowKey; también podrían agregarse otras propiedades que no son clave a la cadena de consulta.

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

En el ejemplo siguiente se filtra según las propiedades FirstName y LastName:

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

Observe que el servicio Tabla no admite consultas con caracteres comodín. Sin embargo, puede usar operadores de comparación con el prefijo deseado para obtener coincidencias con prefijos. El ejemplo siguiente devuelve las entidades cuya propiedad LastName comienza por la letra "A":

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

Para filtrar según un número entero o un número de punto flotante, especifique en el URI el valor de la constante sin comillas.

Este ejemplo devuelve todas las entidades que tienen una propiedad Age cuyo valor es superior a 30:

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

Este ejemplo devuelve todas las entidades que tienen una propiedad AmountDue cuyo valor es menor o igual que 100.25:

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

Para filtrar según un valor booleano, especifique true o false sin comillas.

El ejemplo siguiente devuelve todas las entidades cuya propiedad IsActive está establecida en true:

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

Para filtrar según un valor DateTime, especifique en el URI la palabra clave datetime seguida de la constante de fecha y hora entre comillas simples. La constante de fecha y hora debe estar en formato UTC combinado, tal y como se describe en Formato de los valores de la propiedad DateTime.

El ejemplo siguiente devuelve las entidades cuya propiedad CustomerSince es igual al 10 de julio de 2008:

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

Para filtrar según un valor de GUID, especifique en el URI la palabra clave guid seguida de la constante de GUID entre comillas simples.

El ejemplo siguiente devuelve las entidades cuya propiedad GuidValue es igual a:

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

Vea también

Mostrar:
© 2014 Microsoft