Las consultas SQL son la carne y las papas de RDBMS CRUD (crear, leer, actualizar, eliminar). Pero cuando su aplicación o base de datos empresarial crece, la necesidad de consultas inteligentes para recuperar datos condicionales y específicos de los requisitos se vuelve imprescindible.
SQL es relativamente completo y abarca muchas funcionalidades, cada una de las cuales es adecuada para varios usos comerciales. Una de esas funciones incluye el uso de subconsultas.
Para que sus códigos sean eficientes y efectivos, puede usar subconsultas dentro de sus códigos SQL para obtener datos, manipular variables existentes y lograr múltiples objetivos de una sola vez.
¿Qué son las subconsultas de SQL?
Una subconsulta es una consulta anidada, que funciona como un parámetro dentro de otra consulta principal. La subconsulta es una consulta interior, mientras que la consulta principal es la consulta externa.
La subconsulta supuestamente devuelve los datos como un argumento entre paréntesis para la consulta principal, mientras que la consulta principal recupera el resultado final.
Las subconsultas están incrustadas en el Seleccione declaración o en el Donde cláusula. Tal estructura permite que la subconsulta se comporte como una condición de filtración de datos bien descrita. Desafortunadamente, las subconsultas solo pueden usar el Agrupar por comandos y no ordenar por comandos, ya que solo están permitidos en la consulta principal.
Relacionado: Todo lo que necesita saber sobre la instrucción SQL GROUP BY
Por lo general, cada subconsulta consta de una sola columna con el Seleccione cláusula. Sin embargo, hay escenarios en los que la consulta principal tiene varias columnas. Una subconsulta se puede anidar dentro de otra subconsulta, convirtiéndola en una subconsulta anidada.
La estructura de una subconsulta es la siguiente:
Seleccione column_name de la tabla donde condition=
(SELECCIONE conditional_column FROM table) como alias;
Por ejemplo, suponga que tiene la siguiente tabla:
IDENTIFICACIÓN | Nombre de pila | Segundo nombre | Comisión de agencia |
1 | John | Mecha | 5000 |
2 | Roberto | graham | 4000 |
3 | Esteban | Hicks | 8000 |
4 | Beto | Marley | 1000 |
5 | María | elena | 9000 |
En esta tabla, para obtener los nombres de las personas que ganan por encima de la tarifa promedio de la agencia, puede escribir una subconsulta, en lugar de escribir varias líneas de código.
Relacionado: Cómo crear una tabla en SQL
Así es como se ve la consulta:
Seleccionar * de detalles_agente
donde Agency_Fee > (seleccione avg (Agency_Fee) de agent_details);
El comando ante el > signo es la consulta externa, mientras que todo lo que sigue a la > signo es la consulta interna.
La consulta interna calculará la tarifa promedio de la agencia dentro de la subconsulta y la consulta externa mostrará todos los valores que son mayores que el valor promedio calculado.
¿Cómo usar subconsultas en SQL?
Hay algunas formas diferentes en las que puede usar subconsultas en SQL.
Subconsultas con cláusula Where
Una de las estructuras más básicas de una subconsulta en SQL está dentro de la cláusula Where. Es la forma más sencilla de definir lo que estás buscando. La declaración de selección devuelve valores según las condiciones de la subconsulta y los usa como parámetro para la consulta principal.
Estructura de la consulta:
seleccione * de table_name
donde column_name = (seleccione column_name de table_name);
Expliquemos esto con un ejemplo.
Suponga que desea encontrar la segunda tarifa de agencia más alta de la tabla agency_details. Para ello, existen funciones alternativas dentro de SQL; sin embargo, el mejor método es utilizar una subconsulta.
Así es como puede definir la subconsulta:
seleccionar *, máx. (Agency_fee)
de detalles_agente
donde Tarifa_agencia < (seleccione max (tarifa_agencia) de detalles_agente);
La declaración resultante le mostrará 8000, que es la segunda tarifa más alta en la tabla dada. Cuando se ejecuta la consulta, la subconsulta calcula el valor máximo de la lista de tarifas. El monto de la tarifa más alta (9000) se almacena en la memoria.
Una vez que se calcula esta parte, se calcula la segunda parte de la consulta, que encuentra la segunda tarifa más alta de la tabla (ya que la < se utiliza el signo). el resultado final es 8000, que es la segunda tarifa más alta de la tabla.
Subconsultas dentro de la cláusula From
Otra variación dentro de las subconsultas es pasar la condición en el desde cláusula. Como un concepto similar, la consulta interna se procesa primero y la consulta externa se procesa después. La consulta interna filtrará los datos y mostrará resultados donde ID = 3.
Aquí está la consulta de referencia:
seleccione a.* de (
seleccione agencia_tarifa de agente_detalles
donde ID= 3) como a;
Esta es una estructura muy básica; sin embargo, cuanto más complejas sean sus tablas de datos, obtendrá más filas de datos que coincidan con sus condiciones.
Uso de subconsultas con instrucción Insertar en
Si desea actualizar una tabla existente con algunas filas de datos nuevas, puede utilizar el Insertar en declaración. Una subconsulta puede resultar bastante beneficiosa si desea agregar valores en función de una condición o condiciones específicas.
Estructura de la consulta:
insertar en table_name
seleccione * de table_name
donde column_name = condiciones;
seleccione * de table_name;
Aquí hay un ejemplo de cómo puede usar la instrucción insertar en con la subconsulta:
insertar en detalles_agente
seleccione * de detalles_agente
donde agencia_fee en (1000, 5000);
seleccione * de detalles_agente;
Una vez que se ejecuta la consulta, los valores que coincidan con la condición se insertarán nuevamente en la tabla existente. El Seleccione * referencia recoge todas las columnas juntas y las inserta en la tabla detalles_agente tal como están. El en La declaración se utiliza para definir varias condiciones de filtro a la vez.
Uso de subconsultas con declaración de actualización
Hay situaciones en las que desea actualizar las tablas subyacentes mientras ejecuta las consultas. Para hacerlo, puede utilizar el actualizar instrucción junto con los comandos de consulta.
Así es como escribirá la subconsulta para actualizar la información en la tabla en una instancia:
actualizar table_name
establecer column_name = new_value
donde nombre_columna =
(seleccione column_name de table_name donde =);
Aquí hay un ejemplo que demuestra el uso de la declaración de actualización:
ACTUALIZAR detalles_agente
SET agencia_fee = 35000
WHERE agencia_fee =
(SELECCIONE agency_fee FROM agent_details WHERE First_name='John');
seleccione * de detalles_agente;
La subconsulta se filtrará en la columna agency_fee y seleccionará la(s) fila(s) donde First_Name coincida John. La consulta externa se ejecuta a continuación, en la que la tarifa de la agencia se actualiza a 35000 para John Wick.
Puedes pasar un Seleccione * declaración para comprobar los resultados finales; Notará que la tarifa de agencia para John Wick se actualiza a 35000, ya que solo hay una instancia que coincide con las condiciones definidas en la consulta.
Uso de subconsultas con declaración de eliminación
Al igual que la declaración de actualización, en la que está actualizando las filas de datos dentro de una tabla existente, la Eliminar declaración elimina fila (s) de datos en función de una condición.
La estructura de la declaración de eliminación es:
eliminar de table_name donde variable/nombre de columna =
(seleccione column_name de table_name donde = condición);
Aquí hay un ejemplo:
Eliminar de detalles_agente
donde nombre IN
(seleccione First_name from agent_details donde agency_fee = 9000);
seleccione * de detalles_agente;
Uso de subconsultas dentro de SQL
Las subconsultas son una característica excelente dentro de SQL, que puede evitar que escriba líneas interminables de código innecesario. Cuando pueda utilizar las funcionalidades básicas de las subconsultas para hacer su oferta, nunca querrá preocuparse por entrar en las complejidades de la codificación SQL.
Siempre es mejor mejorar su conocimiento SQL existente para asegurarse de estar siempre al tanto de su juego. Tenga la seguridad de que las hojas de trucos de SQL pueden darle una buena idea sobre cómo repasar sus conceptos básicos de un solo vistazo.
¿Quieres aprender más sobre SQL? Tener un control sobre los diversos comandos de consulta SQL es una excelente manera de salir adelante.
Leer siguiente
- Programación
- Programación
- sql
- Herramientas de programación
Gaurav Siyal tiene dos años de experiencia en redacción, escribiendo para una serie de firmas de marketing digital y documentos del ciclo de vida del software.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse