Advertisement
EduzZiTo

BD

May 8th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. use basadados;
  2. create table MARCA(
  3. IdMarca int Primary Key,
  4. NomeMarca varchar(50) NOT NULL
  5. );
  6. create table AVIAO(
  7. MatriculaAviao varchar(5) Primary Key,
  8. CorAviao varchar(30) NOT NULL,
  9. Autonomia int NOT NULL,
  10. IdMarca int NOT NULL,
  11. FOREIGN KEY (IdMarca) REFERENCES MARCA(IdMarca)
  12. );
  13. create table PILOTO(
  14. IdPiloto int Primary Key,
  15. Nome varchar(50) NOT NULL,
  16. Salario float NOT NULL,
  17. DataNasc date NOT NULL
  18. );
  19. create table _VOO(
  20. NumVoo int Primary Key,
  21. DataVoo date NOT NULL,
  22. OrigemVoo varchar(50) NOT NULL,
  23. DestinoVoo varchar(50) NOT NULL,
  24. MatriculaAviao varchar(5) NOT NULL,
  25. IdPiloto int NOT NULL,
  26. FOREIGN KEY (MatriculaAviao) REFERENCES AVIAO(MatriculaAviao),
  27. FOREIGN KEY (IdPiloto) REFERENCES PILOTO(IdPiloto)
  28. );
  29. Insert into MARCA(IdMarca,NomeMarca) values(1,'M1');
  30. Insert into MARCA(IdMarca,NomeMarca) values(2,'M2');
  31. Insert into MARCA(IdMarca,NomeMarca) values(3,'M3');
  32. Insert into MARCA(IdMarca,NomeMarca) values(4,'M4');
  33. Insert into MARCA(IdMarca,NomeMarca) values(5,'M5');
  34. Insert into AVIAO(MatriculaAviao,CorAviao,Autonomia,IdMarca) values('CS-A','C1',3000,1);
  35. Insert into AVIAO(MatriculaAviao,CorAviao,Autonomia,IdMarca) values('CS-B','C2',5000,2);
  36. Insert into AVIAO(MatriculaAviao,CorAviao,Autonomia,IdMarca) values('CS-C','C3',1000,3);
  37. Insert into AVIAO(MatriculaAviao,CorAviao,Autonomia,IdMarca) values('CS-D','C4',5000,2);
  38. Insert into AVIAO(MatriculaAviao,CorAviao,Autonomia,IdMarca) values('CS-E','C5',2000,5);
  39. Insert into PILOTO(IdPiloto,Nome,Salario,DataNasc) values(1,'Piloto1',3000,'1980-03-03');
  40. Insert into PILOTO(IdPiloto,Nome,Salario,DataNasc) values(2,'Piloto2',5000,'1970-05-05');
  41. Insert into PILOTO(IdPiloto,Nome,Salario,DataNasc) values(3,'Piloto3',1000,'1990-01-01');
  42. Insert into PILOTO(IdPiloto,Nome,Salario,DataNasc) values(4,'Piloto4',5000,'1971-05-05');
  43. Insert into PILOTO(IdPiloto,Nome,Salario,DataNasc) values(5,'Piloto5',2000,'1985-02-02');
  44. Insert into _VOO(NumVoo,DataVoo,OrigemVoo,DestinoVoo,MatriculaAviao,IdPiloto) values(1,'2000-01-01','Origem1','Destino1','CS-A',1);
  45. Insert into _VOO(NumVoo,DataVoo,OrigemVoo,DestinoVoo,MatriculaAviao,IdPiloto) values(2,'2010-01-01','Origem2','Destino2','CS-B',2);
  46. Insert into _VOO(NumVoo,DataVoo,OrigemVoo,DestinoVoo,MatriculaAviao,IdPiloto) values(3,'2017-06-09','Origem3','Destino3','CS-B',2);
  47. Insert into _VOO(NumVoo,DataVoo,OrigemVoo,DestinoVoo,MatriculaAviao,IdPiloto) values(4,'2018-05-05','Origem4','Destino4','CS-A',1);
  48. Insert into _VOO(NumVoo,DataVoo,OrigemVoo,DestinoVoo,MatriculaAviao,IdPiloto) values(5,'2018-05-09','Origem5','Destino6','CS-C',3);
  49.  
  50. Insert into AVIAO(MatriculaAviao,CorAviao,Autonomia,IdMarca) values('CS-G','C1',4000,1);
  51.  
  52.  
  53.  
  54. /*a)*/
  55. select MatriculaAviao from AVIAO where Autonomia >=5000;
  56.  
  57. /*b)*/
  58. select MARCA.NomeMarca, count(AVIAO.MatriculaAviao) as QuantidadedeAvioes
  59. from AVIAO right join MARCA
  60. on MARCA.idMarca=AVIAO.idMarca
  61. group by NomeMarca;
  62.  
  63. /*c)*/
  64. select Nome
  65. from PILOTO
  66. where DataNasc like "%05-08";
  67.  
  68. /*d)*/
  69. select Nome from PILOTO
  70. where datanasc=(select min(datanasc) from piloto);
  71.  
  72. /*e)*/
  73. select avg(Autonomia) from AVIAO
  74. group by CorAviao;
  75. /*f)*/
  76. SET SQL_SAFE_UPDATES = 0;
  77. UPDATE Piloto
  78. SET Salario=(Salario+Salario*.1) where Salario<2000;
  79. SELECT * FROM PILOTO;
  80.  
  81. /*G)*/
  82. SET SQL_SAFE_UPDATES = 0;
  83. UPDATE PILOTO
  84. SET Salario=(Salario-Salario*.1) Where Piloto.IdPiloto Not IN (SELECT idPiloto from _Voo);
  85.  
  86. SELECT * FROM PILOTO;
  87.  
  88.  
  89. /*2)*/
  90. create view nova as
  91. select * from _VOO order by DataVoo desc with check option;
  92. select * from nova;
  93.  
  94. /*3)*/
  95.  
  96. delimiter $$
  97. create procedure atu_salario()
  98. Begin
  99. select (salario+salario*.3)
  100. from PILOTO;
  101. End$$
  102. delimiter ;
  103.  
  104. call atu_salario();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement