?>
1-mysql Básico
Exercícios
?>

Capítulo 3

Procedimentos e Funçoes


Procedimentos - Procedures

A sintaxe básica é:

Sintaxe de uma Procedure

                            
Create Procedure [Procedure Name] [[IN | OUT | INOUT] ([Parameter 1], [Parameter 2], [Parameter 3] )
Begin
SQL Queries..
End                       
                        

Para criar uma tabela temporária cuja estrutura é baseada em uma tabela existente deve-se usar a seguinte sintaxe:

Sintaxe de uma Tabela Temporária

                            
CREATE TEMPORARY TABLE temp_table_name
SELECT * FROM original_table
LIMIT 0;                  
                        

Nos exemplos que se seguem, usamos o banco de dados classicmodels dado no tutorial no qual baseamos essa seção. Veja mais clicando aqui. Ou fazendo o dowload do banco aqui.

Exemplo 1: Criando uma Tabela Temporária

Tabela Temporária 'credits'

                            
CREATE TEMPORARY TABLE credits(
    customerNumber INT PRIMARY KEY,
    creditLimit DEC(10,2)
);


    
                        

Inserindo Dados na Tabela Temporária 'credits'

                            
INSERT INTO credits(customerNumber,creditLimit)
SELECT customerNumber, creditLimit
FROM customers
WHERE creditLimit > 0;


    
                        


Exemplo 2: Criação de uma tabela temporária a partir de uma consulta

Criando Temporay Table a partir de uma Consulta

                            
CREATE TEMPORARY TABLE top_customers
SELECT p.customerNumber, 
       c.customerName, 
       ROUND(SUM(p.amount),2) sales
FROM payments p
INNER JOIN customers c ON c.customerNumber = p.customerNumber
GROUP BY p.customerNumber
ORDER BY sales DESC
LIMIT 10;
                            
                        

Agora, podemos consultar dados da tabela temporária "top_customers" como se fosse uma tabela permanente:

Consultando Tabela Temporária

                            
SELECT 
    customerNumber, 
    customerName, 
    sales
FROM
    top_customers
ORDER BY sales;
                            
                        

Descartando uma tabela temporária

Usamos a instrução DROP TABLE para remover tabelas temporárias; no entanto, é uma boa prática adicionar a palavra-chave TEMPORARY da seguinte forma:

DROP TEMPORARY TABLE table_name;

Por exemplo, para deletarmos a tabela "top_customers", fazemos:

DROP TEMPORARY TABLE top_customers;
voltar ao início da página