ALTERACIÓN Y ACTUALIZACIÓN DE TABLAS
TEORÍA 3
Introducción a las Bases de Datos y
Bases de Datos
Tecnicaturas TUPAR y TUDAI
2019
Ejercicios
MODIFICACIÓN DE TABLAS
Una vez creada una tabla es posible realizar algunas modificaciones en su definición (ej, agregar o quitar columnas, especificar valores por defecto, incorporar restricciones o quitarlas, etc. La sintaxis de PostgreSQL
ALTER TABLE tabla ADD COLUMN columna tipo;
ALTER TABLE tabla DROP COLUMN columna;
ALTER TABLE tabla RENAME COLUMN
Columna_vieja TO columna_nueva;
ALTER TABLE tabla columna TYPE nuevo_tipo;
ALTER TABLE tabla ALTER COLUMN columna
[SET DEFAULT value | DROP DEFAULT]
ALTER TABLE tabla ALTER COLUMN columna
[SET NOT NULL | DROP NOT NULL]
ALTER TABLE tabla ADD CONSTRAINT name constraint-definition
→ Agrega columna
→ Elimina columna
→ incorpora restricción
→ cambia tipo de dato
→ Asigna o elimina valor por defecto
→ Asigna o elimina rest. nulidad
→ renombra una columna
MODIFICACIÓN DE TABLAS (EJEMPLOS)
ALTER TABLE Alumno
ADD COLUMN condicion VARCHAR(10) DEFAULT ´Regular´;
→ Incorpora una nueva columna en Alumno con um valor por defecto
ALTER TABLE Instituto
DROP COLUMN encargado;
→ elimina la columna encargado de Alumno
ALTER TABLE Curso
ADD CONSTRAINT U_tit UNIQUE (titulo);
→ define una restricción de unicidad para el título del Curso
ALTER TABLE Ofrece
DROP CONSTRAINT Fk_Ofrece_Cur;
→ elimina la restricción de clave extranjera en Ofrece
MODIFICACIÓN DE TABLAS (EJEMPLOS)
ALTER TABLE Alumno ALTER COLUMN condicion
SET DEFAULT ‘Libre’;
→ Define un valor por defecto para una columna
ALTER TABLE Alumno ALTER COLUMN condicion
DROP DEFAULT;
→ Elimina la definición del valor por defecto para una columna
ALTER TABLE Alumno ALTER COLUMN tutor
SET NOT NULL;
→ Define una restricción de nulidad para la columna (OJO)!!!
ALTER TABLE Alumno ALTER COLUMN tutor
DROP NOT NULL;
→ Elimina una restricción de nulidad para la columna
ALTER TABLE Alumno condicion TYPE VARCHAR(30);
MODIFICACIÓN DE TABLAS (EJEMPLOS)
ALTER TABLE Alumno
ADD CONSTRAINT Pk_Alumno PRIMARY KEY (LIBRETA) ;
→ Incorpora la restricción de clave primaria a la tabla Alumno;
ALTER TABLE Alumno
ADD CONSTRAINT Fk_Alumno_Univ FOREIGN KEY (nom_univ)
REFERENCES Universidad (nom_univ) ;
→ Incorpora la restricción de clave extranjera a la tabla Alumno que referencia a la tabla Universidad;
BORRADO DE TABLAS
DROP TABLE nombre_tabla [CASCADE | RESTRICT]
→ Se elimina la definición de la tabla y todas las filas que contiene
→ tener precaución en su uso
ACTUALIZACIÓN DE DATOS
Sentencias del DML para agregar, modificar y eliminar datos de tablas:
INSERT INSERT INTO nombre_tabla [ ( lista_columnas ) ] VALUES (lista_valores);
DELETE DELETE FROM nombre_tabla
[ WHERE (condición) ] ;
UPDATE UPDATE nombre_tabla
SET nom_columna1= valor1 [,nom_columna2= valor2 … ]
[ WHERE (condición) ] ;
ACTUALIZACIÓN DE DATOS (EJEMPLOS)
INSERT INTO Curso (id_curso, titulo)
VALUES ( 208, ‘Bases de Datos’ );
INSERT INTO Curso VALUES (134, ´Comunicación de Datos´, 45);
UPDATE Curso SET duracion = duracion + 20;
UPDATE Instituto SET encargado = ‘Juan Perez’ � WHERE cod_instituto = ‘ISBD’;
DELETE FROM Ofrece;
DELETE FROM Ofrece WHERE cod_instituto = ‘ISBD’;
→ Al no especificarse el valor de duración, � éste tomaría su valor por defecto (60)
→ se incorpora un nuevo curso (no se requiere el nombre de columnas porque se insertan valores para todas
→ Elimina todas las tuplas de Ofrece! (si es posible)
→ se agregan 20 (horas) a todos los cursos
→ Elimina los vínculos de cursos ofrecidos por el inst. ISBD
→ se actualiza el encargado del instituto ISBD