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

Duvida na query

select a.nome, c.nome from aluno a join matricula m on a.id = m.aluno_id join curso c on c.id = m.curso_id;

Não consegui entender direito a query, porque ali no select tem esse a. e c. antes do nome, não to conseguindo entender de onde eles vieram, alguém pode me explicar melhor essas partes em negrito?

3 respostas
solução!

Olá Oliverrah,

o "a" e "c" são alias (apelidos) das suas respectivas tabelas, você pode ver que eles estão após o nome da tabela aluno e da tabela curso, respectivamente. Alias permitem tornam a query menor, de tamanho, facilitando a leitura, pois evitam que se tenha que escrever o nome inteiro da tabela várias vezes. Sem a utilização do alias a query ficaria assim:

select aluno.nome, curso.nome from aluno join matricula on aluno.id = matricula.aluno_id join curso on curso.id = matricula.curso_id;

No casso esses "apelidos" são sempre a letra inicial da tabela?

Geralmente se utiliza a primeira letra no nome da tabela por facilitar o entendimento da query, mas os apelidos poderiam ser qualquer palavra ou caracter, desde que não sejam iguais a palavras reservadas do SQL (select, from, where, etc) ou iguais a nome de outras tabelas envovidas na query. Outros exemplos de como poderiam ser os aliases:

select al.nome, cr.nome from aluno al join matricula mt on al.id = mt.aluno_id join curso cr on cr.id = mt.curso_id;

select x.nome, z.nome from aluno x join matricula y on x.id = y.aluno_id join curso z on z.id = x.curso_id;