Curso de SQL

Las consultas de acci�n son aquellas que no devuelven ning�n registro, son las encargadas de acciones como a�adir y borrar y modificar registros.

.�DELETE

Crea una consulta de eliminaci�n que elimina los registros de una o m�s de las tablas listadas en la cl�usula FROM que satisfagan la cl�usula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de alg�n campo en concreto. Su sintaxis es:

DELETE FROM Tabla WHERE criterio

Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede deshacer la operaci�n. Si desea saber qu� registros se eliminar�n, primero examine los resultados de una consulta de selecci�n que utilice el mismo criterio y despu�s ejecute la consulta de borrado. Mantenga copias de seguridad de sus datos en todo momento. Si elimina los registros equivocados podr� recuperarlos desde las copias de seguridad.

DELETE * FROM Empleados WHERE Cargo = 'Vendedor';

.�INSERT INTO

Agrega un registro en una tabla. Se la conoce como una consulta de datos a�adidos. Esta consulta puede ser de dos tipos: Insertar un �nico registro � Insertar en una tabla los registros contenidos en otra tabla.

.�Insertar un �nico Registro

En este caso la sintaxis es la siguiente:

INSERT INTO Tabla (campo1, campo2, .., campoN) 
VALUES (valor1, valor2, ..., valorN)

Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y as� sucesivamente. Hay que prestar especial atenci�n a acotar entre comillas simples (') los valores literales (cadenas de caracteres) y las fechas indicarlas en formato mm-dd-aa y entre caracteres de almohadillas (#).

.�Para seleccionar registros e insertarlos en una tabla nueva

En este caso la sintaxis es la siguiente:

    SELECT campo1, campo2, ..., campoN INTO nuevatabla 
FROM tablaorigen [WHERE criterios]

Se pueden utilizar las consultas de creaci�n de tabla para archivar registros, hacer copias de seguridad de las tablas o hacer copias para exportar a otra base de datos o utilizar en informes que muestren los datos de un periodo de tiempo concreto. Por ejemplo, se podr�a crear un informe de Ventas mensuales por regi�n ejecutando la misma consulta de creaci�n de tabla cada mes.

.�Insertar Registros de otra Tabla

En este caso la sintaxis es:

INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN) 
SELECT TablaOrigen.campo1, TablaOrigen.campo2, ..., TablaOrigen.campoN 
FROM TablaOrigen 

En este caso se seleccionar�n los campos 1,2, ..., n de la tabla origen y se grabar�n en los campos 1,2,.., n de la Tabla. La condici�n SELECT puede incluir la cl�usula WHERE para filtrar los registros a copiar. Si Tabla y TablaOrigen poseen la misma estrucutra podemos simplificar la sintaxis a:

INSERT INTO Tabla  SELECT TablaOrigen.* FROM TablaOrigen 

De esta forma los campos de TablaOrigen se grabar�n en Tabla, para realizar esta operaci�n es necesario que todos los campos de TablaOrigen est�n contenidos con igual nombre en Tabla. Con otras palabras que Tabla posea todos los campos de TablaOrigen (igual nombre e igual tipo).

En este tipo de consulta hay que tener especial atenci�n con los campos contadores o autonum�ricos puesto que al insertar un valor en un campo de este tipo se escribe el valor que contenga su campo hom�logo en la tabla origen, no incrementandose como le corresponde.

Se puede utilizar la instrucci�n INSERT INTO para agregar un registro �nico a una tabla, utilizando la sintaxis de la consulta de adici�n de registro �nico tal y como se mostr� anteriormente. En este caso, su c�digo espec�fica el nombre y el valor de cada campo del registro. Debe especificar cada uno de los campos del registro al que se le va a asignar un valor as� como el valor para dicho campo. Cuando no se especifica dicho campo, se inserta el valor predeterminado o Null. Los registros se agregan al final de la tabla.

Tambi�n se puede utilizar INSERT INTO para agregar un conjunto de registros pertenecientes a otra tabla o consulta utilizando la cl�usula SELECT ... FROM como se mostr� anteriormente en la sintaxis de la consulta de adici�n de m�ltiples registros. En este caso la cl�usula SELECT especifica los campos que se van a agregar en la tabla destino especificada.

La tabla destino u origen puede especificar una tabla o una consulta. Si la tabla destino contiene una clave principal, hay que segurarse que es �nica, y con valores no-Null ; si no es as�, no se agregar�n los registros. Si se agregan registros a una tabla con un campo Contador , no se debe incluir el campo Contador en la consulta. Se puede emplear la cl�usula IN para agregar registros a una tabla en otra base de datos.

Se pueden averiguar los registros que se agregar�n en la consulta ejecutando primero una consulta de selecci�n que utilice el mismo criterio de selecci�n y ver el resultado. Una consulta de adici�n copia los registros de una o m�s tablas en otra. Las tablas que contienen los registros que se van a agregar no se ver�n afectadas por la consulta de adici�n. En lugar de agregar registros existentes en otra tabla, se puede especificar los valores de cada campo en un nuevo registro utilizando la cl�usula VALUES. Si se omite la lista de campos, la cl�usula VALUES debe incluir un valor para cada campo de la tabla, de otra forma fallar� INSERT.

INSERT INTO Clientes SELECT Clientes_Viejos.* FROM Clientes_Nuevos;

SELECT Empleados.* INTO Programadores FROM  Empleados
WHERE Categoria = 'Programador'

INSERT INTO Empleados (Nombre, Apellido, Cargo) 
VALUES ('Luis', 'S�nchez', 'Becario'); 

INSERT INTO Empleados SELECT Vendedores.* FROM Vendedores 
WHERE Fecha_Contratacion < Now() - 30; 

.�UPDATE

Crea una consulta de actualizaci�n que cambia los valores de los campos de una tabla especificada bas�ndose en un criterio espec�fico. Su sintaxis es:

UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN 
WHERE Criterio;

UPDATE es especialmente �til cuando se desea cambiar un gran n�mero de registros o cuando �stos se encuentran en m�ltiples tablas. Puede cambiar varios campos a la vez. El ejemplo siguiente incrementa los valores Cantidad pedidos en un 10 por ciento y los valores Transporte en un 3 por ciento para aquellos que se hayan enviado al Reino Unido:

UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03 
WHERE PaisEnv�o = 'ES';

UPDATE
no genera ning�n resultado. Para saber qu� registros se van a cambiar, hay que examinar primero el resultado de una consulta de selecci�n que utilice el mismo criterio y despu�s ejecutar la consulta de actualizaci�n.
UPDATE Empleados SET Grado = 5 WHERE Grado = 2; 

UPDATE Productos SET Precio = Precio  * 1.1 WHERE Proveedor = 8 AND Familia = 3;

Si en una consulta de actualizaci�n suprimimos la cl�usula

WHERE
todos los registros de la tabla se�alada ser�n actualizados.
UPDATE Empleados SET Salario = Salario * 1.1

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP