Introducción a SQL en BigQuery
En este documento, se proporciona una descripción general de las declaraciones y los dialectos SQL compatibles en BigQuery.
Descripción general
GoogleSQL es un lenguaje de consulta estructurado (SQL) compatible con ANSI que incluye los siguientes tipos de declaraciones admitidas:
- Las declaraciones de consulta, también conocidas como declaraciones de lenguaje de consulta de datos (DQL), son el método principal para analizar datos en BigQuery. Analizan una o más tablas o expresiones y muestran las filas de resultados procesados.
- Las instrucciones de lenguaje de procedimiento son extensiones de procedimiento de GoogleSQL que te permiten ejecutar varias instrucciones de SQL en una solicitud. Las declaraciones de procedimiento pueden usar variables e instrucciones de flujo de control, y pueden tener efectos secundarios.
- Las declaraciones del lenguaje de definición de datos (DDL) te permiten crear y modificar objetos de bases de datos, como tablas, vistas, funciones y políticas de acceso a nivel de fila.
- Las declaraciones del lenguaje de manipulación de datos (DML) te permiten actualizar, insertar y borrar datos de tus tablas de BigQuery.
- Las declaraciones del lenguaje de control de datos (DCL) te permiten controlar los recursos del sistema de BigQuery, como el acceso y la capacidad.
- Las declaraciones del lenguaje de control de transacciones (TCL) te permiten administrar transacciones para las modificaciones de datos.
- Otras declaraciones proporcionan funciones adicionales, como la exportación de datos.
Dialectos de BigQuery SQL
BigQuery admite el dialecto GoogleSQL, pero también está disponible un dialecto SQL heredado. Si eres nuevo en BigQuery, deberías usar GoogleSQL, ya que admite la mayor variedad de funciones. Por ejemplo, las características como las declaraciones DDL y DML solo se admiten con GoogleSQL. SQL heredado se mantiene para garantizar la retrocompatibilidad y recomendamos que los clientes migren si usan SQL heredado.
Cambia el dialecto predeterminado
La interfaz que usas para consultar tus datos determina qué dialecto de consulta es el predeterminado. Para cambiar a un dialecto diferente, sigue estos pasos:
Consola
El dialecto predeterminado para la consola de Google Cloud es GoogleSQL. Para cambiar el dialecto a SQL heredado, haz lo siguiente:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, haz clic en el botón Más > Configuración de consulta.
En la sección Opciones avanzadas, en Dialecto SQL, haz clic en Heredado y, luego, en Guardar. Esto establece la opción de SQL heredado para esta consulta. Cuando haces clic en Redactar consulta nueva para crear una consulta nueva, debes volver a elegir la opción SQL heredado.
SQL
El dialecto predeterminado de SQL es GoogleSQL.
Puedes configurar el dialecto SQL si incluyes el prefijo #standardSQL
o #legacySQL
como parte de tu consulta.
Estos prefijos no distinguen mayúsculas de minúsculas, deben preceder a la consulta y deben separarse de la consulta con un carácter de salto de línea. En el siguiente ejemplo, se establece el dialecto en SQL heredado y se consulta el conjunto de datos de natalidad:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
#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.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
El dialecto predeterminado para las consultas en la herramienta de línea de comandos de bq
es SQL heredado. Para cambiar al dialecto GoogleSQL, agrega las marcas --use_legacy_sql=false
o --nouse_legacy_sql
a tu declaración de línea de comandos.
Cambia al dialecto GoogleSQL
Para usar la sintaxis de GoogleSQL en un trabajo de consulta, establece el parámetro use_legacy_sql
en false
.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
Configura GoogleSQL como el dialecto predeterminado
Puedes establecer GoogleSQL como el dialecto predeterminado para la herramienta de línea de comandos y la shell interactiva si editas el archivo de configuración de la herramienta de línea de comandos: .bigqueryrc
.
Si deseas obtener más información sobre .bigqueryrc
, consulta Configura los valores predeterminados para marcas de línea de comandos.
Para configurar --use_legacy_sql=false
en .bigqueryrc
, haz lo siguiente:
- Abre
.bigqueryrc
en un editor de texto. De forma predeterminada,.bigqueryrc
debe aparecer en el directorio de usuarios, por ejemplo,$HOME/.bigqueryrc
. Agrega el siguiente texto al archivo. En este ejemplo, se establece GoogleSQL como la sintaxis predeterminada para las consultas y el comando
mk
(que se usa cuando se crea una vista). Si ya configuraste los valores predeterminados para las marcas de comandoquery
omk
, no es necesario que vuelvas a agregar[query]
o[mk]
.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Guarde y cierre el archivo.
Si usas la shell interactiva, debes salir y reiniciar para que se apliquen los cambios.
Si deseas obtener información sobre las marcas de línea de comandos disponibles, consulta Referencia de la herramienta de línea de comandos de bq.
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para C#.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
De forma predeterminada, la biblioteca de C# usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, establece el parámetro UseLegacySql
en true
.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Según la configuración predeterminada, la biblioteca cliente de Go usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, establece la propiedad UseLegacySQL
dentro de la configuración de la consulta en true
.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Según la configuración predeterminada, la biblioteca cliente de Java usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, establece el parámetro useLegacySql
en true
.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
De forma predeterminada, la biblioteca cliente de Node.js usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, establece el parámetro useLegacySql
en true
.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para PHP.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
De forma predeterminada, la biblioteca cliente de PHP usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, establece el parámetro useLegacySql
en true
.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
De forma predeterminada, la biblioteca cliente de Python usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, establece el parámetro use_legacy_sql
en True
.
Rita
Antes de probar este ejemplo, sigue las instrucciones de configuración para Ruby incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
De forma predeterminada, la biblioteca cliente de Ruby usa GoogleSQL.Cambia al dialecto SQL heredado
Para usar la sintaxis de SQL heredado en un trabajo de consulta, pasa la opción legacy_sql: true
con tu consulta.
¿Qué sigue?
- Para obtener información sobre cómo ejecutar una consulta de SQL en BigQuery, revisa Ejecuta trabajos de consulta interactivos y por lotes.
- Para obtener más información sobre la optimización de consultas en general, consulta Introducción a la optimización del rendimiento de las consultas.
- Si deseas obtener información sobre la sintaxis de GoogleSQL que se usa para consultar datos en BigQuery, visita Sintaxis de consulta.