RSS

ALTER TABLE

martes, 25 de diciembre de 2007

En SQLite, la version del comando ALTER TABLE permite al usuario cambiar el nombre o agregar una nueva columna a una Tabla ya existente, no es posible eliminar una columna de una Tabla.

La sintaxis es la siguiente:
Declaracion-sql :: = ALTER TABLE [nombre de la base de datos .] Tabla
Alteración :: = RENAME TO nuevo nombre de la Tabla
Alteración :: = ADD [nombre de la columna] descripción


La sintaxis RENAME TO se usa para cambiar el nombre de la Tabla escogida por un nuevo nombre que le queramos asignar. Con este comando no se puede mover una Tabla entre las Bases de Datos adjuntas, sólo para cambiar el nombre de una Tabla dentro de la misma Base de Datos.

El comando ADD [nombre de la columna] se utiliza para gregar una nueva columna o atributo a la Tabla existente. Esta nueva columna es agregada siempre al final de la lista como último atributo.

El tiempo de ejecución del comando ALTER TABLE es independiente de la cantidad de datos en la Tabla. El comando ALTER TABLE se ejecuta con la mayor rapidez sobre una Tabla con 10 millones de filas como lo hace sobre una Tabla con 1 sola fila.

Ejemplo propuesto:

Para este ejemplo vamos a suponer que contamos con una Base de Datos ya creada en la cual además hemos creados otras tablas, ingresamos a la base de datos he intentemos cambiar el nombre y agregar una columna a algunas de sus tablas.

En mi caso les muestro las tablas que tengo ejecutando:
sqlite> .tables
personal
sqlite>


y ahora les muestro cual es su esquema:
sqlite> .schema personal
CREATE TABLE 'personal' (
id smallint primary key,
apellido varchar(100),
nombre varchar(100),
direccion varchar(200)
);
sqlite>


bueno ahora intentemos cambiarle el nombre:
sqlite> ALTER TABLE personal
...> RENAME TO personales;
sqlite>


ahora con el nuevo nombre de la Tabla, agreguemos una columna:
sqlite> ALTER TABLE personales
...> ADD telefono varchar(15);
sqlite>


Entonces de esta manera tan simple pudimos no solamente modificar el nombre de la tabla si no que además agregarle un campo a la misma.