Creación de Tablas y Scripts de Datos Básicos

Anuncio
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
Descargar