Advertisement
cowiUY

Práctico 12

Jun 13th, 2024
778
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.41 KB | None | 0 0
  1. CREATE DATABASE joins;
  2. use joins;
  3.  
  4. CREATE TABLE EMPLEADOS(
  5.     NumEmp int NOT NULL,
  6.     Nombre VARCHAR(30),
  7.     FecNacimiento DATE,
  8.     Oficina varchar(20),
  9.     Cargo varchar(20),
  10.     FecIngreso DATE,
  11.     Jefe int,
  12.     MinimoVenta Float,
  13.     VentaAnual Float,
  14.     PRIMARY KEY(NumEmp),
  15.     FOREIGN KEY(Oficina) REFERENCES OFICINAS(Oficina)
  16. );
  17.  
  18. DROP TABLE EMPLEADOS;
  19.  
  20. ALTER TABLE EMPLEADOS
  21. ADD CONSTRAINT fk_emp_ofi
  22. FOREIGN KEY(OFICINA) REFERENCES OFICINAS(OFICINA);
  23.  
  24. CREATE TABLE OFICINAS(
  25.     Oficina VARCHAR(15) NOT NULL PRIMARY KEY,
  26.     Ciudad VARCHAR(15),
  27.     Region VARCHAR(15),
  28.     Encargado int,
  29.     ObjetivoVentas Float,
  30.     Ventas Float,
  31.     FOREIGN KEY(Encargado) REFERENCES EMPLEADOS(NumEmp)
  32. );
  33.  
  34. CREATE TABLE CLIENTES(
  35.     NumCli int NOT NULL,
  36.     Nombre VARCHAR(15),
  37.     Representante int,
  38.     Ventas Float,
  39.     PRIMARY KEY(NumCli),
  40.     FOREIGN KEY(Representante) references EMPLEADOS(NumEmp)
  41. );
  42.  
  43. CREATE TABLE PRODUCTOS(
  44.     IdFab int,
  45.     IdProducto int,
  46.     Descripcion VARCHAR(50),
  47.     Precio Float,
  48.     Stock boolean,
  49.     CONSTRAINT cnt PRIMARY KEY (IdFab, IdProducto)
  50. );
  51.  
  52. CREATE TABLE PEDIDOS(
  53.     NumPEDIDO INT NOT NULL,
  54.     IDFAB INT NOT NULL,
  55.     IDPRODUCTO INT NOT NULL,
  56.     FECHAPEDIDO DATE,
  57.     NUMCLI INT,
  58.     NUMEMP int,
  59.     CANTIDAD FLOAT,
  60.     IMPORTE FLOAT,
  61.     CONSTRAINT pk_pedidos PRIMARY KEY (NUMPEDIDO, idfab, idproducto),
  62.     foreign key(IDFAB, IDPRODUCTO) REFERENCES PRODUCTOS(IDFAB, IDPRODUCTO)
  63.     /*CONSTRAINT IMPORTEPEDIDOS check (importe = precio * cantidad)*/
  64. );
  65.  
  66. /*ALTER TABLE PEDIDOS ADD CONSTRAINT IMPORTEPEDIDOS CHECK (importe = productos.precio * cantidad);*/
  67.  
  68. select Oficina from OFICINAs where Encargado is null;
  69.  
  70. select IdFab, idproducto, descripcion, precio, precio*1.22 as 'Precio con IVA' from productos;
  71.  
  72. /*select nombre, NumEmp, DATEDIFF(CURDATE(), FecIngreso) as 'Dias desde que ingresó', YEAR(CURDATE()) - YEAR(FECNACIMIENTO) as 'Años' from empleados;*/
  73.  
  74. select nombre, NumEmp, DATEDIFF(CURDATE(), FecIngreso) as 'Dias desde que ingresó', TIMESTAMPDIFF(YEAR, FECNACIMIENTO, CURDATE()) as 'Años' from empleados;
  75.  
  76. select emp.nombre, emp.NumEmp, DATEDIFF(CURDATE(), emp.FecIngreso) as 'Dias desde que ingresó', TIMESTAMPDIFF(YEAR, emp.FECNACIMIENTO, CURDATE()) as 'Años', ofi.ciudad, ofi.region
  77. from empleados emp, OFICINAS ofi
  78. where emp.Oficina = ofi.oficina;
  79.  
  80. SELECT oficina
  81. from oficinas
  82. ORDER BY region, ciudad, oficina;
  83.  
  84.  
  85. SELECT ped.*, pro.descripcion, cli.nombre
  86. from pedidos ped, productos pro, clientes cli
  87. where FeCHAPEDIDO >= '2024-03-01';
  88.  
  89.  
  90. select ofi.oficina, ofi.ciudad, (select count(emp.NumEmp) from empleados) as 'Cantidad de empleados' from oficinas ofi, empleados emp
  91. where ofi.region = 'este' and emp.oficina = ofi.Oficina
  92. GROUP BY oficina;
  93.  
  94. select ped.* from pedidos ped, productos prod where (select count(*) from productos) > 5 and prod.IdFab = ped.idfab and prod.idproducto = ped.idproducto;
  95.  
  96. select prod.*, ped.fechaPedido from productos prod, pedidos ped where prod.idfab = ped.idfab and prod.idproducto = ped.idproducto;
  97.  
  98. select avg(ped.importe) as Promedio, SUM(ped.importe) as'Total de pedidos', AVG(prod.precio) as 'Promedio de precio de producto vendido' from productos prod, pedidos ped where prod.idfab = ped.idfab and prod.idproducto = ped.idproducto;
  99.  
  100.  
  101.  
  102. insert into EMPLEADOS (nombre, NumEmp, fecingreso, FecNacimiento) VALUES ('Juan', 25, '2023-03-06', '2004-12-01');
  103.  
  104. delete from empleados WHERE numEmp = 25
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement