Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Últimos assuntos
Relogio

PROCEDURE e FUNCTION em mysql

Novo Tópico   Responder ao tópico

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

PROCEDURE e FUNCTION em mysql

Mensagem  juk em Seg Jun 10, 2013 9:24 pm

Código:

##########################################################################################|
DELIMITER//
CREATE PROCEDURE SP_TESTE()
BEGIN
DECLARE x INT DEFAULT 0;
END;
//

##########################################################################################|
CREATE PROCEDURE SP_TESTE2()
SELECT "OLA MUNDO"//
##########################################################################################|
CALL SP_TESTE2()//
##########################################################################################|
DROP PROCEDURE SP_TESTE2//
##########################################################################################|
DELIMITER //
CREATE PROCEDURE SP_TESTE4(IN num INT)
BEGIN
DECLARE x INT DEFAULT 0;
SET x=num;
SELECT x;
END;
//
##########################################################################################|
CALL SP_TESTE4(5)//
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_SAUDA1(IN nome VARCHAR(50))
BEGIN
DECLARE mensagem VARCHAR(11);
SET mensagem='Alo Mundo ';
SELECT CONCAT(mensagem,nome);
END$
DELIMITER;
##########################################################################################|
CALL SP_SAUDA1('JOSE');
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_CALC(IN A INTEGER, IN B INTEGER, OUT S INTEGER)
BEGIN
SET S=A+B;
END$
DELIMITER;
##########################################################################################|
CALL SP_CALC(5,3, @saida);
SELECT @saida;
##########################################################################################|
DELIMITER $
CREATE PROCEDURE simpleproc(OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM LIVRO;
END $
DELIMITER;
CALL simpleproc(@a);
SELECT @a;
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_DECISAO1(IN A FLOAT, IN B FLOAT)
BEGIN
DECLARE X FLOAT;
SET X=A+B;
IF(X>=10) THEN
SELECT X;
END IF;
END$
DELIMITER;
##########################################################################################|
CALL SP_DECISAO1(15.6,2.2);
##########################################################################################|
SHOW PROCEDURE STATUS;
SHOW CREATE PROCEDURE SP_DECISAO1;
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_DECISAO2(IN valor INTEGER)
BEGIN
DECLARE resto INTEGER;
SET resto=valor %3;
IF(resto=0)THEN
SELECT valor, ' E UM VALOR DIVISIVEL POR 3';
ELSE
SELECT valor, ' NAO E UM VALOR DIVISIVEL POR 3';
END IF;
END$
DELIMITER;
##########################################################################################|
CALL SP_DECISAO2(6);
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_NOME_MES()
BEGIN
DECLARE valor INTEGER;
DECLARE nome VARCHAR(15);
SET valor=MONTH(CURDATE());
IF(valor=1)THEN
SET nome='JANEIRO';
ELSEIF(valor=2)THEN
SET nome='FEVEREIRO';
ELSEIF(valor=3)THEN
SET nome='MARCO';
ELSEIF(valor=4)THEN
SET nome='ABRIU';
ELSEIF(valor=5)THEN
SET nome='MAIO';
ELSEIF(valor=6)THEN
SET nome='JUNHO';
ELSEIF(valor=7)THEN
SET nome='JULHO';
ELSEIF(valor=8)THEN
SET nome='AGOSTO';
ELSEIF(valor=9)THEN
SET nome='SETEMBRO';
ELSEIF(valor=10)THEN
SET nome='OUTUBRO';
ELSEIF(valor=11)THEN
SET nome='NOVEMBRO';
ELSEIF(valor=12)THEN
SET nome='DEZEMBRO';
END IF;
SELECT nome;
END$
DELIMITER;
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_DIA_SEMANA()
BEGIN
DECLARE valor INTEGER;
SET valor=DAYOFWEEK(CURDATE());
CASE
WHEN valor=1 THEN SELECT 'DOMINGO';
WHEN valor=2 THEN SELECT 'SEGUNDA';
WHEN valor=3 THEN SELECT 'TERCA';
WHEN valor=4 THEN SELECT 'QUARTA';
WHEN valor=5 THEN SELECT 'QUINTA';
WHEN valor=6 THEN SELECT 'SEXTA';
WHEN valor=7 THEN SELECT 'SABADO';
END CASE;
END $
DELIMITER;
##########################################################################################|
CALL SP_DIA_SEMANA();
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_FAT1(IN valor INTEGER)
BEGIN
DECLARE FATOR, I INTEGER;
SET FATOR=1;
SET I=1;
CALCULO: LOOP
SET FATOR=FATOR*I;
SET I=I+1;
SELECT I;
IF(I>VALOR) THEN
LEAVE CALCULO;
END IF;
END LOOP CALCULO;
SELECT FATOR;
END $
DELIMITER;
##########################################################################################|
CALL PROCEDURE SP_FAT1(5)
##########################################################################################|
DELIMITER $
CREATE PROCEDURE SP_FAT2(IN valor INTEGER)
BEGIN
DECLARE fator, I INTEGER;
SET fator=1;
SET I=1;
CALCULO: WHILE(I<=valor) DO
SET fator=fator*I;
SET I=I+1;
SELECT I;
END WHILE CALCULO;
SELECT fator;
END $
DELIMITER;
##########################################################################################|
CALL SP_FAT2(5);
##########################################################################################|
DELIMITER $
CREATE FUNCTION SF_FAT(N INTEGER) RETURNS INTEGER
BEGIN
DECLARE fator, I INTEGER;
SET fator=1;
SET I=1;
IF(N<=1) THEN
RETURN fator;
ELSE
CALCULO: WHILE(I<=N) DO
SET fator=fator*I;
SET I=I+1;
END WHILE CALCULO;
END IF;
RETURN fator;
END $
DELIMITER;
##########################################################################################|
SELECT SF_FAT(5);
##########################################################################################|
 CREATE TABLE AUDITORIA(CODIGO_LIVRO INT , VALOR_ANTIGO DECIMAL (5,2) , VALOR_NOVO DECIMAL (5,2));
##########################################################################################|
DELIMITER $
CREATE TRIGGER TESTA_AUMENTO AFTER UPDATE ON LIVRO
FOR EACH ROW
BEGIN
INSERT INTO AUDITORIA SET
CODIGO_LIVRO=NEW.CODIGO,
VALOR_ANTIGO=OLD.PRECO,
VALOR_NOVO=NEW.PRECO;
END $
DELIMITER;
##########################################################################################|
UPDATE LIVRO SET PRECO=PRECO*1.1;
SELECT * FROM AUDITORIA;
##########################################################################################|


avatar
juk

Mensagens : 225
Data de inscrição : 02/04/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


Novo Tópico   Responder ao tópico
 
Permissão deste fórum:
Você pode responder aos tópicos neste fórum