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

MYSQL - TLBDII

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