Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

materias:taller-sql [2011/04/13 10:56] (actual)
caolarte creado
Línea 1: Línea 1:
 +------------------------
 +-- 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