MYSQL - TLBDII

3.164 visualizações

Publicada em

Etec Monsenhor Antonio Magliano Garça/SP
TLBDII - MYSQL - 3ºWEBDESIGN - 2009

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.164
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

MYSQL - TLBDII

  1. 1. PROF. ALOISIO
  2. 2. REVISÃO
  3. 3. <ul><li>CREATE DATABASE [ IF NOT EXISTS ] NOME_BANCO </li></ul><ul><li>EXEMPLO: </li></ul><ul><li>CREATE DATABASE ESTOQUE; </li></ul>
  4. 4. <ul><li>CREATE TABLE cinema.sala ( </li></ul><ul><li>NUMERO integer unsigned NOT NULL auto_increment, </li></ul><ul><li>DESCRICAO varchar(50) default NULL, </li></ul><ul><li>LUGARES int(4) NULL, </li></ul><ul><li>CLIMATIZADO ENUM('Y','N'), </li></ul><ul><li>DIGITAL ENUM('Y','N'), </li></ul><ul><li>PRIMARY KEY ( NUMERO ) </li></ul><ul><li>) </li></ul>
  5. 5. <ul><li>ALTER TABLE estoque.vendas </li></ul><ul><li>ADD CONSTRAINT CT_PRODUTO </li></ul><ul><li>FOREIGN KEY FK_PRODUTO (PRODUTO) </li></ul><ul><li>REFERENCES produto (CODIGO) </li></ul><ul><li>ON DELETE RESTRICT </li></ul><ul><li>ON UPDATE RESTRICT; </li></ul>
  6. 6. <ul><li>INSERT INTO SALA (DESCRICAO,LUGARES,CLIMATIZADO,DIGITAL) VALUES ( 'SALA 1',300,'Y','N' ); </li></ul>
  7. 7. <ul><li>SELECT * FROM vendas </li></ul><ul><li>SELECT * FROM vendas order by data; </li></ul><ul><li>SELECT * FROM vendas order by Produto; </li></ul><ul><li>SELECT SUM (QUANTIDADE) AS TOTAL FROM vendas WHERE PRODUTO = 2; </li></ul>
  8. 8. 3º CICLO
  9. 9. <ul><li>SELECT JOIN </li></ul><ul><li>SELECT UNION </li></ul><ul><li>ORDER BY </li></ul><ul><li>GROUP BY </li></ul>
  10. 10. <ul><li>VIEWS </li></ul><ul><li>GERENCIAMENTO DE USUÁRIOS </li></ul><ul><ul><li>GRANT </li></ul></ul><ul><ul><li>REVOKE </li></ul></ul>
  11. 11. <ul><li>PROCEDURES </li></ul><ul><li>TRIGGERS </li></ul><ul><li>FUNCTIONS </li></ul>
  12. 12. <ul><li>SUM </li></ul><ul><li>COUNT </li></ul><ul><li>MAX </li></ul><ul><li>MIN </li></ul><ul><li>AVG </li></ul>
  13. 13. <ul><li>REALIZA O SOMATÓRIO DE VALORES DE TODOS REGISTROS REFERENTES AO CAMPO ESPECIFICADO. </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT SUM( QUANTIDADE ) FROM estoque.vendas WHERE PRODUTO = 2; </li></ul>
  14. 14. <ul><li>FUNÇÃO ESPECIAL QUE FAZ A CONTAGEM DE REGISTROS DE UMA TABELA EM UMA SELECT. </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT COUNT(*) FROM ESTOQUE.VENDAS WHERE DATA >= ‘2008-01-01’; </li></ul>
  15. 15. <ul><li>FUNÇÃO RETORNA O VALOR MÁXIMO PESQUISADO EM UMA SELECT. </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT MAX(DATA) FROM ESTOQUE.VENDAS; </li></ul>
  16. 16. <ul><li>FUNÇÃO RETORNA O VALOR MÍNIMO PESQUISADO EM UMA SELECT. </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT MIN(DATA) FROM ESTOQUE.VENDAS; </li></ul><ul><li>SELECT MIN(QUANTIDADE) FROM ESTOQUE.VENDAS WHERE PRODUTO =2; </li></ul>
  17. 17. <ul><li>FUNÇÃO RETORNA O VALOR MÉDIO DE UM CAMPO PESQUISADO EM UMA SELECT. </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT AVG(QUANTIDADE) FROM ESTOQUE.VENDAS WHERE PRODUTO =2; </li></ul>
  18. 19. <ul><li>É OBTIDO NA LINGUAGEM SQL COM A CLÁUSULA GROUP BY COMBINADA COM O COMANDO SELECT APÓS O USO DE WHERE E ANTES DA CLÁUSULA ORDER BY . </li></ul><ul><li>SINTAXE: SELECT <campos> FROM <tabela> WHERE [condição] </li></ul><ul><li>GROUP BY <campos> [ASC|DESC] </li></ul><ul><li>ORDER BY <campos> [ASC|DESC] ; </li></ul>
  19. 20. <ul><li>RECURSO DE ORDENAÇÃO DISPONÍVEL PARA CONSULTAS QUE PERMITE ORGANIZAR UMA PESQUISA DE ACORDO COM O CAMPO ESPECIFICADO. </li></ul><ul><li>SINTAXE </li></ul><ul><li>ORDER BY CAMPO1,CAMPO2…CAMPON; </li></ul>
  20. 21. <ul><li>EXEMPLO </li></ul><ul><li>SELECT * FROM ESTOQUE.VENDAS ORDER BY DATA ; </li></ul><ul><li>SELECT * FROM ESTOQUE.VENDAS ORDER BY DATA , CODIGO; </li></ul>
  21. 22. <ul><li>Crie um banco chamado Estacionamento </li></ul><ul><li>Nesse Banco crie uma tabela Carros </li></ul><ul><li>Com os Campos: </li></ul><ul><ul><li>Placa – Texto (7) não nulo(Chave Primária) </li></ul></ul><ul><ul><li>Modelo –Texto(40) </li></ul></ul><ul><ul><li>Fabricante - Texto(20) </li></ul></ul><ul><ul><li>Ano- Texto(4) </li></ul></ul><ul><ul><li>Valor- Ponto Flutuante </li></ul></ul><ul><ul><li>Data – Data Automática </li></ul></ul><ul><ul><li>INSIRA 10 REGISTROS </li></ul></ul>
  22. 23. <ul><li>CRIE AS SEGUINTES CONSULTAS: </li></ul><ul><li>Liste todos os campos em ordem de ano </li></ul><ul><li>Liste todos os campos em ordem de Fabricante </li></ul><ul><li>Consulte e informe a soma do valor de todos os carros </li></ul><ul><li>Consulte e informe a média do valor de todos os carros </li></ul><ul><li>Informe quantos carros existem no cadastro </li></ul><ul><li>Informe qual o valor do carro mais caro, </li></ul>
  23. 24. <ul><li>AGRUPA OS RESULTADOS MEDIANTE CAMPOS ESPECIFICADO </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT PRODUTO,SUM(QUANTIDADE) FROM estoque.vendas GROUP BY PRODUTO; </li></ul>
  24. 25. <ul><li>EXEMPLO 2 </li></ul><ul><li>SELECT PRODUTO,DESCRICAO, SUM(QUANTIDADE) QUANTIDADE </li></ul><ul><li>FROM ESTOQUE.VENDAS v , </li></ul><ul><li>ESTOQUE.PRODUTO p </li></ul><ul><li>WHERE p .codigo = v .produto </li></ul><ul><li>GROUP BY PRODUTO; </li></ul>
  25. 26. <ul><li>EXERCÍCIO </li></ul>
  26. 27. <ul><li>Crie um Banco chamado Empresa </li></ul><ul><li>Crie uma tabela chamada Funcionário com </li></ul><ul><ul><ul><li>Código – Inteiro – Chave Primária </li></ul></ul></ul><ul><ul><ul><li>Nome – Texto(40) </li></ul></ul></ul><ul><ul><ul><li>Sexo – Enumeração (‘M’,’F’) </li></ul></ul></ul><ul><ul><ul><li>Cargo Enumeração (‘Gerente’,’Lider’,’Funcionario’) </li></ul></ul></ul><ul><ul><ul><li>Salário – Ponto Flutuante </li></ul></ul></ul><ul><li>Insira 10 registros </li></ul><ul><li>Consulta </li></ul><ul><ul><li>Exiba o total gasto agrupado por cargo </li></ul></ul><ul><ul><li>Exiba os salários mais altos por cargo </li></ul></ul><ul><ul><li>Exiba o salário mais alto por sexo </li></ul></ul><ul><ul><li>Exiba quantos homens e quantas mulheres há </li></ul></ul>
  27. 28. <ul><li>USADA PARA COMBINAR O RESULTADO DE MUITAS INSTRUÇÕES SELECT EM UM ÚNICO CONJUNTO DE DADOS </li></ul><ul><li>SINTAXE </li></ul><ul><li>SELECT … </li></ul><ul><li>UNION [ALL] </li></ul><ul><li>SELECT… </li></ul>
  28. 29. <ul><li>Listar a tabela Vendas </li></ul><ul><li>select * from estoque.vendas; </li></ul><ul><li>Criar a tabela ArquivoMorto </li></ul><ul><li>Create table estoque.ArquivoMorto select * from estoque.vendas where nota <=5; </li></ul><ul><li>Apagar os dados da tabela Vendas </li></ul><ul><li>delete from estoque.vendas where nota <=5; </li></ul>
  29. 30. <ul><li>Listar a tabela Vendas </li></ul><ul><li>select * from estoque.vendas; </li></ul><ul><li>Listar a tabela ArquivoMorto </li></ul><ul><li>select * from estoque.arquivomorto; </li></ul><ul><li>UNIR AS DUAS SELECTS EM UMA SÓ </li></ul><ul><li>select * from estoque.vendas UNION </li></ul><ul><li>select * from estoque.ArquivoMorto </li></ul><ul><li>order by nota; </li></ul>
  30. 31. <ul><li>USADA PARA FILTRAR E EXIBIR DADOS NÃO REPETIDOS FORMANDO RESULTADOS COM DADOS DISTINTOS UNS DOS OUTROS </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT DISTINCT PRODUTO FROM ESTOQUE.VENDAS </li></ul>
  31. 32. <ul><li>USADA PARA JUNTAR O CONTEÚDO DE DUAS OU MAIS TABELAS EM UMA SELECT </li></ul><ul><li>EXEMPLO </li></ul><ul><li>SELECT V .PRODUTO, P .DESCRICAO FROM ESTOQUE.PRODUTO P </li></ul><ul><li>LEFT JOIN ESTOQUE.VENDAS V </li></ul><ul><li>ON P .CODIGO = V .PRODUTO </li></ul>
  32. 33. <ul><li>EXERCÍCIO: Crie as Tabelas </li></ul>Bilhete Número Data Cliente (Código) Empresa Cliente Código Nome Sexo (‘M’,’F’) Telefone <ul><li>INSIRA 5 REGISTROS CADA; </li></ul><ul><li>CRIE UMA CONSULTA ONDE SÃO EXIBIDOS OS CAMPOS: </li></ul><ul><li>Número, Data, Empresa,Cliente,Sexo USANDO JOIN . </li></ul>
  33. 34. <ul><li>VIEW É UM RECURSO QUE POSSIBILITA , A PARTIR DE UMA TABELA REAL EXISTENTE. SE PARECEM COM AS REAIS MAS SÃO APENAS REFERÊNCIAS A ELAS. </li></ul><ul><li>SINTAXE </li></ul><ul><li>CREATE VIEW <tabela virtual> AS <consulta> </li></ul>
  34. 35. <ul><li>EXEMPLO </li></ul><ul><li>CREATE VIEW vVendas AS </li></ul><ul><li>SELECT PRODUTO, SUM(QUANTIDADE) QTDE FROM vendas GROUP BY PRODUTO </li></ul>
  35. 36. <ul><li>CRIE UM BANCO CHAMADO EMPRESA </li></ul><ul><li>NESSE BANCO CRIE A TABELA DEPARTAMENTO COM A SEGUINTE ESTRUTURA: </li></ul>* CODIGO INTEIRO, AUTO INCREMENTO, NÃO NULO DESCRICÃO TEXTO (50)
  36. 38. <ul><li>A criação de um usuário,definição ou alteração de privilégios para um determinado usuário são realizados com o comando GRANT . </li></ul><ul><li>SINTAXE </li></ul><ul><li>GRANT <privilégios> [<colunas>] ON <*.*|db.*|db.tabela> </li></ul><ul><li>TO usuários [ IDENTIFIED BY [ PASSWORD ‘senha’]] </li></ul><ul><li>[WITH [GRANT OPTION]] </li></ul>
  37. 39. <ul><li>GRANT ALL PRIVILEGES ON *.* TO usuario1@localhost </li></ul><ul><li>IDENTIFIED BY ‘abc123’ WITH GRANT OPTION; </li></ul><ul><li>GRANT ALL PRIVILEGES ON *.* TO usuario2@% </li></ul><ul><li>IDENTIFIED BY ‘abc123’ WITH GRANT OPTION; </li></ul><ul><li>GRANT SELECT (NOME,ADMISSAO) ON Empresa.Empregado </li></ul><ul><li>TO usuario3@localhost IDENTIFIED BY ‘abc123’; </li></ul><ul><li>GRANT UPDATE,INSERT ON Empresa.Empregado </li></ul><ul><li>TO usuario4@localhost IDENTIFIED BY ‘abc123’; </li></ul>
  38. 40. <ul><li>SINTAXE </li></ul><ul><li>REVOKE <privilegios> [<colunas>] ON {* | *.* <db.tabela>.*} </li></ul><ul><li>FROM <usuários> </li></ul>
  39. 41. <ul><li>É um conjunto de comandos SQL que pode ser armazenados no servidor . </li></ul>
  40. 42. <ul><li>SINTAXE </li></ul><ul><li>CREATE PROCEDURE proc_name([parameters, ...]) [characteristics] [BEGIN]       corpo_da_rotina; [END] </li></ul>
  41. 43. <ul><li>SINTAXE </li></ul><ul><li>Existem 3 tipos de parâmetros em uma Stored Procedure: </li></ul><ul><li>IN => este é um parâmetro de entrada, ou seja, um parâmetro cujo seu valor será utilizado no interior do procedimento para produzir algum resultado; </li></ul><ul><li>OUT => este parâmetro retorna algo de dentro do procedimento para o lado externo, colocando os valores manipulados disponíveis na memória ou no conjunto de resultados; </li></ul><ul><li>INOUT => faz os dois trabalhos ao mesmo tempo! </li></ul>
  42. 44. <ul><li>EXEMPLO </li></ul><ul><li>DELIMITER $$ </li></ul><ul><li>CREATE PROCEDURE empresa.TOTAL_DEPTO () </li></ul><ul><li>BEGIN </li></ul><ul><li>SELECT COUNT(*) TOTAL FROM empresa.departamento; </li></ul><ul><li>END $$ </li></ul><ul><li>DELIMITER ; </li></ul>
  43. 45. <ul><li>Vantagens </li></ul><ul><li>Os comandos não precisam ser reenviados, basta apenas fazer referência a ele. </li></ul><ul><li>Pode-se criar uma biblioteca de funções no Servidor. </li></ul><ul><li>Várias aplicações escritas em diferentes linguagens que realizam uma mesma tarefa . </li></ul><ul><li>Permite a padronização da entrada de dados </li></ul>
  44. 46. <ul><li>EXEMPLO </li></ul><ul><li>DELIMITER $$ </li></ul><ul><li>CREATE PROCEDURE empresa.OLA () </li></ul><ul><li>BEGIN </li></ul><ul><li> SELECT ‘Alo, Mundo’; </li></ul><ul><li>END $$ </li></ul><ul><li>DELIMITER ; </li></ul>
  45. 47. <ul><li>EXEMPLO (Variáveis) </li></ul><ul><li>DELIMITER $$ </li></ul><ul><li>CREATE PROCEDURE empresa.OLA () </li></ul><ul><li>BEGIN </li></ul><ul><li>DECLARE Mensagem VARCHAR(11); </li></ul><ul><li>SET Mensagem = ‘Alo, Mundo’; </li></ul><ul><li>SELECT Mensagem; </li></ul><ul><li>END $$ </li></ul><ul><li>DELIMITER ; </li></ul>
  46. 48. <ul><li>EXEMPLO (Parâmetros) </li></ul><ul><li>DELIMITER $$ </li></ul><ul><li>CREATE PROCEDURE empresa.OLA (IN NOME VARCHAR(40)) </li></ul><ul><li>BEGIN </li></ul><ul><li>SELECT CONCAT('OLÁ ',NOME, ' HORA CERTA: ',NOW()) OI; </li></ul><ul><li>END $$ </li></ul><ul><li>DELIMITER ; </li></ul>
  47. 49. <ul><li>EXEMPLO (IN,OUT) </li></ul><ul><li>DELIMITER $$ </li></ul><ul><li>CREATE PROCEDURE SOMA(IN A INTEGER, IN B INTEGER, OUT S) </li></ul><ul><li>BEGIN </li></ul><ul><li>SET S = A+B; </li></ul><ul><li>END $$ </li></ul><ul><li>DELIMITER ; </li></ul><ul><li>CALL SOMA(5,3,@saida); </li></ul><ul><li>SELECT @saida; </li></ul>
  48. 50. <ul><li>EXEMPLO (IF) </li></ul><ul><li>DELIMITER $$ </li></ul><ul><li>CREATE PROCEDURE COMPARA(IN A INTEGER, IN B INTEGER) </li></ul><ul><li>BEGIN </li></ul><ul><li>DECLARE RESP VARCHAR(20); </li></ul><ul><li>IF (A > B) THEN </li></ul><ul><li>SET RESP =‘A MAIOR QUE B’; </li></ul><ul><li>ELSE </li></ul><ul><li>SET RESP =‘A MENOR QUE B’; </li></ul><ul><li>END IF </li></ul><ul><li>SELECT RESP; </li></ul><ul><li>END $$ </li></ul><ul><li>DELIMITER ; </li></ul>

×