Académique Documents
Professionnel Documents
Culture Documents
Consultas de Acción
Consultas SQL de Acción
Consulta de Eliminación
DELETE *
FROM CopiaEmpleados
WHERE Cargo='Representante de Ventas';
Consultas SQL de Acción
DELETE
Ejem2. Borrado en cascada. Hacer copias de Empleados y Pedidos. Relacionar
ambas tablas sin marcar la opción Eliminar en Cascada los registros relacionados.
Probar la consulta.
Enseguida modificar la relación marcando Eliminar en cascada los registros
relacionados. Ejecutar la consulta y comprobar los resultados.
DELETE *
FROM CopiaEmpleados
WHERE Cargo = 'Gerente de Ventas';
La palabra reservada VALUES se puede sustituir por la palabra SELECT (en otros
SQLs se emplea únicamente VALUES).
A continuación de la palabra VALUES, entre paréntesis se escriben los
valores que queremos añadir. Estos valores se tienen que escribir de acuerdo
al tipo de dato de la columna donde se van a insertar (encerrados entre
comillas simples ' ' para valores de tipo texto, entre # # para valores de
fecha...) la asignación de valores se realiza por posición, el primer valor lo
asigna a la primera columna, el segundo valor a la segunda columna, así
sucesivamente...
Consultas SQL de Acción
INSERT
Sintaxis para insertar un único registro:
INSERT INTO Tabla (campo1, campo2, .., campoN) VALUES (valor1,
valor2, ..., valorN);
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.
Consultas SQL de Acción
INSERT
Ejemplo3: 2 formas para insertar un nuevo empleado en Empleados
Al ejecutar la consulta:
Todos los registros de banconew se han ANEXADO a la tabla
banco.
Nota: no olvidar que además se puede filtrar con WHERE, los
registros que se van anexar.
Consultas SQL de Acción
INSERT
Ejer3: Anexar los siguientes registros a BancoNew:
B19, Banco Santander, Calle Madrid #200 INSERT INTO...
B20, Banco BBVA, Avenida Barcelona #500 VALUES()
• Las columnas de la nueva tabla tendrán el mismo tipo y tamaño que las
columnas origen, y se llamarán con el nombre de alias de la columna origen o en
su defecto con el nombre de la columna origen, pero no se transfiere ninguna
otra propiedad del campo o de la tabla como por ejemplo las claves e índices.
• La sentencia SELECT puede ser cualquier sentencia SELECT sin ninguna
restricción, puede ser una consulta multitabla, una consulta de resumen,
una UNION ...
• Si en la base de datos hay ya una tabla del mismo nombre, el sistema nos
avisa y nos pregunta si la queremos borrar. Si le contestamos que no, la SELECT no se
ejecuta.
Consultas SQL de Acción
SELECT INTO
• Para formar una sentencia SELECT INTO lo mejor es escribir la SELECT que
permite generar los datos que queremos guardar en la nueva tabla, y después
añadir delante de la cláusula FROM la cláusula INTO nuevatabla.
• La sentencia SELECT INTO se suele utilizar para crear tablas de trabajo, o tablas
intermedias, las creamos para una determinada tarea y cuando hemos terminado esa
tarea las borramos. También puede ser útil para sacar datos en una tabla para
enviarlos a alguien.
• Ejem6: Consulta que Selecciona todos los CAMPOS y registros de la tabla Empleados
y crea una nueva tabla llamada CopyEmpleados. Guardar el SQL como
_CopyEmpleados (No puede tener el mismo nombre de la nueva tabla o de alguna
que ya exista)
SELECT * INTO CopyEmpleados
FROM Empleados;
Consultas SQL de Acción
SELECT INTO
• Ejem7: Consulta que Selecciona algunos campos de la tabla Clientes y sólo registros
de Alemania, crea una nueva tabla llamada ClientesAlemania. Guardar el SQL como
_CLientesAlemania (No puede tener el mismo nombre de la nueva tabla o de alguna
que ya exista)
SELECT * INTO
FROM
WHERE
Consultas SQL de Acción
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.
• Si en una consulta de actualización suprimimos la cláusula WHERE todos los registros
de la tabla señalada serán actualizados. Sintaxis:
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ...
CampoN=ValorN WHERE Criterio;
• Tabla puede ser un nombre de tabla, un nombre de consulta o una composición
de tablas, también puede incluir la cláusula IN si la tabla a modificar se encuentra en
una base de datos externa.
• 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.
Consultas SQL de Acción
UPDATE
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ...
CampoN=ValorN WHERE Criterio;
• La cláusula SET especifica qué columnas van a modificarse y qué valores asignar
a esas columnas.
• CampoN, es el nombre de la columna a la cual queremos asignar un nuevo
valor por lo tanto debe ser una columna de la tabla origen.
• ValorN en cada asignación debe generar un valor del tipo de dato apropiado para
la columna indicada. La expresión debe ser calculable a partir de los valores de la
fila que se está actualizando. ValorN no puede ser una subconsulta.
• 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.
Consultas SQL de Acción
UPDATE
• Ejem8. La siguiente consulta actualiza registros en la tabla empleados, cambiando el
valor del campo cargo de “Rep. De Ventas” por el de “Representante de ventas”.
UPDATE Empleados SET cargo ='Representante de Ventas' WHERE
cargo='Rep. de Ventas';
• Ejer6. Actualizar el salario del siguiente empleado por medio del nombre y
apellido.
Nombre: Michael, apellidos: Suyama, Salario: 700, Nuevo Salario: 750.
UPDATE Empleados SET salariobase =750 WHERE apellidos='Suyama'
AND nombre="Michael";
Consultas SQL de Acción
UPDATE
• Ejem9. La siguiente consulta aumenta en un 10% los salarios de todos los empleados,
cuyo salario esté por debajo de la media general. Usamos la tabla CopyEmpleados
SELECT *
FROM CopyEmpleados
WHERE salariobase<(SELECT AVG(salariobase) FROM CopyEmpleados);
http://www.aulaclic.es/sql/f_sql.htm
http://quidel.inele.ufro.cl/~pvalenzu/tutoriales/sql/sql.html