Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Carla Mansilha
carla.mansilha@gmail.com
Objetivos da Sessão
• A Clausula LIMIT
• O Operador CASE
• Views
• Eventos Temporais
CASE
[ELSE result]
END
SQL – CASE - Exemplo
• SITUAÇÃO:
CASE
END AS "Tipo_aluno"
CREATE
LINGUAGEM SQL
• EXEMPLO:
DELIMITER $$
BEGIN
where qt_stock<=qt_ver;
END $$
DELIMITER ;
SQL - PROCEDURES
• PROCEDURES DE ENTRADA: Obter dados das filiais de
um determinado país.
DELIMITER $$
CREATE PROCEDURE Obtem_filiais_por_pais(IN nome_pais VARCHAR(255))
BEGIN
SELECT *
FROM filiais
WHERE pais= nome_pais;
END $$
DELIMITER ;
Como chamar:
CALL Selecionar_encomendas (2);
SQL - PROCEDURES
• PROCEDURES DE SAÍDA: Verificar o número total de
produtos
• CRIAR:
DELIMITER $$
CREATE PROCEDURE Verificar_total_Produtos(OUT total_produtos INT)
BEGIN
SELECT COUNT(1) INTO total_produtos FROM PRODUTOS;
END $$
DELIMITER ;
Como chamar:
CALL Verificar_Quantidade_Produtos(@total);
SELECT @total;
SQL - PROCEDURES
• PROCEDURES DE SAÍDA: Verificar o número total de
encomendas
• CRIAR:
DELIMITER $$
CREATE PROCEDURE Verificar_num_encomendas(OUT total_encomendas INT)
BEGIN
SELECT COUNT(1) INTO total_encomendas FROM ENCOMENDAS;
END $$
DELIMITER ;
Como chamar:
CALL Verificar_num_encomendas(@total);
SELECT @total;
SQL - PROCEDURES
• PROCEDURES COM PARAMETROS DE ENTRADA E DE SAÍDA:
OBTER O Nº DE ENCOMENDAS (OUT) “COM DETERMINADO
ESTADO (POR EX: Enviado – IN)”
• Como criar
DELIMITER $$
CREATE PROCEDURE Conta_encomendas_por_estado(IN estado_encomenda VARCHAR(25),
OUT total_estado INT)
BEGIN
SELECT count(numero_encomenda)
INTO total_estado
FROM encomendas
WHERE estado = estado_encomenda;
END$$
DELIMITER ;
Como chamar:
CALL Conta_encomendas_por_estado('Enviado',@total_estado);
SELECT @total_estado;
SQL - PROCEDURES
• PROCEDURES DE ENTRADA/SAÍDA: incrementar em
25% o nº que determina a quantidade mínima em stock.
• Como criar
DELIMITER $$
CREATE PROCEDURE aumenta_qt_minina(INOUT numero INT)
BEGIN
SET numero = numero * 1.25;
END $$
DELIMITER ;
Como chamar:
SET @valor = 5;
CALL aumenta_qt_minina(@valor);
SELECT @valor;
SQL - PROCEDURES
• Também podem ser criadas graficamente
recorrendo ao menu rotinas:
E igualmente executadas,
eliminadas e exportado o seu
código:
SQL – PROCEDURES - DROP
• Para eliminar uma Procedure podemos usar o
comando DROP.
• SINTAXE:
• DROP PROCEDURE [IF EXISTS] nome_procedure;
• EXEMPLO:
• DROP Procedure aumenta_qt_minima
Ou fazê-lo de forma gráfica no
PhpMyAdmin clicando no Elimina
FUNCTIONS
SQL - FUNCTIONS
• FUNCTIONS são um tipo especial de procedimento que
retorna um único valor . São utilizados essencialmente para
encapsular fórmulas comuns ou de regras de negócios que são
reutilizáveis entre instruções SQL.
SQL - FUNCTIONS
• SINTAXE:
CREATE
RETURNS tipo_de_dados
LINGUAGEM SQL
Nota:
DETERMINISTIC
BEGIN
END IF;
RETURN (nivel);
END $$
DETERMINISTIC
BEGIN
WHERE pais=nome_pais;
IF ISNULL(@total) then
return 0;
else
return @total;
END IF;
END $$
DELIMITER $$
SQL – DROP FUNCTION
• SINTAXE:
• EXEMPLO:
• EXEMPLO:
• EXEMPLO:
• Vídeo da sessão