Creación de Tablas y Scripts de Datos Básicos Carlos Alberto Olarte ([email protected]) March 8, 2010 1 Creación de Tablas CREATE TABLE PERSONAS (CODIGO INT NOT NULL, NOMBRE VARCHAR(50) NOT NULL, SEXO CHAR(1) NOT NULL, EDAD NUMERIC(3) ); Algunos tipos soportados: • Boolean: boolean. • Character types: varchar(n), text. • Numeric: integer, bigint, real, double numeric(p,s), serial (auto incremento). • Date / Time: date, time, timestamp. 1.1 Operaciones sobre tablas • Describir una tabla: \d PERSONAS ; • Adicionar una columna: ALTER TABLE PERSONAS ADD fecha_nacimiento date; • Renombrar una tabla: ALTER TABLE PERSONAS RENAME TO ESTUDIANTES; • Renombrar una columna: ALTER TABLE ESTUDIANTES RENAME fecha_nacimiento TO nacimiento; 1 • Eliminar una columna: ALTER TABLE ESTUDIANTES DROP COLUMN EDAD; • Valores por defecto: ALTER TABLE ESTUDIANTES ALTER COLUMN NACIMIENTO SET DEFAULT NOW(); • Eliminar una tabla: DROP TABLE xxxx; 2 Restricciones de Integridad Suponga esta nueva tabla: CREATE TABLE CIUDADES( ID SERIAL, NOMBRE VARCHAR(50) ); 2.1 Llaves Primarias (Primary Keys) ALTER TABLE ESTUDIANTES ADD CONSTRAINT EST_PK PRIMARY KEY (CODIGO); ALTER TABLE CIUDADES 2.2 ADD CONSTRAINT CIU_PK PRIMARY KEY (ID); Llaves Foráneas (Foreign Key) ALTER TABLE ESTUDIANTES ADD CIU_NACIMIENTO_ID INT ; ALTER TABLE ESTUDIANTES ADD CONSTRAINT EST_CIU_FK FOREIGN KEY (CIU_NACIMIENTO_ID) REFERENCES CIUDADES (ID); 2.3 Restricciones de Valor Único (Unique) ALTER TABLE CIUDADES ADD CONSTRAINT CIU_NOMBRE_UK UNIQUE (NOMBRE); 2.4 Validaciones de Entrada (Check Constraint) ALTER TABLE ESTUDIANTES ADD CONSTRAINT EST_SEXO_CK CHECK (SEXO=’M’ OR SEXO=’F’); 2 3 DML: Insert, Delete, Update, Select Insertar nuevos registros: INSERT INTO CIUDADES (NOMBRE) VALUES (’CALI’); INSERT INTO CIUDADES (NOMBRE) VALUES (’BOGOTA’); INSERT INTO ESTUDIANTES (CODIGO,NOMBRE,SEXO,NACIMIENTO, CIU_NACIMIENTO_ID) VALUES (’400001’,’JUAN PEREZ’,’M’,’1980-03-19’,1); INSERT INTO ESTUDIANTES (CODIGO,NOMBRE,SEXO,NACIMIENTO, CIU_NACIMIENTO_ID) VALUES (’400002’,’PAOLA CASTRO’,’F’,’1981-05-03’,2); Actualizar registros: SELECT * FROM CIUDADES; SELECT * FROM ESTUDIANTES; Actualizar campos: UPDATE ESTUDIANTES SET NOMBRE = ’PAOLA ARANGP’, CIU_NACIMIENTO_ID=1 WHERE CODIGO = 400002; Eliminar Filas: DELETE FROM ESTUDIANTES WHERE CODIGO = 400001; 4 Práctica Generar el Script de instalación de la base da datos a partir del siguiente E/R. Por cada tabla adicionar por lo menos 3 registros. 3 4