Advertisement
Guest User

dsahnbfdkjasfkldasbfkdasfds

a guest
Nov 27th, 2015
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.18 KB | None | 0 0
  1. /*
  2. Autores: Álvaro Ruizfernández Palacios,Rubén Marcos González, Antonio de los Mozos Alonso, Beatriz Mayo Gil.
  3. Ejercicio: Practica05
  4. Fecha de entrega: 30-10-2015
  5. */
  6. DROP TABLE IF EXISTS clienteformas cascade;
  7. DROP TABLE IF EXISTS clienteytipo cascade;
  8. DROP TABLE IF EXISTS lineasDeFacturas cascade;
  9. DROP TABLE IF EXISTS facturas cascade;
  10. DROP TABLE IF EXISTS productos cascade;
  11. DROP TABLE IF EXISTS color cascade;
  12. DROP TABLE IF EXISTS formasPago cascade;
  13. DROP TABLE IF EXISTS clientes cascade;
  14. DROP TABLE IF EXISTS tiposCliente cascade;
  15. DROP TABLE IF EXISTS ciudades cascade;
  16. DROP TABLE IF EXISTS provincia cascade;
  17. DROP TABLE IF EXISTS comerciales cascade;
  18. DROP TABLE IF EXISTS contactos cascade;
  19.  
  20.  
  21.  
  22. CREATE TABLE formasPago(
  23.     FPago           VARCHAR(15) CONSTRAINT unq_FormasPago UNIQUE NOT NULL,
  24.     AcronimoP       VARCHAR(3) CONSTRAINT chk_FormasPago CHECK (AcronimoP=UPPER(AcronimoP)) CONSTRAINT pk_FormasPago PRIMARY KEY
  25. );
  26. CREATE TABLE comerciales(
  27.     DNI VARCHAR(9) CONSTRAINT chk_DNI CHECK (DNI SIMILAR TO '[A-Z][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') CONSTRAINT pk_com PRIMARY KEY,
  28.     nombre  VARCHAR(20) NOT NULL,
  29.     ape1    VARCHAR (20) NOT NULL,
  30.     ape2    VARCHAR (20) NOT NULL,
  31.     tfn     NUMERIC (9) NOT NULL,
  32.     email   VARCHAR (25)
  33.    
  34. );
  35. CREATE TABLE tiposCliente(
  36.     TCliente        VARCHAR(15) CONSTRAINT unq_tiposCliente UNIQUE NOT NULL,
  37.     AcronimoC       VARCHAR(3) CONSTRAINT chk_tiposCliente CHECK (AcronimoC=UPPER(AcronimoC)) CONSTRAINT pk_tiposCliente PRIMARY KEY,
  38.     comercial       VARCHAR(9) CONSTRAINT fk_Comerciales REFERENCES comerciales CONSTRAINT unq_comercial UNIQUE NOT NULL
  39. );
  40.  
  41. CREATE TABLE provincia(
  42.     AcronimoPr  VARCHAR(3) CONSTRAINT chk_provincia CHECK (AcronimoPr =UPPER(AcronimoPr)) CONSTRAINT pk_provincia PRIMARY KEY,
  43.     NProvncia   VARCHAR(20) CONSTRAINT unq_provincia UNIQUE NOT NULL
  44. );
  45. CREATE TABLE ciudades(
  46.     NCiudad     VARCHAR(20),
  47.     AcronimoPr  VARCHAR(3) CONSTRAINT chk_AcronimoPr CHECK (AcronimoPr =UPPER(AcronimoPr))CONSTRAINT fk_AcronimoPr REFERENCES provincia ON UPDATE Cascade,
  48.     CONSTRAINT Pk_nomAcro PRIMARY KEY(NCiudad, AcronimoPr)
  49. );
  50. CREATE TABLE clientes(
  51.     CIF             VARCHAR (9) CONSTRAINT pk_CIF PRIMARY KEY CONSTRAINT chk_CIF CHECK (CIF SIMILAR TO '[A-Z][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
  52.     nombre          VARCHAR (20) NOT NULL,
  53.     apellidos       VARCHAR (50) NOT NULL,
  54.     direccion       VARCHAR (50) NOT NULL,
  55.     telefono        NUMERIC (9) NOT NULL,
  56.     CuentaBank      NUMERIC (20) NOT NULL,
  57.     fax             NUMERIC (9),
  58.     Email           VARCHAR (25),
  59.     pagoDefecto         VARCHAR (3) REFERENCES formasPago,
  60.     Ciudad          VARCHAR (25),
  61.     AcronimoPr      VARCHAR (20),
  62.     CONSTRAINT fk_Ciudad_AcronimoPr FOREIGN KEY (Ciudad,AcronimoPr) REFERENCES ciudades ON UPDATE Cascade,
  63.     CONSTRAINT unq_nom_dir_telf_banc UNIQUE(nombre,apellidos,direccion,telefono,CuentaBank),
  64.     CONSTRAINT unq_pagoDefecto UNIQUE(CIF,pagoDefecto)
  65. );
  66.  
  67. CREATE TABLE facturas(
  68.     IDFactura       NUMERIC (5) CONSTRAINT pk_IDFactura PRIMARY KEY,
  69.     Fecha           DATE,
  70.     CIF             VARCHAR (9) CONSTRAINT fk_CIF REFERENCES clientes,
  71.     AcronimoP       VARCHAR (15) CONSTRAINT fk_facturaPago REFERENCES formasPago ON UPDATE Cascade
  72. );
  73.  
  74. CREATE TABLE Color(
  75.     Color               VARCHAR (20) CONSTRAINT pk_Color PRIMARY KEY,
  76.     r               SMALLINT DEFAULT 0 NOT NULL,
  77.     g               SMALLINT DEFAULT 0 NOT NULL,
  78.     b               SMALLINT DEFAULT 0 NOT NULL,
  79.     CONSTRAINT unq_rgb UNIQUE(r,g,b)
  80. );
  81.  
  82. CREATE TABLE Productos(
  83.     Articulo        VARCHAR (20),
  84.     RefFamilia      SMALLINT,
  85.     Color           VARCHAR (20) CONSTRAINT fk_Color REFERENCES Color ON UPDATE Cascade,
  86.     Existencias         SMALLINT DEFAULT 0 NOT NULL,
  87.     Descripcion     VARCHAR (50),
  88.     Precio          NUMERIC(5,2) NOT NULL,
  89.     CONSTRAINT pk_Productos PRIMARY KEY (Articulo, RefFamilia,Color)
  90. );
  91. CREATE TABLE lineasDeFacturas(
  92.     IDFactura       SMALLINT CONSTRAINT fk_Numfactura REFERENCES facturas ON DELETE Cascade,
  93.     Articulo        VARCHAR (20),
  94.     RefFamilia      SMALLINT,
  95.     Color           VARCHAR (20),
  96.     Cantidad        NUMERIC (2) DEFAULT 1 NOT NULL,
  97.     Precio          NUMERIC(5,2) NOT NULL,
  98.     CONSTRAINT fk_ArticuloRColor FOREIGN KEY (Articulo, RefFamilia, Color) REFERENCES Productos ON UPDATE Cascade,
  99.     CONSTRAINT pk_compra PRIMARY KEY (IDfactura, Articulo, RefFamilia, Color)
  100. );
  101. CREATE TABLE clienteytipo(
  102.     CIF         VARCHAR(9) REFERENCES clientes ON UPDATE Cascade,
  103.     AcronimoC   VARCHAR(3) REFERENCES tiposCliente ON UPDATE Cascade,
  104.     CONSTRAINT pk_clienteytipo PRIMARY KEY (CIF, AcronimoC)
  105. );
  106. CREATE TABLE clienteformas(
  107.     CIF         VARCHAR(9) REFERENCES clientes ON UPDATE Cascade,
  108.     AcronimoP   VARCHAR(3) REFERENCES formasPago ON UPDATE Cascade,
  109.     CONSTRAINT pk_clienteformas PRIMARY KEY (CIF, AcronimoP)
  110. );
  111. CREATE TABLE contactos(
  112.     DNIcom VARCHAR(9) CONSTRAINT FK_com REFERENCES comerciales,
  113.     CIFcli VARCHAR(9) CONSTRAINT FK_cli REFERENCES clientes,
  114.     fechaVis DATE DEFAULT CURRENT_DATE,
  115.     CONSTRAINT PK_contactos PRIMARY KEY(DNIcom,CIFcli,fechaVis)
  116.    
  117. );
  118.  
  119.  
  120.  
  121. INSERT INTO formasPago VALUES ('TarjetaCredito','TC');
  122. INSERT INTO formasPago VALUES ('AlContado','ACT');
  123. INSERT INTO formasPago VALUES ('Metalico','MET');
  124. INSERT INTO formasPago VALUES ('PayPal','PP');
  125. INSERT INTO comerciales VALUES ('R95175364','Pepe','Garcia','Majo',987654321,'pepeelgrande@gmail.com');
  126. INSERT INTO comerciales VALUES ('R95174364','Luis','Garcia','Majo',987654321,'pepeelgrande@gmail.com');
  127. INSERT INTO comerciales VALUES ('R95173364','Adolfo','Garcia','Majo',987654321,'pepeelgrande@gmail.com');
  128. INSERT INTO tiposCliente VALUES ('Pequeño','P','R95175364');
  129. INSERT INTO tiposCliente VALUES ('Grande','G','R95174364');
  130. INSERT INTO tiposCliente VALUES ('Medio','M','R95173364');
  131. INSERT INTO provincia VALUES ('BU','Burgos');
  132. INSERT INTO provincia VALUES ('ZA','Zamora');
  133. INSERT INTO provincia VALUES ('SO','Soria');
  134. INSERT INTO provincia VALUES ('LE','Leon');
  135. INSERT INTO ciudades VALUES ('Benavente','ZA');
  136. INSERT INTO ciudades VALUES ('Toro','ZA');
  137. INSERT INTO ciudades VALUES ('Aranda','BU');
  138. INSERT INTO ciudades VALUES ('Miranda','BU');
  139. INSERT INTO clientes VALUES ('A09652345','Mangel','Rogel','CalleFalsa 123',987654321,56419876544569845,958746312,'mangelrogel@gmail.com','TC','Benavente','ZA');
  140. INSERT INTO clientes VALUES ('A09627845','Perico','Palotes','CalleCierta 456',987654121,56413164944569845,957516312,'pericopalotes@gmail.com','ACT','Aranda','BU');
  141. INSERT INTO clientes VALUES ('A09675345','Manolo','eldelBombo','CalleIncierta 789',987651231,56413167895569845,957741312,'manolobombon@gmail.com','MET','Miranda','BU');
  142. INSERT INTO facturas VALUES (5,'09-05-2008','A09652345','TC');
  143. INSERT INTO facturas VALUES (94456,'15-05-2008','A09627845','ACT');
  144. INSERT INTO facturas VALUES (65412,'22-05-2008','A09675345','MET');
  145. INSERT INTO color VALUES ('Rojo',234,023,045);
  146. INSERT INTO color VALUES ('Azul',034,023,255);
  147. INSERT INTO color VALUES ('Verde',065,245,012);
  148. INSERT INTO productos VALUES ('Cajonera',1,'Rojo',12,'Cajonera para colocar en un salon',50);
  149. INSERT INTO productos VALUES ('Maceta',2,'Verde',52,'Maceta de jardin de color verde camuflaje',90);
  150. INSERT INTO productos VALUES ('Baldosa',3,'Azul',2,'Baldosa de piscina, color azul',10);
  151. INSERT INTO lineasdefacturas VALUES (5,'Cajonera',1,'Rojo',5,654.95);
  152. INSERT INTO lineasdefacturas VALUES (5,'Maceta',2,'Verde',9,126.90);
  153. INSERT INTO lineasdefacturas VALUES (5,'Baldosa',3,'Azul',7,54.99);
  154. INSERT INTO clienteytipo VALUES ('A09652345','M');
  155. INSERT INTO clienteytipo VALUES ('A09627845','P');
  156. INSERT INTO clienteytipo VALUES ('A09675345','G');
  157. INSERT INTO clienteytipo VALUES ('A09652345','G');
  158. INSERT INTO clienteytipo VALUES ('A09627845','M');
  159. INSERT INTO clienteytipo VALUES ('A09675345','P');
  160. INSERT INTO clienteformas VALUES ('A09652345','TC');
  161. INSERT INTO clienteformas VALUES ('A09627845','ACT');
  162. INSERT INTO clienteformas VALUES ('A09675345','MET');
  163. INSERT INTO clienteformas VALUES ('A09652345','MET');
  164. INSERT INTO clienteformas VALUES ('A09627845','TC');
  165. INSERT INTO clienteformas VALUES ('A09675345','ACT');
  166.  
  167.  
  168. --select AVG(lineasdefacturas.precio) from (lineasdefacturas join facturas using(IDFactura)) natural join clientes where clientes.ciudad='Burgos'
  169.  
  170. --select SUM(lineasdefacturas.precio)
  171. --from ((lineasdefacturas join facturas using(IDFactura)) natural join clientes) natural join clienteytipo
  172. --where AcronimoC='M' and (facturas.fecha >= '01-01-2012' and facturas.fecha <= '31-12-2012')
  173.  
  174.  
  175. SELECT COUNT(*)
  176. FROM (tiposCliente INNER JOIN comerciales ON comercial=DNI) WHERE comercial='M'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement