– CREACION DE TABLAS –


CREATE TABLE DEPARTAMENTOS (

ID SERIAL,
NOMBRE VARCHAR(20) NOT NULL );

CREATE TABLE EMPLEADOS (

ID SERIAL,
NOMBRE VARCHAR(20) NOT NULL,
TELEFONO VARCHAR(10),
DIRECCION VARCHAR(20),  
EMP_JEFE_ID INT,
DEP_ID INT NOT NULL

);

CREATE TABLE PRODUCTOS (

ID SERIAL,
NOMBRE VARCHAR(20) NOT NULL,
DESCRIPCION TEXT,
UNITARIO FLOAT );

CREATE TABLE FACTURAS (

NUM INT,
FECHA DATE NOT NULL,
EMP_ID INT NOT NULL);

CREATE TABLE DETALLES (

FAC_NUM INT,
PRO_COD INT,
CANTIDAD INT NOT NULL,
VALOR FLOAT NOT NULL);

– PRIMARY KEYS


ALTER TABLE DEPARTAMENTOS ADD CONSTRAINT DEP_PK PRIMARY KEY(ID); ALTER TABLE EMPLEADOS ADD CONSTRAINT EMP_PK PRIMARY KEY(ID); ALTER TABLE PRODUCTOS ADD CONSTRAINT PRO_PK PRIMARY KEY(ID); ALTER TABLE FACTURAS ADD CONSTRAINT FAC_PK PRIMARY KEY(NUM); ALTER TABLE DETALLES ADD CONSTRAINT DET_PK PRIMARY KEY(FAC_NUM, PRO_COD);


– LLAVES FORANEAS


ALTER TABLE EMPLEADOS ADD CONSTRAINT EMP_DEP_FK FOREIGN KEY(DEP_ID) REFERENCES DEPARTAMENTOS (ID); ALTER TABLE EMPLEADOS ADD CONSTRAINT EMP_EMP_JEFE_FK FOREIGN KEY(EMP_JEFE_ID) REFERENCES EMPLEADOS (ID); ALTER TABLE FACTURAS ADD CONSTRAINT FAC_EMP_FK FOREIGN KEY(EMP_ID) REFERENCES EMPLEADOS (ID); ALTER TABLE DETALLES ADD CONSTRAINT DET_FAC_FK FOREIGN KEY(FAC_NUM) REFERENCES FACTURAS (NUM); ALTER TABLE DETALLES ADD CONSTRAINT DET_PRO_FK FOREIGN KEY(PRO_COD) REFERENCES PRODUCTOS (ID);


– CK CONSTRAINTS


ALTER TABLE DETALLES ADD CONSTRAINT DET_CANTIDAD_CK CHECK (CANTIDAD>0); ALTER TABLE DETALLES ADD CONSTRAINT DET_VALOR_CK CHECK (VALOR>0); ALTER TABLE PRODUCTOS ADD CONSTRAINT PRO_UNITARIO_CK CHECK (UNITARIO>0);


– DATA


INSERT INTO DEPARTAMENTOS (NOMBRE) VALUES ('SUR'), ('NORTE'), ('CENTRO'), ('UNICENTRO'), ('VERSALLES');

INSERT INTO EMPLEADOS (NOMBRE,TELEFONO,DIRECCION,EMP_JEFE_ID,DEP_ID) VALUES ('XXX','XXX','XXX',NULL,1), ('YYY','YYY','YYY',1,1), ('ZZZ','ZZZ','ZZZ',1,1), ('AAA','AAA','AAA',NULL,2), ('BBB','BBB','BBB',NULL,2), ('CCC','CCC','CCC',NULL,3);

INSERT INTO PRODUCTOS (NOMBRE, UNITARIO) VALUES ('PRODUCTO1',1000), ('PRODUCTO2',1100), ('PRODUCTO3',1400), ('PRODUCTO4',2000), ('PRODUCTO5',2300), ('PRODUCTO6',4300), ('PRODUCTO7',1200), ('PRODUCTO8',1100), ('PRODUCTO9',1000);

INSERT INTO FACTURAS (NUM,FECHA, EMP_ID) VALUES (1,'2005-03-04', 1), (2,'2005-03-05', 1), (3,'2005-03-06', 1), (4,'2005-03-07', 1), (5,'2005-03-07', 1), (6,'2005-03-07', 1), (7,'2005-03-08', 1), (8,'2005-03-08', 1), (9,'2005-03-08', 1), (10,'2005-03-08', 1), (11,'2005-03-08', 1), (12,'2005-03-08', 1), (13,'2005-03-04', 2), (14,'2005-03-04', 2), (15,'2005-03-05', 2), (16,'2005-03-05', 3), (17,'2005-03-05', 3), (18,'2005-03-06', 3), (19,'2005-03-04', 4), (20,'2005-03-04', 4), (21,'2005-03-04', 4), (22,'2005-03-04', 4), (23,'2005-03-04', 4), (24,'2005-03-04', 4), (25,'2005-03-04', 4), (26,'2005-03-04', 4), (27,'2005-03-05', 5), (28,'2005-03-05', 5), (29,'2005-03-05', 5), (30,'2005-03-06', 5), (31,'2005-03-06', 5), (32,'2005-03-06', 5);

INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 );

INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 ); INSERT INTO DETALLES (FAC_NUM, PRO_COD, CANTIDAD, VALOR) VALUES ( ((RANDOM()*2569)::INTEGER)%32+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%10+1, ((RANDOM()*2569)::INTEGER)%500+1000 );

 
materias/taller-sql.txt · Última modificación: 2011/04/13 10:56 por caolarte
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki