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:
Por exemplo, para deletarmos a tabela "top_customers", fazemos: