Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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*),
- TEMA(CodTema, NomeTema) e LIVRO(CodLivro, Titulo, Preco, CodEdit*, CodTema*) responda usando SQL:
- 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
- (Titulo, NomeTema, NomeEdit).
- SELECT titulo, nometema, nomeedit
- FROM livro L INNER JOIN tema T on L.codtema = T.codtema
- INNER JOIN editora E on E.codedit = L.codedit
- where preco < 60
- order by nomeedit DESC
- b) Liste a quantidade total de funcionarios que trabalham em cada editora (NomeEdit, Qtdfuncs)
- SELECT nomeedit, count(Matr) as QtdFuncs
- FROM editora E INNER JOIN func F on E.codedit = F.codedit
- GROUP BY nomeedit
- 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)
- SELECT nomefunc, nomeedit
- FROM func F INNER JOIN editora E on F.codedit = E.codedit
- WHERE salario > (SELECT avg(salario) as SalarioMedio FROM func F INNER JOIN editora E on F.codedit = E.codedit WHERE nomeedit = 'Saraiva')
- 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
- pense na consulta mais eficiente, isso sera considerado na correcao.
- SELECT nomeedit, avg(salario) as SalarioMedio
- FROM func F INNER JOIN editora E on F.codedit = E.codedit
- WHERE nomeedit LIKE 'A%' AND avg(salario) > 2000
- GROUP BY nomeedit
- e) Aumente em 20% os precos dos livros do tema "Romance" que pertencem a editora denominada "Campus".
- UPDATE livro
- SET preco = preco*1.2
- WHERE (SELECT nometema FROM tema WHERE nometema = 'Romance') and (SELECT nomeedit FROM editora WHERE nomeedit = 'Campus')
- UPDATE livro L, editora E, tema T
- SET preco = preco*1.2
- WHERE L.codedit = E.codedit and T.codtema = L.codtema and nometema = "Romance" and nomeedit = "Campus"
- UPDATE livro L
- INNER JOIN editora E on E.codedit = L.codedit
- INNER JOIN tema T on T.codtema = L.codtema
- SET preco = preco*1.2
- WHERE nometema = 'Romance' and nomeedit = 'Campus'
- 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
- apresentado é do gerente do funcionario apresentado no resultado da escolha.
- SELECT F.NomeFunc as NomeFunc, G.salario as SalarioGerente
- FROM func F INNER JOIN func G on F.MatrGer = G.Matr
- INNER JOIN editora E on E.codedit = F.codedit
- WHERE nomeedit = 'Bookman' and F.salario > 3000
- 2) Imagine que um banco de dados denominado "Loja" possui as tabelas Cliente(CodCliente, NomeCliente) e Compra(CodCompra, Data, ValorCompra, CodCliente*), possibilitando registrar todas
- 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
- 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
- formulario chama o formulario denominado listacompras.php.
- 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
- de entrada de dados que o chama. Um possivel exemplo do resultado apresentado pelo formulario listacompras.php é apresentado abaixo:
- Compras realizadas pelo cliente de codigo: 2
- Codigo da compra | Data | Valor da compra
- 123456 | 01/02/2015 | 1500,00
- 978678 | 15/03/2015 | 1800,00
- Obs: para abrir uma conexao com o banco de dados mysql denominado Loja, utilize o comando:¨
- $conexao - new PDO("mysql:host=localhost;dbname=Loja","root","");
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- <html>
- <head>
- <title>"Consulta de compras"</title>
- </head>
- <body>
- <p>"Compras realizadas pelo cliente de codigo: </p>
- <?php
- print $_POST['codigocliente'];
- $conexao = new PDO("mysql:host=localhost;dbname=Loja", "root", "");
- $consulta = "SELECT CodCompra, Data, ValorCompra FROM Compra WHERE CodCliente = " .$_POST['codigocliente']."";
- ?>
- <table border = 1>
- <tr>
- <th>Codigo da compra</th><th>Data</th><th>Valor da compra</th>
- </tr>
- <?php
- foreach ($conexao->query($consulta) as $linha)
- {
- print "<tr><td>".$linha['CodCompra']."</td><td>".$linha['Data']."</td><td>".$linha['ValorCompra']."</td></tr>";
- }
- ?>
- </table>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement