1
resposta

Poderiam explicar a composição dos comandas abaixo?

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; O que é "a.nome", "c.nome", "matricula m", "m.aluno"...? Uma explicação de onde vieram e pra que servem estas letras, seria o mínimo aceitável. Ou eu já deveria saber disso na primeira parte do curso? Este curso é gratuito ou pago?

1 resposta

Essas letras são chamadas de "alias", são apelidos atribuídos a tabela. Veja o seguinte exemplo:

Tabela Clientes Campos: id, nome, telefone

Tabela Compras Campos: id, cliente_id, data_compra

Se eu quiser obter o id do cliente, nome do cliente e data da compra, eu poderia fazer assim:

select id, nome, data_compra from clientes INNER JOIN compras ON id = cliente_id

Eu faço uma união (INNER JOIN) das duas tabelas usando um campo em comum em ambas as tabelas. No caso, o id do cliente existe em compras como cliente_id

Só que eu vou ter um problema. Perceba que as duas tabelas tem uma coluna chamada "id". O SQL não vai saber de qual tabela você quer este campo na hora de exibir os resultados.

Por isso você usa o alias. Para evitar esta tipo de problema.

O exemplo com alias ficaria desta forma:

select a.id, a.nome, b.data_compra from clientes as a INNER JOIN compras as b ON a.id = b.cliente_id