Cómo usar ChatGPT para escribir consultas SQL

Escribir consultas SQL puede llevar mucho tiempo y ser un desafío. Si tiene la tarea de crear soluciones para escenarios comerciales específicos, debe asegurarse de que sus consultas sean eficientes y precisas.

ChatGPT es una herramienta de IA que ha sido entrenada en un gran conjunto de textos técnicos, incluido SQL. Puede responder preguntas sobre la sintaxis SQL, generar consultas SQL o explicar el resultado de una consulta SQL determinada.

Al usar ChatGPT para la generación de consultas SQL, puede concentrarse en tareas de nivel superior, como diseñar informes y flujos de datos. Esto no solo le ahorra tiempo, sino que también garantiza la calidad y la eficacia de su análisis de datos.

Al final de este artículo, tendrá una comprensión firme de cómo usar ChatGPT para ayudarlo a escribir consultas SQL.

Tabla de contenido

Ventajas de usar ChatGPT para consultas SQL

Cómo usar ChatGPT para escribir consultas SQL

ChatGPT es una poderosa herramienta de IA que entiende el lenguaje natural. Puede servir como una herramienta valiosa tanto para principiantes como para desarrolladores experimentados.

Los principiantes pueden encontrar que la sintaxis de SQL es compleja y difícil de recordar. ChatGPT puede ayudar al convertir las solicitudes de lenguaje natural en consultas SQL. Esto hace que aprender SQL sea más interactivo y menos abrumador, ya que puede ver la traducción del inglés simple a SQL en tiempo real.

Los desarrolladores experimentados pueden encontrar que la formulación de consultas SQL complejas que involucran varias tablas y condiciones puede llevar mucho tiempo. ChatGPT puede acelerar el proceso generando esqueletos de consulta o incluso consultas completas basadas en la tarea descrita en lenguaje natural.

Esto también reduce las posibilidades de errores de sintaxis. Hablando de errores, ChatGPT también puede ayudar a depurar consultas SQL proporcionando posibles soluciones o explicaciones. También puede sugerir diferentes formas de optimizar una consulta para un mejor rendimiento.

Si desea una introducción más general a la herramienta, consulte estos artículos:

Si desea comenzar a usarlo para consultas SQL, siga leyendo.

Cómo comenzar con ChatGPT para consultas SQL

Si aún no tiene una cuenta Open AI (¡es gratis!), siga estos pasos.

  1. Inicie un navegador y vaya a https://chat.openai.com/ .

  2. Haga clic en el botón de registro.

  3. Regístrese con una dirección de correo electrónico, una cuenta de Microsoft o una cuenta de Google.

  4. Proporcione un número de teléfono para la verificación.

Cuando inicia sesión, puede comenzar a enviar mensajes de inmediato para ser respondidos. Su mensaje se conoce como aviso de ChatGPT .

Este artículo le muestra muchos ejemplos para que se familiarice con el uso de la herramienta mientras trabaja con SQL.

Cómo iniciar sus sesiones de ChatGPT para consultas SQL

Diferentes proveedores de bases de datos han ampliado el código SQL estándar con sintaxis propietaria.

Por ejemplo, Microsoft tiene Transact-SQL (abreviado como T-SQL) para interactuar con una instancia de Microsoft SQL Server. T-SQL tiene una sintaxis que no se ejecutará en otro tipo de base de datos SQL, como MySQL o PostgreSQL.

PostgreSQL es una extensión de código abierto que tiene comandos y sintaxis adicionales que no se ejecutarán en SQL Server u Oracle.

Esto significa que cuando le pida a ChatGTP que proporcione una consulta SQL usando las características extendidas del sistema de base de datos, debe comenzar su sesión de chat dejando en claro qué implementación de SQL está usando.

Puede comenzar su sesión con una declaración como " Estoy trabajando con Microsoft SQL Server". y haga su pregunta en la siguiente oración.

Para hacerlo más simple, podría usar " Con SQL Server , ¿cómo puedo...?" al preguntar sobre un concepto o término.

En el resto de este artículo, me centraré en las consultas SQL estándar que funcionan en todos los principales sistemas de administración de bases de datos.

Cómo expresar tus intenciones a ChatGPT

Es importante expresar claramente sus intenciones a ChatGPT.

Comience describiendo la estructura de sus tablas para que ChatGPT comprenda el modelo de datos con el que está trabajando. Mencione los nombres y relaciones de las tablas, así como las columnas y sus tipos de datos. Por ejemplo:

Tengo dos tablas: pedidos y clientes. La tabla de pedidos tiene las columnas id, customer_id, producto y precio. La tabla de clientes tiene las columnas id, nombre y correo electrónico. El id_cliente en la tabla de pedidos es una clave externa que hace referencia a la columna id en la tabla de clientes.

A continuación, simplemente explique la consulta específica que desea generar usando lenguaje natural ( texto similar a un humano en lugar de código ).

Sea lo más preciso posible para ayudar a ChatGPT a comprender lo que está buscando. Por ejemplo:

Escriba una consulta SQL que encuentre los ingresos totales de cada cliente calculando la suma de los precios de sus pedidos.

ChatGPT devuelve una consulta SQL con un desglose de las diferentes partes. Eche un vistazo al siguiente ejemplo de una declaración de selección:

Cómo usar ChatGPT para escribir consultas SQL

La tecnología de IA ha generado una consulta SQL basada en los nombres de las tablas y la solicitud que proporcionó.

Pero la herramienta no se detiene ahí. Señala un par de cosas extra:

  • Cuando desee utilizar LEFT JOIN en su lugar.

  • Es posible que desee utilizar el ID en lugar del NOMBRE si los nombres de los clientes no son únicos.

Formulación de solicitudes basadas en los resultados de la consulta

Para lograr mejores resultados de consulta con ChatGPT, puede dividir las solicitudes complejas en partes más pequeñas para mantener un flujo de conversación.

Por ejemplo, suponga que desea una consulta más compleja que filtre a los clientes según su ciudad.

Puede continuar la sesión de chat proporcionando esta nueva información.

Tengo otra tabla llamada dirección_cliente con las columnas id, id_cliente, calle, ciudad, estado. El customer_id es una clave externa a la tabla de clientes.

Modifique la consulta SQL anterior para filtrar por clientes de Chicago.

ChatGPT devuelve la consulta modificada con una nueva cláusula WHERE.

Si no tiene experiencia con SQL, esta es una excelente manera de aumentar sus conocimientos.

Recuerde mantener sus solicitudes concisas y dentro del contexto relevante para garantizar una experiencia fluida al trabajar con ChatGPT.

4 mejores prácticas para la generación de consultas

Aquí hay algunos consejos para asegurarse de que el código SQL que produce ChatGPT sea la solución correcta:

  • Sea específico con los nombres de las tablas y las columnas para evitar la ambigüedad.

  • Indique claramente cualquier condición, filtros o requisitos de clasificación.

  • Especifique el formato de salida deseado, como columnas o agregaciones.

  • Si es necesario, proporcione ejemplos de consultas complejas similares.

Cuanto más preciso sea en su descripción, mejor será la consulta generada.

2 formas de optimizar el rendimiento

Al usar ChatGPT para generar consultas SQL, es crucial considerar el aspecto de rendimiento de las consultas. Aquí hay dos formas de optimizar las consultas SQL para el rendimiento:

  • usar índices apropiados

  • evitando consultas SQL demasiado complejas

Use índices apropiados

Es posible en algunas extensiones de SQL especificar que la consulta debe usar un índice específico, sin embargo, esto no se considera una buena práctica. Si el esquema de la base de datos o el perfil de datos cambia con el tiempo, podría terminar con una consulta que se vea obligada a usar un índice ineficiente.

Sin embargo, puede pedirle a ChatGPT que le aconseje sobre los índices óptimos para su consulta. Aquí hay un ejemplo.

Quiero crear uno o más índices que hagan que esta consulta sea más eficiente. Por favor asiste.

ChatGPT recomendará índices y dará las razones detrás de las elecciones.

Es importante que los desarrolladores de SQL no creen ciegamente todos los índices sugeridos. Es posible que no sean apropiados para los datos reales. Te aconsejo que pruebes y pruebes cada uno.

Evite consultas demasiado complejas

Una de las ventajas de crear sus consultas como sugerimos en la sección anterior es que es menos probable que obtenga una consulta larga y compleja que es difícil de leer y mantener.

Si ChatGPT le brinda una consulta con múltiples subconsultas que son difíciles de seguir, puede indicarle que proporcione un script alternativo que use múltiples consultas y una o más tablas temporales.

Supongamos que decido que el filtrado de consultas en "Chicago" es demasiado complejo (¡no lo es!). Instruiría a ChatGPT así:

Quiero dividir la consulta anterior en dos consultas separadas que usan una tabla temporal. El guión debe lograr los mismos resultados.

El siempre útil ChatGPT casi se desmorona para cumplir sus órdenes. Dice:

Claro, podemos lograr los mismos resultados creando primero una tabla temporal para almacenar los ingresos totales de cada cliente y luego consultando esta tabla temporal para filtrar los clientes de Chicago.

La herramienta continúa proporcionando dos secciones de código separadas que producen los mismos resultados que los ejemplos anteriores.

Cómo presentar datos a ChatGPT

Cómo usar ChatGPT para escribir consultas SQL

Cuando desee solucionar sus consultas, puede proporcionar datos de muestra a ChatGPT y pedirle que ejecute el SQL.

Una sección anterior le mostró cómo describir tablas y relaciones. También puede proporcionar las declaraciones CREATE TABLE a ChatGPT.

El siguiente paso es proporcionar los datos en un formato tabular o resumido para ayudar a ChatGPT a comprender su base de datos e interpretar los resultados.

Por ejemplo, puede proporcionar datos como este:

Aquí están los datos en estas tablas.

Clientes

1, “John Smith”, “ [email protected]

2, “Mary Doe”, “ [email protected]

Pedidos

1, 1, “Sudadera con capucha”, 14,99

2, 1, “Camiseta”, 5,99

3, 2, “Jeans”, 24,99

Dirección del cliente

1, 1, “Calle Esperanza”, “Chicago”, “Illinois”

2, 2, “Cherry Lane”, “Filadelfia”, “Pensilvania”

Tenga en cuenta que solo John Smith vive en Chicago. Una vez que haya proporcionado los datos, puede solicitar a ChatGPT que proporcione el resultado de la consulta específica.

Si le ha pedido a la herramienta que pruebe varias variaciones en la sesión, le aconsejo que copie y pegue la consulta exacta que desea que "ejecute" para que no haya ambigüedad.

Ingrese esto como mensaje: " Proporcione el resultado de esta consulta: "

ChatGPT utilizará la consulta para calcular los ingresos totales de los pedidos de John Smith. ¡Aquí hay un ejemplo, y es la respuesta correcta!

Cómo usar ChatGPT para escribir consultas SQL

2 desventajas de usar ChatGPT

Las dos principales desventajas a tener en cuenta son:

  • sintaxis incorrecta

  • consultas ineficientes

Sintaxis incorrecta

A veces, ChatGPT generará SQL que no compila o produce resultados incorrectos. Esto es más probable cuando se le ha pedido que funcione con extensiones propietarias de SQL estándar .

Si está envolviendo las consultas generadas dentro de los procedimientos almacenados, asegúrese de probarlos antes de entregar los resultados a un analista de datos o usuarios comerciales.

Si está interesado en una forma más seleccionada de utilizar consultas en lenguaje natural para sus datos, consulte la implementación de Microsoft en Power BI:

Consultas ineficientes

Cuando desee asegurarse de que sus consultas SQL sean eficientes, examine el plan de ejecución de consultas.

Esta es la secuencia de operaciones realizadas por el sistema de gestión de base de datos. Es un poco como abrir la máquina y mirar lo que está funcionando.

El problema con ChatGPT es que no puede ver cómo su sistema de administración de base de datos está procesando su consulta SQL.

Por ejemplo, ¿filtra primero a los clientes por estado o realiza esa parte al final? Esa decisión podría marcar una gran diferencia en el rendimiento.

Si observa que su consulta es lenta para la salida del producto, deberá arremangarse y examinar el plan de ejecución usted mismo.

Pensamientos finales

Ha visto ejemplos de la vida real del uso de ChatGPT para escribir y modificar consultas SQL típicas utilizadas en los negocios.

Es importante tener en cuenta que, si bien la herramienta de IA puede proporcionar una base sólida y ayudar a generar consultas SQL, no reemplaza la necesidad de una comprensión sólida de SQL.

Sin embargo, cuando se usa correctamente, ChatGPT puede ser un asistente invaluable para los desarrolladores de SQL.