Desvendando SQL: Functions

Eae gente bonita, tudo bem com vocês? Continuando os posts sobre SQL hoje venho trazer para vocês o que é uma Function e como usa-lá. O que é Como o próprio nome diz uma Function é uma função em SQL que podemos declarar e rodar quando quiser, como, por exemplo, em uma trigger. Nesse caso as funções do SQL diferem somente a sintaxe das funções de uma linguagem de programação comum. Assim como nas linguagens de programação que usamos no dia a dia, o SQL também tem algumas funções pré-definidas como funções de string, data e coisas do tipo. Como usar Vamos aprofundar um pouco mais e usar um exemplo bem simples. CREATE FUNCTION somar(integer, integer) RETURNS integer AS 'select $1 + $2;' LANGUAGE SQL RETURNS NULL ON NULL INPUT; Aqui podemos ver como funciona a sintaxe de uma função SQL, a sua declaração começa com CREATE FUNCTION ou CREATE OR REPLACE FUNCTION caso você queira substituir uma função já existente no seu banco de dados. Em seguida vem o nome da função e os tipos dos parâmetros passados e também a sua quantidade. É importante observar também que o tipo de retorno é definido logo no início da declaração e esse pode um banco, ou mesmo fazer referência ao tipo de uma coluna em uma tabela. As funções são definidas dentro do AS e os seus parâmetros são usados o número da posição, que foram declarados $1. Como no exemplo estou usando o PostgreSQL é necessário também informar a linguagem. Exemplos Vamos criar uma função simples. No caso abaixo irei criar uma função que lista todos as tarefas de um usuário. Link com o script para criar o banco de dados aqui. CREATE OR REPLACE FUNCTION getAllTodos(userId INT) RETURNS TABLE ( "title" varchar, "description" TEXT, "status" varchar ) AS $$ BEGIN RETURN QUERY SELECT "t"."title", "t"."description", "t"."status" FROM todos t inner join users u on u.id = t.user_id where u.id = userId; END; $$ LANGUAGE plpgsql; Após rodar esse script a função será criada no nosso banco, caso queira apagar e recriar basta rodar: DROP FUNCTION getAllTodos Agora vamos rodar a function, para rodar fazemos da seguinte forma: SELECT * FROM getAllTodos(5) E então teremos o seguinte resultado: Bem simples não é mesmo? Claro que a abordagem desse texto é te dar uma base e ajudar a entender o que é cada coisa para que no futuro você tenha uma base melhor para fazer pesquisas e saber o que e quando deve usar algo. No final do texto vou deixar alguns links com mais detalhes. Espero ter ajudado, caso tenha alguma dúvida fique a vontade para comentar! Se chegou até aqui, me segue la nas redes vizinhas. Fontes: Utilização de Functions no PostgreSQL How to write and use a function on PostgreSQL Database

Mar 12, 2025 - 18:28
 0
Desvendando SQL: Functions

Eae gente bonita, tudo bem com vocês? Continuando os posts sobre SQL hoje venho trazer para vocês o que é uma Function e como usa-lá.

O que é

Como o próprio nome diz uma Function é uma função em SQL que podemos declarar e rodar quando quiser, como, por exemplo, em uma trigger. Nesse caso as funções do SQL diferem somente a sintaxe das funções de uma linguagem de programação comum.

Assim como nas linguagens de programação que usamos no dia a dia, o SQL também tem algumas funções pré-definidas como funções de string, data e coisas do tipo.

Como usar

Vamos aprofundar um pouco mais e usar um exemplo bem simples.

CREATE FUNCTION somar(integer, integer) RETURNS integer
AS 'select $1 + $2;'
LANGUAGE SQL
RETURNS NULL ON NULL INPUT;

Aqui podemos ver como funciona a sintaxe de uma função SQL, a sua declaração começa com CREATE FUNCTION ou CREATE OR REPLACE FUNCTION caso você queira substituir uma função já existente no seu banco de dados. Em seguida vem o nome da função e os tipos dos parâmetros passados e também a sua quantidade. É importante observar também que o tipo de retorno é definido logo no início da declaração e esse pode um banco, ou mesmo fazer referência ao tipo de uma coluna em uma tabela.
As funções são definidas dentro do AS e os seus parâmetros são usados o número da posição, que foram declarados $1. Como no exemplo estou usando o PostgreSQL é necessário também informar a linguagem.

Exemplos

Vamos criar uma função simples. No caso abaixo irei criar uma função que lista todos as tarefas de um usuário.

Link com o script para criar o banco de dados aqui.

CREATE OR REPLACE FUNCTION getAllTodos(userId INT)
RETURNS TABLE (
    "title" varchar, 
    "description" TEXT, 
    "status" varchar
)
AS $$
    BEGIN
        RETURN QUERY SELECT
            "t"."title",
            "t"."description",
            "t"."status"
        FROM todos t
        inner join users u on u.id = t.user_id
        where u.id = userId;
    END;
$$ LANGUAGE plpgsql;

Após rodar esse script a função será criada no nosso banco, caso queira apagar e recriar basta rodar:

DROP FUNCTION getAllTodos

Agora vamos rodar a function, para rodar fazemos da seguinte forma:

SELECT * FROM getAllTodos(5)

E então teremos o seguinte resultado:

Image description

Bem simples não é mesmo? Claro que a abordagem desse texto é te dar uma base e ajudar a entender o que é cada coisa para que no futuro você tenha uma base melhor para fazer pesquisas e saber o que e quando deve usar algo. No final do texto vou deixar alguns links com mais detalhes.

Espero ter ajudado, caso tenha alguma dúvida fique a vontade para comentar!

Se chegou até aqui, me segue la nas redes vizinhas.

thank you dog

Fontes: