Unidad 7. Actualización de datos (I)


7.1. Introducción

Hasta ahora hemos trabajado con tablas que tenían datos introducidos y cuando nos ha hecho falta hemos añadido nuevos datos en las mismas y hemos modificado algún dato directamente desde el entorno de SSMS, en este tema veremos cómo hacerlo con instrucciones de Transact-SQL.
Seguimos en el DML porque las instrucciones que veremos actúan sobre los datos de la base de datos no sobre su definición y tenemos tres tipos de operaciones posibles:

  • Insertar nuevas filas en una tabla.
  • Modificar datos ya almacenados.
  • Eliminar filas de una tabla.

7.2. Insertar creando una nueva tabla

Una forma de insertar datos es crear una tabla que incluya los datos de otra. Esta es la sentencia SELECT... INTO.


SELECT ...

INTO nb_NuevaTabla

FROM ...

 

nb_NuevaTabla  es el nombre de la tabla que se va a crear, si en la base de datos ya hay una tabla con ese nombre, el sistema genera un error y no se ejecuta la sentencia.

En la nueva tabla las columnas tendrán el mismo tipo y tamaño que las columnas del resultado de la SELECT,  se llamarán con el nombre de alias de la columna o en su defecto con el nombre de la columna, pero no se transfiere ninguna otra propiedad del campo o de la tabla como por ejemplo las claves e índices.

Si retomamos el ejemplo del punto anterior:


CREATE TABLE trabajo (col1 INT, col2 VARCHAR(20), col3 MONEY);

INSERT INTO trabajo SELECT oficina, ciudad, ventas

					FROM oficinas

					WHERE region = 'Centro'; 

Se podría obtener el mismo resultado con una sola instrucción:


SELECT oficina AS col1, ciudad AS col2, ventas AS col3

INTO trabajo

FROM oficinas

WHERE region = 'Centro'

Si se tiene poca experiencia en esta instrucción, lo mejor es primero escribir la SELECT que permite obtener las filas a insertar y una vez la tenemos añadir la cláusula INTO destino delante de FROM.

Para practicar puedes realizar este Ejercicio Insertar datos creando una nueva tabla.

7.3. Insertar en una tabla existente  INSERT INTO

La inserción de nuevos datos en una tabla, se realiza añadiendo filas enteras a la tabla, la sentencia SQL que lo permite es la orden INSERT (o también denominada INSERT INTO).
De la sentencia INSERT completa, nosotros estudiaremos la sintaxis más utilizada y estándar:


INSERT [INTO] <destino>

  {

    [(lista_columnas)] 

    {VALUES ({DEFAULT|NULL|expresion}[ ,...n ]) 

    |tabla_derivada 

    } 

  } 

  |DEFAULT VALUES 

[;]



<destino> ::=

{   

  [nbBaseDatos.nbEsquema. | nbEsquema.]nbTablaVista

} 

Con esta instrucción podemos insertar una fila de valores determinados o un conjunto de filas derivadas de otra consulta.

Febrero-2010
Pág. 7.1

Atrás  Inicio  Adelante






.