MySQL MariaDB

Subconsultas de MySQL

Subconsultas de MySQL
Una subconsulta es una consulta SQL dentro de una consulta mayor que es recursiva, o una subconsulta se considera una consulta interna. Por el contrario, una consulta externa se denomina consulta que incluye la subconsulta. Se puede incrustar una subconsulta de MySQL en las consultas, incluidas SELECT, INSERT, UPDATE o DELETE. Además, dentro de otra subconsulta, se puede anidar una subconsulta. La frase subconsulta debe cerrarse entre corchetes donde sea que se use. Le enseñaremos cómo y cuándo usar la subconsulta de MySQL para componer consultas complicadas y describir la idea de la subconsulta asociada. Abra el shell de la línea de comandos desde su escritorio y escriba su contraseña para comenzar a usarlo. Presione Enter y continúe.

Subconsulta dentro de registros de tabla única:

Cree una tabla llamada 'animales' en la base de datos 'datos.'Agregue el siguiente registro de diferentes animales con diferentes propiedades como se muestra. Obtenga este registro usando la consulta SELECT de la siguiente manera:

>> SELECCIONAR * DE datos.animales

Ejemplo 01:

Recuperemos los registros limitados de esta tabla usando las subconsultas. Usando la consulta a continuación, sabemos que la subconsulta se ejecutará primero y su salida se usará en la consulta principal como entrada. Una subconsulta simplemente está obteniendo la edad en la que el precio del animal es 2500. La edad de un animal cuyo precio es 2500 es 4 en la tabla. La consulta principal seleccionará todos los registros de la tabla donde la edad sea mayor de 4, y el resultado se da a continuación.

>> SELECCIONAR * DE datos.animales DONDE Edad> (SELECCIONE la edad de los datos.animales DONDE Precio = '2500');

Ejemplo 02:

Usemos la misma tabla en diferentes situaciones. En este ejemplo, usaremos alguna función en lugar de la cláusula WHERE en la subconsulta. Hemos estado tomando el promedio de todos los precios dados por animales. El precio medio será de 3189. La consulta principal seleccionará todos los registros de animales que tengan un precio superior a 3189. Obtendrá la siguiente salida.

>> SELECCIONAR * DE datos.animales DONDE Precio> (SELECCIONAR PROMEDIO (Precio) DE los datos.animales);

Ejemplo 03:

Usemos la cláusula IN en la consulta SELECT principal. En primer lugar, la subconsulta obtendrá precios superiores a 2500. Después de eso, la consulta principal seleccionará todos los registros de la tabla 'animales' donde el precio se encuentra en el resultado de la subconsulta.

>> SELECCIONAR * DE datos.animales DONDE Precio EN (SELECCIONAR Precio DE los datos.animales DONDE Precio> 2500);

Ejemplo 04:

Hemos estado usando la subconsulta para buscar el nombre del animal cuyo precio es 7000. Como ese animal es una vaca, es por eso que el nombre 'vaca' se devolverá a la consulta principal. En la consulta principal, todos los registros se recuperarán de la tabla donde el nombre del animal es 'vaca.Como solo tenemos dos registros para el animal 'vaca', es por eso que tenemos el siguiente resultado.

>> SELECCIONAR * DE datos.animales DONDE Nombre = (SELECCIONAR Nombre DE los datos.animales DONDE Precio = '7000');

Subconsulta dentro de varios registros de tabla:

Suponga las dos tablas siguientes, 'alumno' y 'profesor', en su base de datos. Probemos algunos ejemplos de subconsultas usando estas dos tablas.

>> SELECCIONAR * DE datos.estudiante;
>> SELECCIONAR * DE datos.profesor;

Ejemplo 01:

Obtendremos datos de una tabla usando la subconsulta y la usaremos como entrada para la consulta principal. Esto significa que estas dos tablas pueden relacionarse de alguna manera. En el siguiente ejemplo, hemos estado usando la subconsulta para obtener el nombre del alumno de la tabla 'alumno' donde el nombre del profesor es 'Samina.'Esta consulta devolverá' Samina 'a la tabla de consulta principal' profesor.'La consulta principal seleccionará todos los registros relacionados con el nombre del profesor' Samina.'Como tenemos dos registros para este nombre, obtenemos este resultado.

>> SELECCIONAR * DE datos.profesor DONDE TeachName = (SELECT TeachName FROM data.estudiante DONDE TeachName = 'Samina');

Ejemplo 02:

Para elaborar la subconsulta en el caso de diferentes tablas, pruebe este ejemplo. Tenemos una subconsulta que está obteniendo el nombre del profesor del alumno de la tabla. El nombre debe tener 'i' en cualquier posición de su valor. Esto significa que todos los nombres en la columna TeachName que tengan 'i' en su valor serán seleccionados y devueltos a la consulta principal. La consulta principal seleccionará todos los registros de la tabla 'profesor' donde el nombre del profesor está en la salida devuelta por la subconsulta. Como la subconsulta devolvió 4 nombres de maestros, es por eso que tendremos un registro de todos estos nombres que residen en la tabla 'maestro.'

>> SELECCIONAR * DE datos.profesor DONDE TeachName IN (SELECCIONE TeachName DE los datos.estudiante DONDE TeachName LIKE '% i%');

Ejemplo 03:

Considere las dos tablas siguientes, 'orden' y 'orden1'.

>> SELECCIONAR * DE datos.pedido;
>> SELECCIONAR * DE datos.order1;

Probemos una cláusula ANY en este ejemplo para elaborar una subconsulta. La subconsulta seleccionará el 'id' de la tabla 'order1', donde la columna 'Estado' tiene un valor de 'No pagado.'El' id 'puede ser más de 1. Esto significa que se devolverá más de 1 valor a la consulta principal para obtener los resultados del 'orden' de la tabla. En este caso, se podría usar cualquier 'id'. Tenemos el siguiente resultado para esta consulta.

>> SELECCIONAR artículo, ventas, identificación de datos.orden DONDE id = CUALQUIER (SELECCIONAR ID DE datos.order1 WHERE Status = 'No pagado');

Ejemplo 04:

Suponga que tiene los datos a continuación en la tabla 'order1' antes de aplicar cualquier consulta.

>> SELECCIONAR * DE datos.order1;

Apliquemos la consulta dentro de una consulta para eliminar algunos registros de la tabla 'order1'. En primer lugar, la subconsulta seleccionará el valor de 'Estado' de la tabla 'orden' donde el artículo es 'Libro.'La subconsulta devuelve' Pagado 'como valor. Ahora la consulta principal eliminará las filas de la tabla 'order1' donde el valor de la columna 'Estado' es 'Pagado.'

>> ELIMINAR DE los datos.order1 WHERE Status = (SELECT Status FROM data.order WHERE Item = 'Libro');

Al verificar, ahora tenemos los siguientes registros que permanecieron en la tabla 'order1' después de la ejecución de la consulta.

>> SELECCIONAR * DE datos.order1;

Conclusión:

Ha trabajado de manera eficiente con muchas subconsultas en todos los ejemplos anteriores. Esperamos que todo esté claro y limpio ahora.

Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...
0 A.D. Tutorial
De los muchos juegos de estrategia que existen, 0 A.D. logra destacarse como un título completo y un juego táctico muy profundo a pesar de ser de códi...
Tutorial de Unity3D
Introducción a Unity 3D Unity 3D es un potente motor de desarrollo de juegos. Es multiplataforma, es decir, te permite crear juegos para dispositivos ...