Los diseñadores de Structured Query Language ( SQL) crearon una poderosa herramienta para gestionar los datos con sólo unos pocos comandos simples . Una de las construcciones más potentes se produce cuando se anidan comandos . A Select, Update o Delete comando utiliza uno o más Seleccionar comandos adicionales para limitar su funcionamiento. A modo de ejemplo , una actualización de la tabla de clientes se produce sólo cuando las ventas totales agregados de varios récords de ventas ascienden a más de $ 250. Siga estos pasos para crear varios comandos de actualización anidados. Cosas que necesitará Base de datos SQL , como Oracle , Sybase, Microsoft SQL Server o MySQL
entendimiento básico de los comandos SQL y editor de consultas
Ver Más instrucciones
1
Abra el editor de consultas SQL y crear una nueva base de datos llamada SampleDB . Elija esta base de datos para la sesión de consulta
Crear base de datos SampleDB ; .
Uso SampleDB ;
Estos ejemplos fueron creados usando el editor de consultas en Microsoft SQL Server 2008 Management Studio Express.
2
Crear dos tablas, Clientes y Ventas y , a continuación, agregue algunos registros de ambas tablas utilizando el siguiente script.
Crear Tabla Clientes
( IdCliente int clave principal ,
Nombre varchar ( 50 ) ,
Estado varchar ( 10 ));
Insertar en clientes VALUES ( 1 , 'John Smith ' , 'Nuevo' ) ;
insert into clientes VALUES ( 2 , ' Mary Jones ', 'Nuevo ');
Insert into Clientes Valores ( 3 , ' Fred Adams ', 'Nuevo ');
Crear Tabla Sales
( SalesID int clave primaria ,
CustomerID Referencias int clientes ,
Cantidad int ) ;
insertar en los valores de venta ( 1 , 1 , 500) ;
insertar en los valores de venta ( 2 , 1 , 250) ;
insertar en los valores de venta ( 3 , 3 , 50 ) ;
3
Crear una consulta anidada , la combinación de una actualización con una instrucción SELECT que define el estado del cliente a Active para aquellos clientes que tienen actividad en la tabla de ventas .
actualización clientes
Set estado = ' activo '
donde CustomerID En
(seleccione CustomerID de ventas);
Esta es una instrucción Update de SQL estándar que establece el campo Estado de los activos por un seleccionado conjunto de registros en la tabla de clientes . En una consulta anidada , la cláusula WHERE incluye una o más sentencias SELECT rodeados de paréntesis () . Cada sentencia SELECT devuelve una lista de valores que se pueden comparar a un campo de la tabla . En este caso , sólo los registros de los clientes que han encontrado los ID de cliente en la tabla de emisión será actualizado .
4
Crear una segunda consulta anidada utilizando una sentencia SELECT que agrega los totales de ventas .
< P > Actualización de clientes
Set estado = ' premium '
donde CustomerID En
( Seleccione CustomerID de Sales
grupo
por CustomerID
Tener suma ( cantidad) > 250 ) ;
al analizar las consultas anidadas , comience con las instrucciones SELECT que se encuentran en la cláusula Where. En este caso, la tabla Sales se agrega por el ID de cliente ( Agrupar por CustomerID ) con el total de los importes de ventas ( Sum ( Cantidad ) ) . Sólo aquellos con ventas totales de más de $ 250 los escogidos. Esta lista se utiliza para filtrar los registros de clientes se actualizan ( cliente 1 ) .
5
Crear una consulta más anidado que selecciona los registros de los clientes que no se encuentran en la tabla de ventas .
< P > Actualización de clientes
Set estado = ' Inactivo '
donde CustomerID No en
( Seleccione CustomerID de ventas);
Esta consulta selecciona primero una lista de identificaciones de cliente que se encuentran en la tabla de ventas ( 1 y 3) y luego actualiza ni se recogen en la lista (el cliente 2 ) .