O que faz um comando select ?
Resposta Completa
O comando select
da linguagem SQL corresponde à operação de projeção da álgebra relacional, que basicamente é usado em conjunto com as cláusula from
e where
para listar os atributos desejados no resultado de uma consulta em um banco de dados.
É importante reafirmar que a linguagem SQL foi construída com base na álgebra relacional de acordo com uma proposta feita por Frank Codd, sendo que na álgebra relacional encontramos a operação de projeção correspondente ao comando select
, que é uma operação unária que retorna uma relação de argumentos com certos atributos omitidos. Como o comando select
não funciona de forma isolada, então também é usado a operação de seleção da álgebra relacional que basicamente seleciona tuplas que satisfazem um determinado predicado.
De forma prática e didática, veja abaixo os exemplos do que o comando select
é capaz de fazer. Mas para exemplificar vamos supor que em um banco hipotético exista a tabela de funcionários conforme demonstrado abaixo:
ID | NOME | SALARIO | DEPENDENTES |
---|---|---|---|
1 | Pedro Paulo | R$ 2.000,00 | 2 |
2 | João Vitor | R$ 3.000,00 | 1 |
3 | Paulo Roberto | R$ 1.800,00 | 3 |
4 | Roberto Augusto | R$ 2.000,00 | 0 |
Neste primeiro exemplo gostaríamos de selecionar todos os funcionários da tabela. Nesse caso existem duas formas de realizar o comando select
conforme demonstrado abaixo.
Query SQL:
SELECT * FROM FUNCIONARIO
SELECT ID, NOME, SALARIO, DEPENDENTES FROM FUNCIONARIO
Resultado:
ID | NOME | SALARIO | DEPENDENTES |
---|---|---|---|
1 | Pedro Paulo | R$ 2.000,00 | 2 |
2 | João Vitor | R$ 3.000,00 | 1 |
3 | Paulo Roberto | R$ 1.800,00 | 3 |
4 | Roberto Augusto | R$ 2.000,00 | 0 |
No segundo exemplo vamos usar a cláusula select
para selecionar somente a coluna SALARIO e somente os diferentes valores dessa coluna, ou seja, vamos desprezar os valores repetidos da coluna SALARIO
Query SQL:
SELECT DISTINCT SALARIO FROM FUNCIONARIO;
Resultado:
SALARIO |
---|
R$ 2.000,00 |
R$ 3.000,00 |
R$ 1.800,00 |
R$ 2.000,00 |
Agora, no terceiro exemplo, vamos selecionar a quantidade de registros de funcionários que existe na tabela FUNCIONARIO e atribuir um apelido a essa coluna de totalização que será o resultado da query.
Query SQL:
SELECT COUNT(*) as TOTAL FROM FUNCIONARIO;
Resultado:
TOTAL |
---|
4 |
Neste quarto exemplo vamos supor que exista a tabela dependentes, que possui os nomes dos dependentes dos funcionários e que gostaríamos de selecionar os nomes dos dependentes do funcionário Pedro Paulo.
ID | ID_FUNCIONARIO | NOME |
---|---|---|
1 | 1 | PEDRO |
2 | 1 | JOÃO |
3 | 2 | PAULA |
4 | 3 | FERNANDA |
5 | 3 | AMANDA |
6 | 3 | RICARDO |
Query SQL:
SELECT D.NOME FROM FUNCIONARIO F, DEPENDENTE DWHERE D.ID_FUNCIONARIO=F.IDAND F.ID=1;
SELECT D.NOME FROM DEPENDENTE DWHERE D.ID_FUNCIONARIO=1;
SELECT D.NOME FROM FUNCIONARIO F, DEPENDENTE DWHERE D.ID_FUNCIONARIO=F.IDAND NOME LIKE ‘PEDRO PAULO’;
SELECT D.NOME FROM DEPENDENTE DINNER JOIN FUNCIONARIO F ON D.ID_FUNCIONARIO=F.IDWHERE NOME LIKE ‘PEDRO PAULO’;
Resultado:
NOME |
---|
PEDRO |
JOÃO |
Neste quinto exemplo, podemos também usar o select
para criar uma nova tabela. Vamos supor que queremos criar uma tabela de backup do ano de 2020 de forma a acompanharmos a variação salarial dos funcionários de um ano para o outro.
Query SQL:
SELECT * INTO FUNC_BKP_2020 FROM FUNCIONARIO;
Resultado:
ID | NOME | SALARIO | DEPENDENTES |
---|---|---|---|
1 | Pedro Paulo | R$ 2.000,00 | 2 |
2 | João Vitor | R$ 3.000,00 | 1 |
3 | Paulo Roberto | R$ 1.800,00 | 3 |
4 | Roberto Augusto | R$ 2.000,00 | 0 |
Por fim este sexto exemplo visa demonstrar o uso do select
como uma subconsulta. Então imagine que gostaríamos de selecionar o funcionário cuja dependente se chama PAULA.
Query SQL:
SELECT * FROM FUNCIONARIOWHERE ID IN ( SELECT FUNCIONARIO_ID FROM DEPENDENTE WHERE NOME LIKE ‘PAULA’)
Resultado:
ID | NOME | SALARIO | DEPENDENTES |
---|---|---|---|
2 | João Vitor | R$ 3.000,00 | 1 |
Resumo
O comando select
, que corresponde a operação de projeção da linguagem SQL, possibilita consultas em banco de dados de diversas formas diferentes e também pode ser usado para criação de tabelas, quanto usado juntamente com a cláusula into
, pode ser usado em subselects e pode ser usado com diversas outras cláusulas de agregação e manipulação de dados do tipo data, string, etc. A sintaxe básica para se usar o comando select
é: select [campos] from [tabelas] where [condições]
.
Veja abaixo mais perguntas respondidas.
Como adicionar uma coluna em uma tabela de um banco de dados usando SQL ?
O que significa SQL ?
O que é nosql ?