Advertisement
Guest User

2015

a guest
Dec 5th, 2016
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.88 KB | None | 0 0
  1. 1 - A partir das tabelas a seguir referentes a uma base de dados relacionadas a editoras e livros: EDITORA(CodEdit, NomeEdit) FUNC(Matr, NomeFunc, Salario, Endereco, CodEdit*, MatrGer*),
  2. TEMA(CodTema, NomeTema) e LIVRO(CodLivro, Titulo, Preco, CodEdit*, CodTema*) responda usando SQL:
  3.  
  4. a) Liste os titulos dos livros, seus respectivos temas e editoras, para os livros com preco menor que 60 reais ordenando o resultado por ordem decrescente do nome da editora
  5. (Titulo, NomeTema, NomeEdit).
  6.  
  7. SELECT titulo, nometema, nomeedit
  8. FROM livro L INNER JOIN tema T on L.codtema = T.codtema
  9. INNER JOIN editora E on E.codedit = L.codedit
  10. where preco < 60
  11. order by nomeedit DESC
  12.  
  13. b) Liste a quantidade total de funcionarios que trabalham em cada editora (NomeEdit, Qtdfuncs)
  14.  
  15. SELECT nomeedit, count(Matr) as QtdFuncs
  16. FROM editora E INNER JOIN func F on E.codedit = F.codedit
  17. GROUP BY nomeedit
  18.  
  19. c) Liste os nomes dos funcionarios e das editoras em que trabalham, para os funcionarios que ganham um salario maior do que o salario medio da editora "Saraiva" (NomeFunc, NomeEdit)
  20.  
  21. SELECT nomefunc, nomeedit
  22. FROM func F INNER JOIN editora E on F.codedit = E.codedit
  23. WHERE salario > (SELECT avg(salario) as SalarioMedio FROM func F INNER JOIN editora E on F.codedit = E.codedit WHERE nomeedit = 'Saraiva')
  24.  
  25. d) Liste o salario medio de cada editora, listando somente as editoras iniciadas com a letra "A" e que tenham um salario medio maior que 2 mil reais. (NomeEdit, SalarioMedio). Para responder
  26. pense na consulta mais eficiente, isso sera considerado na correcao.
  27.  
  28. SELECT nomeedit, avg(salario) as SalarioMedio
  29. FROM func F INNER JOIN editora E on F.codedit = E.codedit
  30. WHERE nomeedit LIKE 'A%' AND avg(salario) > 2000
  31. GROUP BY nomeedit
  32.  
  33. e) Aumente em 20% os precos dos livros do tema "Romance" que pertencem a editora denominada "Campus".
  34.  
  35. UPDATE livro
  36. SET preco = preco*1.2
  37. WHERE (SELECT nometema FROM tema WHERE nometema = 'Romance') and (SELECT nomeedit FROM editora WHERE nomeedit = 'Campus')
  38.  
  39. UPDATE livro L, editora E, tema T
  40. SET preco = preco*1.2
  41. WHERE L.codedit = E.codedit and T.codtema = L.codtema and nometema = "Romance" and nomeedit = "Campus"
  42.  
  43. UPDATE livro L
  44. INNER JOIN editora E on E.codedit = L.codedit
  45. INNER JOIN tema T on T.codtema = L.codtema
  46. SET preco = preco*1.2
  47. WHERE nometema = 'Romance' and nomeedit = 'Campus'
  48.  
  49. f) Liste os nomes dos funcionarios e o salario dos seus gerentes somente para os funcionarios da editora "Bookman" que ganham mais do que 3000 reais. (NomeFunc, Salario) lembrando que o salario
  50. apresentado é do gerente do funcionario apresentado no resultado da escolha.
  51.  
  52. SELECT F.NomeFunc as NomeFunc, G.salario as SalarioGerente
  53. FROM func F INNER JOIN func G on F.MatrGer = G.Matr
  54. INNER JOIN editora E on E.codedit = F.codedit
  55. WHERE nomeedit = 'Bookman' and F.salario > 3000
  56.  
  57. 2) Imagine que um banco de dados denominado "Loja" possui as tabelas Cliente(CodCliente, NomeCliente) e Compra(CodCompra, Data, ValorCompra, CodCliente*), possibilitando registrar todas
  58. as compras feitas pelos cliente em uma loja. Imagine também que já existe um formulário HTML de entrada de dados pronto, em que o usuario insere o dado do codigo do cliente para o qual se
  59. deseja saber todas as compras realizadas. Esse formulario possui um marcador HTML para entrada desse dado que é: <input type = "textbox" name = "codigocliente">. Assuma tambem que esse
  60. formulario chama o formulario denominado listacompras.php.
  61. Com base nas informacoes acima, mostre o codigo em php/html do formulario listacompras.php, que apresenta a listagem de todas as compras realizadas pelo cliente selecionado no formulario
  62. de entrada de dados que o chama. Um possivel exemplo do resultado apresentado pelo formulario listacompras.php é apresentado abaixo:
  63.  
  64. Compras realizadas pelo cliente de codigo: 2
  65.  
  66. Codigo da compra | Data         | Valor da compra
  67. 123456           | 01/02/2015   | 1500,00
  68. 978678           | 15/03/2015   | 1800,00
  69.  
  70. Obs: para abrir uma conexao com o banco de dados mysql denominado Loja, utilize o comando:¨
  71. $conexao - new PDO("mysql:host=localhost;dbname=Loja","root","");
  72. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  73. <html>
  74. <head>
  75. <title>"Consulta de compras"</title>
  76. </head>
  77. <body>
  78. <p>"Compras realizadas pelo cliente de codigo: </p>
  79. <?php
  80. print $_POST['codigocliente'];
  81. $conexao = new PDO("mysql:host=localhost;dbname=Loja", "root", "");
  82. $consulta = "SELECT CodCompra, Data, ValorCompra FROM Compra WHERE CodCliente = " .$_POST['codigocliente']."";
  83. ?>
  84. <table border = 1>
  85. <tr>
  86. <th>Codigo da compra</th><th>Data</th><th>Valor da compra</th>
  87. </tr>
  88. <?php
  89. foreach ($conexao->query($consulta) as $linha)
  90.     {
  91.         print "<tr><td>".$linha['CodCompra']."</td><td>".$linha['Data']."</td><td>".$linha['ValorCompra']."</td></tr>";
  92.     }
  93. ?>
  94. </table>
  95. </body>
  96. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement