En este documento se ofrece una descripción general de las instrucciones y los dialectos de SQL admitidos en BigQuery.
BigQuery admite el dialecto GoogleSQL, pero también está disponible un dialecto SQL antiguo. Si no tienes mucha experiencia con BigQuery, te recomendamos que uses GoogleSQL, ya que admite la mayor variedad de funciones. Por ejemplo, las funciones como las instrucciones DDL y DML solo se admiten con GoogleSQL. El SQL antiguo se mantiene para ofrecer compatibilidad con versiones anteriores. Recomendamos a los clientes que migrate si están usando SQL antiguo.
La interfaz que uses para consultar tus datos determinará qué dialecto de consulta se usará de forma predeterminada. Para cambiar a otro dialecto, sigue estos pasos:
Consola
El dialecto predeterminado de la consola de Google Cloud es GoogleSQL. Para cambiar el dialecto a SQL antiguo, sigue estos pasos:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, haz clic en el botón Más > Configuración de consultas.
En la sección Opciones avanzadas, en Dialecto SQL, haga clic en Antiguo y, a continuación, en Guardar. Define la opción de SQL antiguo para esta consulta. Cuando hagas clic en add_box Consulta SQL para crear una consulta, debes volver a seleccionar la opción de SQL antiguo.
SQL
El dialecto de SQL predeterminado es GoogleSQL.
Puedes definir el dialecto de SQL incluyendo el prefijo #standardSQL o #legacySQL como parte de tu consulta.
Estos prefijos de consulta no distinguen entre mayúsculas y minúsculas, deben preceder a la consulta y deben estar separados de la consulta por un carácter de salto de línea. En el siguiente ejemplo se define el dialecto como SQL antiguo y se consulta el conjunto de datos natality:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
El dialecto de consulta predeterminado de la herramienta de línea de comandos bq es el SQL antiguo. Para cambiar al dialecto GoogleSQL, añade la marca --use_legacy_sql=false o --nouse_legacy_sql a la instrucción de la línea de comandos.
Cambiar al dialecto de GoogleSQL
Para usar la sintaxis de GoogleSQL en un trabajo de consulta, asigna el valor false al parámetro use_legacy_sql.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
Definir GoogleSQL como dialecto predeterminado
Puedes definir GoogleSQL como dialecto predeterminado para la herramienta de línea de comandos y el shell interactivo editando el archivo de configuración de la herramienta de línea de comandos:
.bigqueryrc.
Para obtener más información sobre .bigqueryrc, consulta Definir valores predeterminados para las marcas específicas de un comando.
Para definir --use_legacy_sql=false en .bigqueryrc, haz lo siguiente:
- Abre
.bigqueryrcen un editor de texto. De forma predeterminada,.bigqueryrcdebe estar en tu directorio de usuario, por ejemplo,$HOME/.bigqueryrc. Añade el siguiente texto al archivo. En este ejemplo, se define GoogleSQL como la sintaxis predeterminada de las consultas y del comando
mk(que se usa al crear una vista). Si ya has configurado valores predeterminados para las marcas de comandoqueryomk, no tienes que volver a añadir[query]ni[mk].[query] --use_legacy_sql=false [mk] --use_legacy_sql=falseGuarda y cierra el archivo.
Si estás usando la shell interactiva, debes salir y volver a iniciarla para que se apliquen los cambios.
Para obtener información sobre las marcas de línea de comandos disponibles, consulta la referencia de la herramienta de línea de comandos bq.
C#
Antes de probar este ejemplo, sigue las C#instrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de C# usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true al parámetro UseLegacySql.
Go
Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de cliente de Go usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en una tarea de consulta, asigna el valor true a la propiedad UseLegacySQL en la configuración de la consulta.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de cliente de Java usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true al parámetro useLegacySql.
Node.js
Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de cliente de Node.js usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true al parámetro useLegacySql.
PHP
Antes de probar este ejemplo, sigue las PHPinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de cliente de PHP usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true al parámetro useLegacySql.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de cliente de Python usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor True al parámetro use_legacy_sql.
Ruby
Antes de probar este ejemplo, sigue las Rubyinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
De forma predeterminada, la biblioteca de cliente de Ruby usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, incluye la opción legacy_sql: true
en la consulta.