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 FUNCIONARIOSELECT 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 ?