IEDGE – Transact SQL, el lenguaje de manipulación de datos. Sentencias insert, update y delete


1 Star2 Stars3 Stars4 Stars5 Stars (Valora este post)
Loading...

Después de la sentencia Select, Insert es la sentencia más importante y utilizada en el lenguaje de manipulación de datos. La sentencia Insert permite añadir datos al esquema, esto es, añadir información a la base de datos. La información se almacenará en forma de filas, al tratarse de un modelo relacional. La sintaxis de la sentencia es:

Insert into tabla1 (atributo)

Values (valores)

Donde tabla1, es la tabla donde se añadirá la fila, atributos, una lista de atributos separados por comas, y valores, también separados por comas, son los valores que se almacenarán en estos atributos, de forma unívoca esto es, al primer atributo se le asigna el primer valor,…

Si sólo queremos insertar un atributo el resto se almacenarán con el valor Nulo, salvo en el caso que haya atributos declarados como No Nulo, en los cuales deberemos especificar un valor. Si el valor a almacenar es alfanumérico, deberá ir entre comillas, si es numérico, no.

Este es un ejemplo de la utilización de la sentencia insert para incluir nuevos registros a la tabla usuarios:

Insert into usuarios (nombre, apellidos, DNI)

Values (‘Nombre’, ‘Apellido1’,11111)

Al ejecutar dicha sentencia, se obtendrá como resultado lo siguiente, siempre y cuando la inserción haya sido con éxito:

(1 row(s) affected)

Otra forma de añadir filas a una base de datos es utilizar el resultado de una consulta. El siguiente código insertaría los valores de la tabla1 en la tabla2. Por supuesto los esquemas de ambas tablas tienen que coincidir, y se pueden incluir claúsulas where:

Insert into tabla2

Select * from tabla1

La sentencia update actualiza los valores una o varias filas de una tabla, sin necesidad de borrarla e insertarla de nuevo. Su sintaxis es:

Update tabla1 set atributo1=valor1, atributo2=valor2

Where condición

Tabla1 almacena la tabla donde se encuentran las filas que queremos actualizar; los datos que vienen a continuación de set los atributos y los valores que se van a almacenar y condición, la restricción que se debe cumplir para actualizar las filas.

Con la siguiente sentencia, modificaremos el atributo nombre por ‘Nombre2’ de todos los usuarios de dicha tabla, cuyos apellidos coincidan con ‘Apellido1’:

Update usuarios set nombre=’Nombre2’

Where apellidos=’Apellido1’

Como en el caso de la sentencia insert, si se obtiene el resultado (1 row(s) affected), la actualización de los datos han sido correctos.

No hace falta especificar un valor a la hora de actualizar uno o varios atributos, sino que se puede usar una expresión. En el siguiente ejemplo se le incrementa un 20% el importe del presupuesto de los usuarios apellidados ‘Apellido1’

Update usuarios

Set presupuesto=presupuesto*1.20

From apellidos=’Apellido1’

Con la sentencia delete se borran las filas de una tabla. Para que se borren las filas de una tabla se deben cumplir cada una de las condiciones de seguridad que el administrador determine y se deben cumplir las reglas de integridad referencial (permiten mantener la información de las tablas de la base de datos de forma coherente). La sintaxis es:

Delete from tabla1

Where condición

Tabla1 es de donde queremos borrar las filas, y condición es la condición que se debe cumplir para que se borren las filas. Si se omitiese la condición, se borrarán todas las filas de la tabla.

Si quisiésemos borrar todos los usuarios cuyos apellidos sea ‘Apellido1’, utilizaremos la siguiente sentencia:

Delete from usuarios

Where apellidos=’Apellido1’

Como en los dos casos anteriores, si aparece el resultado (1 row(s) affected), los cambios se han realizado correctamente. Para comprobar si la sentencia anterior es correcta, ejecutaríamos la siguiente sentencia:

Select * from usuarios where apellidos=’Apellido1’

Si la respuesta a dicha sentencia es (1 row(s) affected), la operación de borrado se ha realizado correctamente.

Si las reglas de integridad están bien diseñadas, cuando intentemos borrar una tupla que está relacionada con otra tabla, y se puede producir una pérdida de información, el SGBD nos advertirá y no nos dejará borrarla.

Existe otra sentencia, truncate table, que funciona igual que delete. La instrucción delete elimina una a una cada fila y graba una entrada en el registro de transacciones por cada fila eliminada. Truncate table quita todas las filas de una tabla, pero permanece la estructura y sus columnas, restricciones, índices. Con un ejemplo:

Truncate table usuarios

Muchas gracias y esperamos sus comentarios!

Juan Manuel Escudero

Profesor de Dirección en Tecnología y Sistemas de Información

Nota: Para aprender de una forma práctica y rápida todo sobre la gestión profesional de un departamento de Sistemas y Tecnología de la Información, les invitamos a que consulten la Especialidad Europea en Gestión de Sistemas y Tecnologías de la Información donde se formará con los mejores profesores de Europa y Latinoamérica y conocerá las mejores prácticas en el área de SITI.

* Los contenidos publicados en este post son responsabilidad exclusiva del Autor.