Sunteți pe pagina 1din 4

Base de datos – Unidad 3

Inserción, modificación y eliminación de registros.

Sintaxis de SQL DML


Inserción, modificación y eliminación de
registros.
En esta lección vamos a ver como modificar la BD. Los registros de una tabla pueden ser modificados de tres
modos: Crear nuevos registros, modificarlos o bien eliminarlos. No se va a profundizar en este sentido, esto
lo dejaremos para un posible curso avanzado de SQL.
Por razones obvias no podrá usar el banco de pruebas para probar estas instrucciones, de modo que para
ello deberá usar su propia BD.

Insert SQL

La instrucción INSERT permite crear o insertar nuevos registros en una tabla, veamos su sintaxis con un
ejemplo práctico, la inserción de un registro en la tabla ALUMNOS:

CÓDIGO: SELECCIONAR TODO

insert into ALUMNOS (ID_ALUMNO , NOMBRE , APELLIDOS ,


F_NACIMIENTO) values (1 , 'Pablo' , 'Hernandaz Mata' , '1995-03-
14')

Observe como todo lo que se explicó en referencia a los tipos de datos es valido para la
instrucción INSERT. Los datos de tipo numérico no se entrecomillan, a diferencia de los datos
de tipo cadena y fecha.

En general la sintaxis de la instrucción INSERT es la siguiente:

CÓDIGO: SELECCIONAR TODO

INSERT INTO nombre_tabla (lista de campos separados por comas) VALUES


(lista de datos separados por comas)

Donde cada dato de la lista VALUES se corresponde y se asigna a cada campo de la tabla en el mismo orden
de aparición de la sentencia INSERT. Cabe mencionar que si la clave primaria que identifica el registro que
se pretende insertar ya la usa un registro existente el SGBD rechazaría la operación y devolvería un error de
clave primaria duplicada.

Así que cuando usted rellena un formulario en Internet por ejemplo, y los datos son almacenados en una
BD, en algún momento del proceso se realizará una instrucción INSERT con los datos que usted a
cumplimentado.

pág. 1
Base de datos – Unidad 3
Inserción, modificación y eliminación de registros.

***

Update SQL

La instrucción UPDATE permite actualizar registros de una tabla. Debemos por lo tanto indicar que registros
se quiere actualizar mediante la cláusula WHERE, y que campos mediante la cláusula SET, además se
deberá indicar que nuevo dato va a guardar cada campo.
Así por ejemplo supongamos que para el curso que carecía de profesor finalmente ya se ha decidido quien
lo va a impartir, la sintaxis que permite actualizar el profesor que va a impartir un curso sería la siguiente:

CÓDIGO: SELECCIONAR TODO


update CURSOS set
ID_PROFE = 2 where
ID_CURSO = 5

Todo lo expuesto sobre lógica booleana es valido para la clausula WHERE de la instrucción
UPDATE, en todo caso dicha cláusula se comporta igual que en una consulta, solo que ahora
en lugar de seleccionar registros para mostrarnos algunos o todos los campos, seleccionará
registros para modificar algunos o todos sus campos. Por lo tanto omitir la cláusula WHERE en
una instrucción UPDATE implica aplicar la actualización a todos los registros de la tabla.

La instrucción anterior asignará un 2 en el campo ID_PROFE de la tabla CURSOS en los registros cuyo valor
en el campo ID_CURSO sea 5. Como sabemos que el campo ID_CURSO es la clave primaria de la tabla, tan
solo se modificará un solo registro si es que existe. Obviamente en este caso, dado que el campo que se
pretende actualizar es clave foránea de la tabla PROFESORES, si no existe un registro en dicha tabla con
identificador 2 el SGBD devolverá un error de clave no encontrada.

Veamos otro ejemplo, esta vez se modificarán varios campos y registros con una sola instrucción.
Recordemos la tabla EMPLEADOS, en ella se guardan los datos de cada empleado, el sueldo y supongamos
que también se guarda en el campo PRECIO_HORA el precio de la hora extra que cobra cada empleado en el
caso que las trabaje. Bien, con el cambio de ejercicio se deben subir los sueldos y el precio por hora extra
trabajada, digamos que un 2% el sueldo y un 1 % el precio de la hora extra. Sin embargo la política de
empresa congela el salario a directivos que cobran 3000 euros o más. ¿Qué instrucción actualizaría estos
importes según estas premisas? :

CÓDIGO: SELECCIONAR TODO


update EMPLEADOS
set SALARIO = SALARIO * 1.02
PRECIO_HORA = PRECIO_HORA * 1.01
where SALARIO < 3000

Por lo tanto solo se está actualizando el salario y el precio de la hora extra de aquellos empleados que su
salario es inferior a 3000 euros.

En general la sintaxis de la instrucción UPDATE es la siguiente:

CÓDIGO: SELECCIONAR TODO

pág. 2
Base de datos – Unidad 3
Inserción, modificación y eliminación de registros.

UPDATE nombre_tabla
SET campo1 = valor1,
campo2 = valor2,
...
campoN = valorM
WHERE condicines

***

Delete SQL La isntrucción DELETE permite eliminar regsitros de una tabla, su sintaxis es simple, puesto que s
debemos indicar que registros deseamos eliminar mediante la cláusula WHERE. La siguiente consu
elimina todos los registros de la tabla mascotas que estan de baja:

CÓDIGO: SELECCIONAR TODO


delete from MACOTAS
where ESTADO = 'B'

pág. 3
Base de datos – Unidad 3
Inserción, modificación y eliminación de registros.

Al igua que la instrucción que ocurria con la UPDATE, para la instrucción DELETE es válido
todo lo expuesto sobre la cláusula WHERE para consultas.

La siguiente instrucción elimina todos los registros de la tabla VEHICULOS:

CÓDIGO: SELECCIONAR TODO


delete
from VEHICULOS

Al eliminar registros de una tabla estos no deben figurar como clave foránea en otra tabla, de lo contrario
el SGBD devolverá un error de violación de integridad referencial, puesto que si se permitiese quedarían
regsitros huerfanos.

En general la sintaxis de la instrucción DELETE es la siguiente:

CÓDIGO: SELECCIONAR TODO


DELETE
FROM nombre_tabla
WHERE condiniones

***

Resumen

Con las instrucciones INSERT, DELETE y UPDATE el SGBD permite crear eliminar o modificar registros.

La cláusula WHERE de las instrucciones DELETE y UPDATE se comporta igual que en las consultas y permite
descartar o considerar registros mediante condiciones por la instrucción de actualización o de borrado.
Omitir la cláusula WHERE implica aplicar la operación a todos los registros de la tabla.

Al insertar eliminar o actualizar datos, deben respetarse las restricciones. Si estas están montadas en la BD,
cosa por otro lado muy recomendable, podemos tener errores de tres tipos:

• Violación de integridad referencial (se pretende dejar huérfanos registros que apuntan al registro
padre al intentarlo eliminar o modificar).
• Clave padre no encontrada (al actualizar o insertar una clave foránea que no existe en la tabla
padre a la que apunta)
http://deletesql.com/viewtopic.php?f=5&t=24

• Clave primaria duplicada (Al insertar o modificar un registro).

pág. 4

S-ar putea să vă placă și