Tecnología

Inicio

Cómo utilizar Select en una instrucción de actualización

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 Seleccione, actualizar o borrar comando utiliza uno o más comandos adicionales Seleccionar 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 registros de las ventas totales de más de $ 250. Siga estos pasos para crear varios comandos de actualización anidados.

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;

Utilice SampleDB;

Estos ejemplos fueron creados usando el editor de consultas dentro de Microsoft SQL Server 2008 Management Studio Express.

2 Cree dos tablas, Clientes y Ventas, y luego agregar unos pocos registros de ambas tablas utilizando el siguiente script.

Crear una tabla de Clientes

(Clave principal int CustomerID,

Nombre varchar (50),

varchar de estado (10));

Los clientes que insertar en valores (1, 'John Smith', 'Nueva');

Los clientes que insertar en valores (2, 'Mary Jones', 'Nueva');

Los clientes que insertar en Valores (3, 'Fred Adams', 'Nueva');

Crear Tabla Ventas

(Int clave principal SalesID,

CustomerID int Referencias Clientes,

int cantidad);

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 establece el estado de los clientes a Active para aquellos clientes que tienen actividad en la tabla de ventas.

Los clientes de actualización

Establecer estado = "Activa"

En donde CustomerID

(Seleccione CustomerID de las ventas);

Se trata de una instrucción SQL de actualización estándar que establece el campo de estado a Activo para un conjunto seleccionado de registros en la tabla de clientes. En una consulta anidada, la cláusula WHERE incluye una o varias sentencias SELECT rodeados de paréntesis (). Cada instrucción SELECT devuelve una lista de valores que se pueden comparar a un campo de la tabla. En este caso, sólo se actualizarán los registros de los clientes que tienen ID de clientes que se encuentran en la tabla de ventas.

4 Cree una segunda consulta anidada utilizando una instrucción Select que agrega totales de ventas.

Los clientes de actualización

Establecer estado = "Premium"

En donde CustomerID

(Seleccione CustomerID De Ventas

grupo por CustomerID

Tener suma (cantidad)> 250);

Al analizar las consultas anidadas, comenzar con las instrucciones SELECT que se encuentran en la cláusula WHERE. En este caso, la tabla de ventas es agregada por ID de cliente (Agrupar por CustomerID) para el total de los importes de ventas (Suma (Cantidad)). Sólo aquellos con unas ventas totales superiores a $ 250 son escogidos. Esta lista se utiliza para filtrar los registros de clientes se actualizan (cliente 1).

5 Crear una consulta anidada más que selecciona los registros de los clientes que no se encuentran en la tabla de ventas.

Los clientes de actualización

Establecer estado = "inactivo"

donde CustomerID No en

(Seleccione CustomerID de las ventas);

Esta consulta selecciona primero una lista de los ID de los clientes que se encuentran en la tabla de ventas (1 y 3) y luego actualiza los que no se encuentra en la lista (cliente 2).

Consejos y advertencias

  • Debido a que las consultas anidadas se ejecutan dos búsquedas por separado, el tiempo de ejecución a veces se convierte en un problema.