Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no comando disponível para solução

Olá, utilizei o comando disponível para solução

TIMESTAMPDIFF(YEAR, c.data_de_nascimento, CURDATE()) as idade

Mas logo reparei que o "c." antes de "data_de_nascimento",na minha solução, não deveria estar lá. Rodei sem e aí deu certo:

CREATE DEFINER=root@localhost PROCEDURE Calcula_idade()

BEGIN

SELECT CPF, NOME, TIMESTAMPDIFF(YEAR, DATA_DE_NASCIMENTO, CURDATE()) as idade FROM tabela_de_clientes;

END

Reparei que a solução do instrutor também omite o "c." (Além de ser mais sofisticada e atualizar a tabela!) Qual a função/razão desse comando no código? PS: Obrigado pelo excelente curso!

2 respostas
solução!

Felipe, blz?

O "c" que aparece no código é conhecido como SQL Aliases.

Os aliases SQL são usados ​​para dar a uma tabela ou coluna de uma tabela um nome temporário.

Os aliases são frequentemente usados ​​para tornar os nomes das tabelas ou das colunas mais legíveis.

Um alias existe apenas durante a consulta.

Pode ser considerado como um apelido para a coluna ou tabela. Nesse caso deveria ser um apelido para tabela_de_clientes se na frente do nome da tabela fosse adicionado AS c conforme exemplo abaixo.

Note também que toda a função de cálculo é apelidado no final como AS idade, para que a coluna não tivesse o nome completo da função e que fique mais fácil para quem for consumir essa informação depois.

SELECT
    CPF,
    NOME,
    TIMESTAMPDIFF(YEAR, c.DATA_DE_NASCIMENTO, CURDATE()) AS idade
FROM tabela_de_clientes AS c
;

Também é muito importante para diferenciar colunas com nomes iguais quando há mais de uma tabela no SELECT. Exemplo:

SELECT
    c.CPF AS cpf_cliente,
    f.CPF AS cpf_funcionario,
    c.NOME AS nome_cliente,
    f.NOME AS nome_funcionario
FROM tabela_de_clientes AS c
INNER JOIN tabela_de_funcionarios AS f ON c.CPF = f.CPF
;

Links de referência:

dev MySQL - Problems with alias

w3schools - SQL Aliases

Espero ter ajudado.

Bons estudos!

O c. é um alias, isto é apelido dado a tabela na clásula from. É boa prática usá-los nos casos de consultas mais complexas e que tenham tabelas com mesmo nome nos campos.