A linguagem SQL é a mais utilizada quando o assunto é manipulação de banco de dados, e nesse artigo vamos aprender a trabalhar com essa linguagem e ver alguns exemplos.
Comando “select”
O comando select é o “comando base” para todos os comandos de pesquisa de informações no banco de dados.
select * from pcnfsaid;
O código da Listagem 1 seleciona todos os registros da tabela pcnfsaid, sem restrição de campos.
select numnota, dtsaida, vltotal from pcnfsaid;
O código da Listagem 2 seleciona os campos numnota, dtsaida e vltotal de todos os registros da tabela pcnfsaid.
Usando operadores aritméticos (usando ou não parênteses)
O código da Listagem 3 seleciona os campos numnota, dtsaida, vltotal, vldesconto, calcula vltotal-vldesconto, colhendo informações de todos os registros da tabela pcnfsaid.
- Regras de precedência: multiplicação(*), divisão(/), adição(+), subtração(-).
- Multiplicação e divisão têm prioridade sobre adição e subtração.
- Operadores de mesma prioridade são executados da esquerda para a direita.
- Parênteses podem ser usados para forçar a prioridade dos cálculos e tornar o entendimento das fórmulas mais claro.
select numnota, dtsaida, vltotal, vldesconto, vltotal-vldesconto
from pcnfsaid;
Definindo apelido para campos selecionados
A atribuição de apelidos aos campos selecionados tem como objetivo facilitar o entendimento das informações exibidas nos resultados das pesquisas.
Existem quatro maneiras diferentes de atribuir apelidos aos campos selecionados, são elas:
- select codprod as codigo from pcprodut;
- select codprod codigo from pcprodut;
- select codprod as “Codigo do Produto” from pcprodut;
- select codprod “Codigo do Produto” from pcprodut;
Observe que a única diferença entre os exemplos 1 e 2 é a utilização ou não do termo as. A utilização desse termo é opcional, e tem como objetivo melhorar o entendimento das seleções efetuadas. Esta diferença também pode ser observada entre os exemplos 3 e 4.
Observe que enquanto nos exemplos 1 e 2 os apelidos são escritos sem a utilização de aspas(“), os exemplos 3 e 4 fizeram a utilização desse caractere. A utilização de aspas(“) é necessária quando o apelido a ser atribuído contém espaços em branco.
Concatenar
O comando concatenar consiste em unificar as informações de dois campos distintos da tabela utilizada, exibindo-as em apenas um campo. Também podem ser utilizadas strings que não sejam informações existentes nas tabelas.
A Listagem 4 seleciona o campo especie, concatenando com o campo seria, seleciona também o campo numnota, de todos os registros da tabela pcnfsaid.
select especie || serie, numnota from pcnfsaid;
Já a Listagem 5 mostra como concatenar a string Emitido em: com o valor do campo dtemissao, com a string com vencimento em:, com o valor do campo dtvenc, onde os campos são da tabela pcprest, utilizando todos os registros da tabela.
select “Emitido em:” || “dtemissao:” || “ com vencimento
em:” || dtvenc from pcprest;
Distinct
O comando distinct consiste em exibir as informações da tabela utilizada de maneira distinta, assim as informações não serão exibidas de maneira redundante.
select distinct codcli from pcnfsaid;
O código da Listagem 6 mostra como selecionar o campo codcli da tabela pcnfsaid de maneira distinta, ou seja, cada informação do campo codcli será exibida apenas uma vez, não importando quantas outras vezes essa informação esteja presente em outros registros da tabela utilizada.
Restringindo Dados (where)
O comando de restrição where é o mais utilizado. Ele quer dizer “onde”, ou seja, com a sua utilização serão exibidas as informações solicitadas, obedecendo às restrições informadas.
Documentação: SQL: Cláusula Where
Condições de Comparação (=, >, >=, <, <=, <>, in, like, between, is null)
"=" é igual
A Listagem 7 seleciona todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota for igual a 50.
select * from pcnfsaid where numnota = 50;
">" é maior
A Listagem 8 seleciona todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota for maior que 45.
select * from pcnfsaid where numnota > 45;
">=" é maior ou igual
O código da Listagem 9 seleciona todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota for maior ou igual a 50.
select * from pcnfsaid where numnota >=50;
“<” é menor
O código da Listagem 10 seleciona todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota for menor que 10.
select * from pcnfsaid where numnota < 10;
"<=" é menor ou igual
Na Listagem 11 selecionamos todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota for menor ou igual a 5.
select * from pcnfsaid where numnota <= 5;
"<>" é diferente
O código da Listagem 12 seleciona todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota for diferente de 2.
select * from pcnfsaid where numnota <> 2;
"in" é na lista
Na Listagem 13 selecionamos todos os campos dos registros da tabela pcnfsaid onde o valor do campo numnota pertencer à lista 1,3,5,6,8.
select * from pcnfsaid where numnota in (1,3,5,6,8);
"like" é como, parecido
Selecionamos todos os campos dos registros da tabela pcnfsaid na Listagem 14, onde o valor do campo numnota começa com o número 1, não importando quantos e quais números venham na sequência.
select * from pcnfsaid where numnota like “1%”;
Já a Listagem 15 seleciona todos os campos dos registros da tabela pcnfsaid, onde o valor do campo numnota começa com o número 1, e que tenham apenas um número na sequência, com qualquer valor.
select * from pcnfsaid where numnota like “1_”;
E na Listagem 16 selecionamos todos os campos dos registros da tabela pcnfsaid, onde o valor do campo numnota começa com o número 1, e que tenham apenas dois números na sequência, com qualquer valor.
select * from pcnfsaid where numnota like “1__”;
Selecionamos todos os campos dos registros da tabela pcnfsaid, onde o primeiro número do campo numnota tenha qualquer valor, o segundo número for 1, não importando quantos e quais números venham na sequência, conforme mostra a Listagem 17.
select * from pcnfsaid where numnota like “_1%”;
“between” é a cláusula que coloca a busca entre dois valores
O código da Listagem 18 seleciona todos os campos dos registros da tabela pcnfsaid, onde o valor do campo numnota esteja entre os valores 1 e 10, incluindo-os.
select * from pcnfsaid where numnota between 1 and 10;
“is null” quer dizer é nulo
O código da Listagem 19 seleciona todos os campos dos registros da tabela pcnfsaid, onde o valor do campo comissao for nulo.
select * from pcnfsaid where comissao is null;
Condições Lógicas (not, and, or)
NOT
A condição lógica not é utilizada para acrescentar uma condição de negação, possibilitando a exclusão de registros na seleção, por exemplo a Listagem 20.
select * from pcprest
where duplic = 4
and codcob not in (“DESD”,”CHP”);
O código acima seleciona todos os campos dos registros da tabela pcprest, onde o campo duplic for igual a 4, e o campo codcob não for DESD e CHP.
select * from pcnfsaid
where comissao is not null;
O código da Listagem 21 seleciona todos os campos dos registros da tabela pcnfsaid, onde o campo comissão não for nulo.
O código da Listagem 22 seleciona todos os campos dos registros da tabela pcclient, onde o conteúdo do campo cliente não seja parecido com “JOSE”, ou seja, o nome “JOSE” não pode ser parte do conteúdo do campo cliente.
select * from pcclient
where cliente not like “%JOSE%”;
O código da Listagem 23 seleciona todos os campos dos registros da tabela pcclient, onde o valor do campo dtcadastro não estiver entre 01-jan-2007 e 31-jan-2007.
select * from pcclient
where dtcadastro not between “01-jan-2007” and “31-jan-2007”;
AND
A condição lógica and é utilizada para acrescentar uma condição de inclusão, ou seja, o resultado será exibido apenas se todos os critérios de pesquisa forem obedecidos.
O código da Listagem 24 seleciona todos os campos dos registros da tabela pcprest, onde o campo duplic for igual a 2 e o campo codcob for diferente de DESD.
select * from pcprest
where duplic = 2
and codcob <> “DESD”;
OR
A condição lógica or é utilizada para acrescentar uma condição de alternativa, ou seja, o resultado será exibido caso seja obedecido o primeiro critério OU caso seja obedecido o segundo critério.
A Listagem 25 seleciona todos os campos dos registros da tabela pcprest, onde o campo duplic for igual a 2, e o campo codcob for igual a BK, ou onde o campo duplic for igual a 3, e o campo codcob for igual a CHP.
select * from pcprest
where duplic = 2
and codcob = “BK”
or duplic = 3
and codcob = “CHP”;
Ordenando os resultados (order by, order by desc)
Ordenando por coluna simples
A Listagem 26 seleciona todos os campos dos registros da tabela pcempr, ordenando as informações pelo campo matricula, em ordem crescente.
select * from pcempr
order by matricula;
O código da Listagem 27 seleciona todos os campos dos registros da tabela pcempr, ordenando as informações pelo campo matricula, em ordem decrescente.
select * from pcempr
order by matricula desc;
Ordenando por múltiplas colunas
A Listagem 28 seleciona todos os campos dos registros da tabela pcprest, ordenando as informações pelos campos duplic, codcli e codcob, em ordem crescente.
select * from pcprest
order by duplic, codcli, codcob;
O código da Listagem 29 seleciona todos os campos dos registros da tabela pcprest, ordenando as informações pelos campos duplic, em ordem crescente, codcli em ordem crescente e codcob em ordem decrescente.
select * from pcprest
order by duplic, codcli, codcob desc;
Conclusão
Nesse artigo vimos algumas operações básicas da linguagem SQL. Com a leitura dele qualquer pessoa agora pode começar a estudar e fazer diversos testes em bancos de dados.
Espero que tenham gostado e até o próximo artigo.