Referencia del lenguaje de consulta (versión 0.7)

El lenguaje de consulta de la API de visualización de Google te permite realizar varias manipulaciones de datos con la consulta a la fuente de datos.

Índice

Introducción

Por lo general, las visualizaciones esperan datos de alguna forma específica. Por ejemplo, un gráfico circular puede esperar datos como dos columnas: una etiqueta de texto y un valor numérico. Es posible que los datos dentro de la fuente de datos no coincidan exactamente con esta estructura. Por ejemplo, la fuente de datos puede tener más de dos columnas o el orden de las columnas puede no coincidir con el orden que espera el gráfico circular.

El lenguaje de consulta proporciona la capacidad de enviar solicitudes de manipulación y de formato de datos a la fuente de datos y garantizar que la estructura de datos que se muestra y el contenido coincidan con la estructura esperada.

La sintaxis del lenguaje de consulta es similar a SQL. Los desarrolladores familiarizados con SQL deben poder aprender y usar con rapidez este lenguaje de consulta. Hay muchos instructivos de SQL disponibles en la Web. Existen algunas diferencias entre este lenguaje de consulta y SQL, que se describen en la sección Sintaxis.

Ten en cuenta que no es necesario que las fuentes de datos implementen el lenguaje de consulta o, de ser así, que implementen todas las funciones del lenguaje. A menos que tengas motivos para creer lo contrario, no dependas de una fuente de datos para implementar todas las funciones de este lenguaje.

Cómo usar el lenguaje de consulta

Puedes adjuntar una string de consulta a una solicitud de fuente de datos de dos maneras: configurando la string de consulta desde el código JavaScript o estableciendo la string de consulta como parámetro en la URL de la fuente de datos. Si tu solicitud no incluye una string de consulta, el comportamiento predeterminado para una fuente de datos es mostrar todas las filas y columnas con su orden y formato de fila o columna predeterminados. Puedes cambiar eso mediante la inclusión de una cadena de consulta en tu solicitud a una fuente de datos.

Cómo configurar la consulta desde JavaScript

Para configurar la string de consulta desde el código JavaScript, llama al método setQuery de la clase google.visualization.Query.

var query = new google.visualization.Query(DATA_SOURCE_URL);
query.setQuery('select dept, sum(salary) group by dept');
query.send(handleQueryResponse);

Cómo configurar la consulta en la URL de la fuente de datos

La string de consulta se puede agregar a la URL de la fuente de datos con el parámetro tq. Configurar la consulta en el parámetro de URL en lugar de hacerlo en JavaScript te permite usar con facilidad las visualizaciones escritas por otros desarrolladores y, aun así, personalizar la consulta.

La cadena de consulta se debe codificar correctamente como un parámetro de URL. Puedes codificar una URL con la función encodeURIComponent de JavaScript, o puedes hacerlo con la herramienta de codificación al final de esta sección.

Ejemplo:

Considera la siguiente cadena de consulta para una hoja de cálculo de Google. (Ten en cuenta que los ID de columna en las hojas de cálculo siempre son letras; el texto del encabezado de la columna que se muestra en la hoja de cálculo publicada son etiquetas, no ID. Debes usar el ID, no la etiqueta, en tu string de consulta).

select A, sum(B) group by A

Cuando se codifica, la consulta se convierte en lo siguiente:

select%20A%2C%20sum(B)%20group%20by%20A

Supongamos que esta es la URL de tu hoja de cálculo:

https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4

Agrega /gviz/tq?tq=YOUR_QUERY_STRING a la URL de la hoja de cálculo para obtener tu string de consulta final:

https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4/gviz/tq?tq=select%A%2C%20sum(B)%20group%20by%20A

Usa la siguiente herramienta para codificar o decodificar una cadena de consulta:

Nota: Para acceder a los datos privados de la hoja de cálculo, se deben pasar credenciales de autorización explícitas con OAuth. Consulta la sección Hojas de cálculo de Google: Autorización para obtener más información.

Sintaxis de lenguaje

Descripción general

La sintaxis del lenguaje de consulta de la API de visualización de Google está diseñada para ser similar a la sintaxis de SQL. Sin embargo, es un subconjunto de SQL, con algunas características propias que deberás aprender. Si estás familiarizado con SQL, no debería ser demasiado difícil de aprender.

Tablas de datos

En este documento, se usa el término tabla de datos para referirse al conjunto de resultados de una consulta. Una tabla de datos está compuesta por filas y columnas. Cada columna de una tabla de datos tiene las siguientes propiedades:

  • Identificador (o ID de columna). Se usa para hacer referencia a columnas dentro de la consulta. Ten en cuenta que nunca debes hacer referencia a una columna por etiqueta en una consulta, solo por identificador. Sugerencia: Intenta no usar ningún ID que incluya espacios. Estos espacios son difíciles de administrar y pueden provocar errores pequeños, pero difíciles de encontrar en tu codificación. Además, los ID que incluyan espacios deben estar entre comillas.
  • Etiqueta. Es un objeto string que se suele mostrar a los usuarios finales. Por ejemplo, como una leyenda en un gráfico circular o un encabezado de columna en una tabla.
  • Tipo de datos. Los tipos de datos admitidos son string, number, boolean, date, datetime y timeofday. Todos los valores de una columna tendrán un tipo de datos que coincida con el tipo de columna, o un valor null. Estos tipos son similares, pero no idénticos, a los tipos de JavaScript que se describen en la sección Literals de esta página.
  • Patrón de formato. La fuente de datos puede definir patrones de formato para algunas o todas sus columnas. Puedes anular este patrón si incluyes una cláusula de formato.

Tabla usada en todos los ejemplos:

En esta sección, todos los ejemplos de consultas hacen referencia a la siguiente tabla. Los encabezados de las columnas son los identificadores de las columnas.

nombre
string
Departamento
string
Hora del almuerzo
timeofday
remuneración
number
contratar al día
date
edad
number
es sénior
boolean
longityStartTime
datetime
JoséEng12:00:00
1000
2005-03-1935true2007-12-02 15:56:00
DaveEng12:00:00
500
2006-04-1927falsonull
SallyEng13:00:00
600
2005-10-1030falsonull
BenVentas12:00:00
400
2002-10-1032true2005-03-09 12:30:00
DanaVentas12:00:00
350
2004-09-0825falsonull
MikeMarketing13:00:00
800
2005-01-1024true2007-12-30 14:40:00

Cláusulas de idioma

La sintaxis del lenguaje de consulta consta de las siguientes cláusulas. Cada cláusula comienza con una o dos palabras clave. Todas las cláusulas son opcionales. Las cláusulas están separadas por espacios. El orden de las cláusulas debe ser el siguiente:

Cláusula Uso
select Selecciona las columnas que se mostrarán y en qué orden. Si se omite, se muestran todas las columnas de la tabla, en su orden predeterminado.
where Muestra solo las filas que coinciden con una condición. Si se omite, se muestran todas las filas.
group by Agrega valores en todas las filas.
pivot Transforma valores distintos de columnas en columnas nuevas.
order by Ordena las filas por valores de columnas.
limit Limita la cantidad de filas que se muestran.
offset Omite un número determinado de primeras filas.
label Configura etiquetas de columna.
format Aplica formato a los valores de ciertas columnas mediante los patrones de formato especificados.
options Establece opciones adicionales.
from La cláusula from se borró del lenguaje.

 

Seleccionar

La cláusula select se usa para especificar las columnas que se mostrarán y su orden. Si no se especifica esta cláusula o se usa select *, todas las columnas de la tabla de fuente de datos se muestran en su orden original. Los identificadores hacen referencia a las columnas (no mediante etiquetas). Por ejemplo, en una hoja de cálculo de Google, los identificadores de columna son una o dos letras de columna de caracteres (A, B, C, ...).

Los elementos de una cláusula select pueden ser identificadores de columna, o el resultado de funciones de agregación, funciones escalares o operadores.

Ejemplos:

select *
select dept, salary
select max(salary)

En el siguiente ejemplo, las comillas inversas se usan para hacer referencia a los ID de columna que contienen espacios (dirección de correo electrónico) o palabras reservadas (fecha):

select `email address`, name, `date`

Ejecuta la siguiente consulta en la tabla de ejemplo:

select lunchTime, name

Muestra la siguiente respuesta:

Hora del almuerzo name
12:00:00José
12:00:00Dave
13:00:00Sally
12:00:00Ben
12:00:00Dana
13:00:00Mike

Dónde

La cláusula where se usa para mostrar solo las filas que coinciden con una condición específica.

Los operadores de comparación simple son <=, <, >, >=, =, !=, <>. Ambos operadores != <> de comparación significan no ser igual. Las strings se comparan por valor lexicográfico. Ten en cuenta que la igualdad se indica mediante =, no mediante ==, como en la mayoría de los lenguajes de programación. La comparación con null se realiza mediante is null o is not null.

Puedes unir varias condiciones con los operadores lógicos and, or y not. Los paréntesis se pueden usar para definir una prioridad explícita.

La cláusula where también admite algunos operadores de comparación de strings más complejos. Estos operadores toman dos strings como argumentos: cualquier argumento que no sea de string (por ejemplo, fechas o números) se convertirá en strings antes de la comparación. La coincidencia de strings distingue entre mayúsculas y minúsculas (puedes usar funciones escalares upper() o lower() para solucionar el problema).

  • contains: Una coincidencia de substring. toda contains part es verdadera si part está en todo. Ejemplo: where name contains 'John' coincide con 'John', 'John Adams', 'Long John Silver', pero no con 'john adams'.
  • starts with: Es una coincidencia de prefijo. valuestarts withprefix es verdadero si prefix está al principio de value. Ejemplos: where dept starts with 'engineering' coincide con “ingeniero” y “administradores de ingeniería”. where dept starts with 'e' coincide con “ingeniería”, “eng” y “e”.
  • ends with: Es una coincidencia de sufijo. valueends with suffix es verdadero si suffix está al final de value. Ejemplo: where role ends with 'y' coincide con “cowboy”, “boy” y “y”.
  • matches: Es una coincidencia de expresión regular (preg) previa. haystack matches needle es verdadera si la expresión regular en needle coincide con haystack. Ejemplos: where country matches '.*ia' coincide con India y Nigeria, pero no con Indiana. Tenga en cuenta que esta no es una búsqueda global, por lo que where country matches 'an' no coincidirá con "Canadá".
  • like: Es una búsqueda de texto que admite dos comodines: %, que coincide con cero o más caracteres de cualquier tipo, y _ (guion bajo), que coincide con cualquier carácter. Esto es similar al operador SQL LIKE. Ejemplo: where name like fre% coincide con “fre”, “fred” y “freddy”.

Ejemplos:

where salary >= 600
where dept != 'Eng' and date '2005-01-21' < hireDate
where (dept<>'Eng' and isSenior=true) or (dept='Sales') or seniorityStartTime is null

Ejecuta la siguiente consulta en la tabla de ejemplo:

select name where salary > 700

Muestra la siguiente respuesta:

name
José
Mike

Agrupar por

La cláusula group by se usa para agregar valores en las filas. Se crea una sola fila para cada combinación distinta de valores en la cláusula group-by. Los datos se ordenan de manera automática según las columnas de agrupación, a menos que una cláusula order by especifique lo contrario.

Nota: Si usas una cláusula group by, todas las columnas enumeradas en la cláusula select deben estar enumeradas en la cláusula group by o estar incluidas en una función de agregación.

Ejemplos:

select dept, max(salary) group by dept

Ejecuta la siguiente consulta en la tabla de ejemplo:

select lunchTime, avg(salary), count(age) group by isSenior,lunchTime

Muestra la siguiente respuesta:

Hora del almuerzo salario prom. cantidad
12:00:00 425 2
13:00:00 600 1
12:00:00 700 2
13:00:00 800 1

Tabla dinámica

La cláusula pivot se usa para transformar valores distintos en columnas en columnas nuevas. Por ejemplo, una tabla dinámica por una columna “año” produciría una tabla con una columna para cada año distinto que aparece en la tabla original. Esto podría ser útil, por ejemplo, si una visualización de gráfico de líneas dibuja cada columna como una línea separada. Si deseas dibujar una línea separada para cada año y “year” es una de las columnas de la tabla original, una buena opción sería usar una operación dinámica para realizar la transformación de datos necesaria.

Nota: Si usas una cláusula pivot, todas las columnas enumeradas en la cláusula select deben estar enumeradas en la cláusula group by o estar incluidas en una función de agregación.

Dado que varias filas pueden contener los mismos valores para las columnas dinámicas, este elemento implica la agregación. Ten en cuenta que, cuando usas pivot sin group by, la tabla de resultados contendrá exactamente una fila. Por ejemplo, ejecuta la siguiente consulta en la tabla de ejemplo:

select sum(salary) pivot dept

Muestra la siguiente respuesta:

Salario salarial en inglés Salario de marketing Salario de ventas
2100 800 750

Esto se debe a que 2,100 es la suma de los salarios del departamento de ingeniería, 800 para el departamento de Marketing, etcétera.

El uso de pivot junto con group by puede ser aún más útil, ya que crea una tabla en la que cada celda contiene el resultado de la agregación para la fila y la columna relevantes. Por ejemplo, ejecuta la siguiente consulta en la tabla de ejemplo:

select dept, sum(salary)
  group by dept
  pivot lunchTime

Muestra la siguiente respuesta:

dept 12:00:00 de sueldo total 13:00:00; sueldo total
Eng 1,500 600
Marketing null 800
Ventas 750 null

También puedes “invertir” esta tabla y cambiar las columnas y las filas si alternas entre las columnas pivot y group by. Ejecuta la siguiente consulta en la tabla de ejemplo:

select lunchTime, sum(salary)
  group by lunchTime
  pivot dept

Muestra la siguiente respuesta:

Hora del almuerzo Salario salarial en inglés Salario de marketing Salario de ventas
12:00:00 1,500 null 750
13:00:00 600 800 null

También puedes usar más de una columna en la cláusula pivot. En ese caso, las columnas de la tabla de respuesta están compuestas por todas las combinaciones únicas de valores en las columnas que existen en la tabla original. Por ejemplo, ejecuta la siguiente consulta en la tabla de ejemplo:

select sum(salary)
  pivot dept, lunchTime

Muestra la siguiente respuesta:

Ingeniería 12:00:00 Ing., 13:00:00 Marketing,13:00:00 de sueldo total Ventas,12:00:00 suma salarial
1,500 600 800 750

Ten en cuenta que solo las combinaciones que aparecen en la tabla original se proporcionan en las columnas de la tabla de respuesta. Por este motivo, no hay ninguna columna para Marketing, 12:00:00 o para Ventas, 13:00:00.

También es posible usar más de una agregación. Por ejemplo, ejecuta la siguiente consulta en la tabla de ejemplo:

select sum(salary), max(lunchTime)
  pivot dept

Muestra la siguiente respuesta:

Salario salarial en inglés Salario de marketing Salario de ventas Tiempo máximo de almuerzo Tiempo máximo para marketing de marketing Horas máximas de almuerzo de ventas
2100 800 750 13:00:00 13:00:00 12:00:00

Puedes combinar varias agregaciones en la cláusula select, varias columnas en la cláusula group by y varias columnas en la cláusula pivot. De forma interna, la agregación se realiza mediante la concatenación de las columnas en el grupo y las cláusulas pivot.

Las columnas especificadas en la cláusula pivot no pueden aparecer en las cláusulas select, group by o order by. Cuando se usa pivot, la cláusula order by no puede contener ninguna columna de agregación. Esto se debe a que, para cada agregación especificada en la cláusula select, se generan muchas columnas en la tabla de resultados. Sin embargo, puedes dar formato a las columnas de agregación cuando se usa pivot. El resultado de ese formato es que todas las columnas nuevas relevantes para la agregación específica, que genera la operación dinámica, tienen el formato del patrón especificado. En el ejemplo anterior, agregar format sum(salary) "some_format_string" afectará las siguientes columnas: Eng sumal salarial, suma suma de marketing y sueldo de ventas.

Puedes etiquetar columnas de agregación. Si no se especifica ninguna etiqueta en la cláusula label, la etiqueta de una columna que se produce como resultado de la dinamización está compuesta por la lista de valores de las columnas dinámicas, el tipo de agregación (mín., máx., suma...) y la etiqueta de la columna agregada. Por ejemplo, "Eng,12:00:00 sum salaary". Si solo se especificó una agregación en la cláusula select, se quita la parte de agregación de la etiqueta y solo se conserva la lista de valores en las columnas dinámicas. Por ejemplo, "Eng,12:00:00". Cuando una cláusula label especifica una etiqueta para una columna de agregación, la etiqueta solicitada se agrega a la lista de valores, cuando solo hay una agregación en la cláusula select y cuando hay más de una. Por ejemplo, label sum(salary) "sumsal" dará como resultado las etiquetas de columna “Eng,12:00:00 sumsal”, “Eng,13:00:00 sumsal”, etcétera.

Ordenar por

La cláusula order by se usa para ordenar las filas según los valores de las columnas especificadas.

Los elementos de una cláusula order by pueden ser identificadores de columna o el resultado de funciones de agregación, funciones escalares o operadores.

Ejemplos:

order by dept, salary desc
select dept, max(salary) group by dept order by max(salary)

Límite

La cláusula limit se usa para limitar la cantidad de filas que se muestran.

Ejemplo:

limit 100

Compensación

La cláusula offset se usa para omitir una cantidad determinada de primeras filas. Si se usa una cláusula limit, primero se aplica offset, por ejemplo, limit 15 offset 30 muestra las filas 31 a 45.

Ejemplos:

offset 10
limit 30 offset 210

Etiqueta

La cláusula label se usa a fin de establecer la etiqueta para una o más columnas. Ten en cuenta que no puedes usar un valor de etiqueta en lugar de un ID en una consulta.

Los elementos de una cláusula label pueden ser identificadores de columna o el resultado de funciones de agregación, funciones escalares o operadores.

Sintaxis:

label column_id label_string [,column_id label_string]
column_id
El identificador de la columna a la que se le asigna la etiqueta.
label_string
La etiqueta que se asignará a esa columna. Muchas visualizaciones usan la etiqueta de la columna como texto para mostrar al usuario final, como una etiqueta de leyenda en un gráfico circular. Las etiquetas son literales de string y siguen esas reglas de sintaxis.

Ejemplo:

En el siguiente ejemplo, se establece la etiqueta de la columna del departamento en “Departamento”, la etiqueta de la columna de nombre en “Nombre del empleado” y la etiqueta de la columna de ubicación en “Ubicación del empleado”:

label dept 'Department', name "Employee Name", location 'Employee Location'

Formato

La cláusula format se usa a fin de especificar un valor con formato para celdas en una o más columnas. Los datos que se muestran deben incluir un valor real y un valor con formato para cada celda en una columna con formato. Muchas visualizaciones usan el valor sin formato para los cálculos, pero el valor con formato para la visualización. Los patrones que especificas en esta cláusula por lo general se muestran en la propiedad pattern de las columnas correspondientes.

Sintaxis de patrones:

number, date, timeofday y datetime
Los patrones de fecha y número definidos por la ICU.
boolean
El patrón es una string en el formato 'value-if-true:value-if-false'.

Ejemplo:

format salary '#,##0.00', hireDate 'dd-MMM-yyyy', isSenior 'Yes!:Not yet'

 

Opciones

La cláusula options se usa a fin de controlar opciones adicionales para la ejecución de consultas. Las palabras clave posibles que pueden seguir a la cláusula options son:

  • no_format Quita los valores con formato del resultado y deja solo los valores subyacentes. Se puede usar cuando la visualización específica no usa los valores con formato para reducir el tamaño de la respuesta.
  • no_values Quita los valores subyacentes del resultado y deja solo los valores con formato. Se puede usar cuando la visualización específica usa solo los valores con formato para reducir el tamaño de la respuesta.

Funciones de manipulación de datos

Existen varios tipos de operadores y funciones que te permiten manipular o agregar datos en una sola columna, o comparar o combinar datos en distintas columnas. Algunos ejemplos incluyen suma() (para agregar todos los valores en una columna), máximo (para encontrar el valor más grande en una columna) y + (para sumar los valores de dos columnas en la misma fila).

Algunas funciones pueden aparecer en cualquier cláusula, mientras que otras pueden aparecer en un subconjunto de cláusulas. Esto se documenta a continuación.

Ejemplo:

Dada esta tabla... Si aplicamos esta consulta... Obtenemos este resultado.
Nombre Salario Impuesto StartDate
Sharon 1000 100 01/01/2009
Avital 2,000 200 21/01/2008
moran 3,000 300 12/2/2008
select upper(name), year(startDate)
Nombre año(fecha_inicio)
AVITAL 2008
MORAN 2008
SHARON 2009

 

El lenguaje de consulta de la API de visualización de Google define las siguientes funciones de manipulación de datos:

 

Funciones de agregación

Las funciones de agregación reciben un identificador de una sola columna y realizan una acción en todos los valores de cada grupo (los grupos se especifican con cláusulas group by o pivot, o todas las filas si esas cláusulas no se usan).

Ejemplos:

select max(salary)               // Returns a table with one column and one row.
select max(salary) group by dept // Returns a table with the max salary for each dept column value.
select max(salary) pivot dept    // Returns a one-row table with a column for each dept,
                                 //   and the max salary for that department.

Las funciones de agregación se pueden usar en las cláusulas select, order by, label y format. No pueden aparecer en las cláusulas where, group by, pivot, limit, offset ni options.

Estas son las funciones de agregación compatibles:

Nombre Descripción Tipos de columnas admitidos Tipo de datos que se muestra
avg() Muestra el valor promedio de todos los valores de la columna para un grupo. number number
count() Muestra el recuento de elementos de la columna especificada para un grupo. Las celdas nulas no se cuentan. De cualquier tipo number
max() Muestra el valor máximo de la columna para un grupo. Las fechas se comparan con otras más pequeñas, las string, en orden alfabético, y con mayúsculas y minúsculas. De cualquier tipo Mismo tipo que la columna
min() Muestra el valor mínimo de la columna para un grupo. Las fechas se comparan con otras más pequeñas, las string, en orden alfabético, con mayúsculas y minúsculas De cualquier tipo Mismo tipo que la columna
sum() Muestra la suma de todos los valores de la columna para un grupo. number number

Nota: Las funciones de agregación solo pueden tomar un identificador de columna como argumento:

max(startDate)                      // OK
min(firstScore) + min(secondScore)  // OK
max(year(startDate))                // INVALID. max requires column ID
sum(salary + perks)                 // INVALID. sum requires column ID.

Funciones escalares

Las funciones escalares operan en cero o más parámetros para producir otro valor. Las funciones escalares pueden pasar cualquier expresión que se evalúe como el parámetro del tipo adecuado. Ten en cuenta que estos tipos son los definidos en la sección Literals de este documento, que pueden ser un poco diferentes de los objetos JavaScript con nombres similares.

Ten en cuenta que el nombre de la columna se cambiará si se envuelve con una función escalar.

Las funciones escalares pueden tomar como parámetro todo lo que se evalúe como un solo valor:

year(max(startDate))
datediff(now(), todate(1234567890000))

Las funciones escalares se pueden usar en cualquiera de las siguientes cláusulas: select, where, group by, pivot, order by, label, y format.

Nombre
year()

Muestra el valor del año de un valor de fecha o de fecha y hora. Por ejemplo: year(date "2009-02-05") muestra 2009.

Parámetros: Un parámetro de tipo date o datetime
Tipo de datos que se muestra: number
month()

Muestra el valor de mes basado en cero de un valor de fecha o de fecha y hora. Por ejemplo: month(date "2009-02-05") muestra 1. Nota: Los meses se basan en 0, por lo que la función muestra 0 para enero, 1 para febrero, etcétera.

Parámetros: Un parámetro de tipo date o datetime
Tipo de datos que se muestra: number
day()

Muestra el día del mes de un valor de date o de fecha y hora. Por ejemplo: day(date "2009-02-05") muestra 5.

Parámetros: Un parámetro de tipo date o datetime
Tipo de datos que se muestra: number
hour()

Muestra el valor de hora de un valor de fecha y hora o de timeofday. Por ejemplo: hour(timeofday "12:03:17") muestra 12.

Parámetros: Un parámetro de tipo datetime o timeofday
Tipo de datos que se muestra: number
minute()

Muestra el valor de minuto de un valor datetime o timeofday. Por ejemplo: minute(timeofday "12:03:17") muestra 3.

Parámetros: Un parámetro de tipo datetime o timeofday
Tipo de datos que se muestra: number
second()

Muestra el segundo valor de un valor datetime o timeofday. Por ejemplo: second(timeofday "12:03:17") muestra 17.

Parámetros: Un parámetro de tipo datetime o timeofday
Tipo de datos que se muestra: number
millisecond()

Muestra la parte de milisegundos de un valor datetime o timeofday. Por ejemplo: millisecond(timeofday "12:03:17.123") muestra 123.

Parámetros: Un parámetro de tipo datetime o timeofday
Tipo de datos que se muestra: number
quarter()

Muestra el trimestre desde un valor date o datetime. Por ejemplo: quarter(date "2009-02-05") muestra 1. Ten en cuenta que los trimestres se basan en 1, por lo que la función muestra 1 para el primer trimestre, 2 para el segundo, etcétera.

Parámetros: Un parámetro de tipo date o datetime
Tipo de datos que se muestra: number
dayOfWeek()

Muestra el día de la semana a partir de un valor date o datetime. Por ejemplo: dayOfWeek(date "2009-02-26") muestra 5. Ten en cuenta que los días se basan en 1, por lo que la función muestra 1 para el domingo, 2 para el lunes, etcétera.

Parámetros: Un parámetro de tipo date o datetime
Tipo de datos que se muestra: number
now()

Muestra un valor de fecha y hora que representa el datetime actual en la zona horaria GMT.

Parámetros: ninguno
Tipo de datos que se muestra: datetime
dateDiff()

Muestra la diferencia en días entre dos valores date o datetime. Nota: En el cálculo, solo se usan las partes date de los valores y, por lo tanto, la función siempre muestra un valor de número entero. Por ejemplo: dateDiff(date "2008-03-13", date "2008-02-12") muestra 29; dateDiff(date "2009-02-13", date "2009-03-13") muestra -29. Los valores de tiempo se truncan antes de la comparación.

Parámetros: Dos parámetros de tipo date o datetime (pueden ser uno de cada uno)
Tipo de datos que se muestra: number
toDate()

Transforma el valor determinado en un valor date.

  • Dado un date, muestra el mismo valor.
  • Dada una datetime, muestra la parte date. Por ejemplo: toDate(dateTime "2009-01-01 12:00:00") muestra “2009-01-01”.
  • Dada una number N, muestra un date N milisegundos después de la época. La época abarca el 1 de enero de 1970, 00:00:00 GMT. Por ejemplo, toDate(1234567890000) muestra “2009-02-13”.
Parámetros: Un parámetro de tipo date, datetime o number
Tipo de datos que se muestra: date
upper()

Muestra el string especificado en letras mayúsculas. Por ejemplo: upper("foo") muestra “FOO”.

Parámetros: un parámetro de tipo string
Tipo de datos que se muestra: string
lower()

Muestra el string dado en letras minúsculas. Por ejemplo: lower("Bar") muestra “bar”.

Parámetros: un parámetro de tipo string
Tipo de datos que se muestra: string

Operadores aritméticos

Puedes usar operadores aritméticos para realizar operaciones matemáticas en cualquier elemento que se evalúe como un solo número (es decir, el resultado de las funciones de agregación, los operadores o las constantes).

Ejemplos:

select empSalary - empTax
select 2 * (max(empSalary) / max(empTax))

Se definen los siguientes operadores:

Nombre Descripción Parámetros Tipo de datos que se muestra
+ Muestra la suma de dos valores number. Dos number number
- Muestra la diferencia entre dos valores number. Dos number number
* Muestra el producto de dos number. Dos number number
/ Muestra el cociente de dos number. La división por cero muestra un valor nulo. Dos number number

Elementos del lenguaje

Literales

Los literales son valores que se usan para comparaciones o tareas. Los literales pueden ser string, números, valores booleanos o varios tipos de fecha y hora. Estos son algunos ejemplos de los literales que se usan en la sintaxis de consulta:

where startDate < date "2008-03-18"  // date "2008-03-18" is a date literal
limit 30                             // 30 is a numeric literal
format salary '#,##0.00', isSenior 'not yet:of course!'  // '#,##0.00' and 'not yet:of course!' are both string literals

A continuación, se indican los formatos para cada tipo de literal:

string
Un literal de string debe estar entre comillas simples o dobles. Ejemplos: "fourteen" 'hello world' "It's raining".
number
Los literales numéricos se especifican en notación decimal. Ejemplos: 3  3.0  3.14  -71  -7.2  .6
boolean
Los literales booleanos son true o false.
date
Usa la palabra clave date seguida de un literal de string en el formato yyyy-MM-dd. Ejemplo: date "2008-03-18".
timeofday
Usa la palabra clave timeofday seguida de un literal de string en el formato HH:mm:ss[.SSS] Ejemplo: timeofday "12:30:45".
datetime
Una fecha y hora, con la palabra clave datetime o la palabra clave timestamp seguida de un literal de string en el formato yyyy-MM-dd HH:mm:ss[.sss]. Ejemplo: datetime '2008-03-18 12:30:34.123'

Identificadores

Los identificadores (o ID) son string de texto que identifican columnas.

Importante: Si su identificador

  • Tiene espacios.
  • Es una palabra reservada,
  • Contiene cualquier cosa, excepto caracteres alfanuméricos o guiones bajos ([a-zA-Z0-9_]), o
  • Comienza con un dígito

debe estar entre comillas (no entre comillas simples).

De lo contrario, no es necesario que tu identificador esté entrecomillado. (Ten en cuenta que no todas las palabras clave definidas por la sintaxis son palabras reservadas; por lo tanto, puedes usar "max" como identificador, sin tener que volver a escribirlo entre comillas).

Ejemplos: col1   employee_table   `start date`   `7 days traffic`   `select`

No recomendamos elegir un identificador que requiera comillas, ya que puede ser fácil olvidarse de usar comillas o accidentalmente usar "comillas simples" en lugar de "comillas inversas". Estos son errores comunes y, a menudo, son difíciles de depurar.

Distinción entre mayúsculas y minúsculas

Los identificadores y los literales de string distinguen entre mayúsculas y minúsculas. Todos los demás elementos de idioma no distinguen entre mayúsculas y minúsculas.

Palabras reservadas

Las siguientes palabras reservadas deben estar en comillas inversas si se usan como un identificador:

and
asc
by
date
datetime
desc
false
format
group
label
limit
not
offset
options
or
order
pivot
select
timeofday
timestamp
true
where