Mudanças entre as edições de "Postgres: do in, like, ilike"

De AleloWiki
Ir para: navegação, pesquisa
Linha 1: Linha 1:
 
Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT.
 
Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT.
  
Vamos utilizar com exemplo a tabela abaixo:
+
Comandos aplicados ao exemplo de tabela de dados a seguir:
 
 
tabela
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Linha 38: Linha 36:
 
Exemplo:
 
Exemplo:
  
select * from NOME_TABELA where nomes in ('José', 'Manoel');
+
SELECT * FRO ''nome_da_tabela'' WHERE nome IN ('José', 'Manoel');
  
Obs..: O in faz distinção entre maiúsculas e minusculas, então por exemplo,  se filtrar por josé não exibiria o id 2 José, porque o J é maiúsculo.
+
O comando IN faz distinção entre maiúsculas e minúsculas; ao filtrar pelo nome ''josé'' o resultado não exibe o ''id'' 2, porque o na tabela o ''José'' é grifado com a primeira letra maiúscula.
  
Uso do LIKE em um select
+
==Comando LIKE==
O like é um comando muito útil no dia-a-dia de um desenvolvedor ou DBA, ele serve para trazer partes de palavras ou números. O like é case-sensitive, então ‘maria’ é diferente de ‘MARIA’.
 
  
O like utilza coringas para substituir partes do texto, segue os coringas abaixo:
+
Serve para buscar parte de palavras ou números. O like é ''case-sensitive'', logo ''maria'' é diferente de ''MARIA''.
  
%          Significa qualquer quantidade de caracteres.
+
O comando ''LIKE'' utilza ''coringas'' para substituir partes do texto, conforme a seguir:
  
_           Significa um caractere.
+
*'''%''' - Significa qualquer quantidade de caracteres.
 +
*'''_''' - Significa um caractere.
  
Utilizando o coringa %.
+
===Coringa ''%''===
Para buscar todas as palavras que começam com a letra E.
 
  
select * from NOME_TABELA where nome like 'E%'
+
Busca todas as palavras que começam com a letra ''E'':
  
Buscar todas as palavras que terminam com a letra ‘a’;
+
SELECT * FROM 'nome_da_tabela'' WHERE nome LIKE 'E%';
  
select * from NOME_TABELA where nomes like '%a';
+
Busca todas as palavras que terminam com a letra 'a':
 +
 
 +
SELECT * FROM NOME_TABELA where nome like '%a';
  
 
Buscar todas as palavras que contenham a sílaba ‘li’.
 
Buscar todas as palavras que contenham a sílaba ‘li’.
  
select * from NOME_TABELA where nomes like '%li%';
+
SELECT * FROM 'nome_da_tabela'' WHERE nome LIKE '%li%';
 +
 
 +
Buscar todas palavras que contenham a letra ‘a’, acrescido de algum outro termo (%) e outros elementos a partir da letra (''e'');
  
Buscar todas palavras que contenham a letra ‘a’ alguma coisa e depois a letra ‘e’ mais alguma coisa escrita.
+
SELECT * FROM 'nome_da_tabela' WHERE nome LIKE'%a%e%';
  
select * from NOME_TABELA where nomes like '%a%e%';
+
===coringa '''_ '''===
  
Utilizando o coringa _ .
+
O coringa _ (''underline'') substitui um caractere, ou seja, uma letra.
O coringa _ (underline) substitui um caractere, ou seja, uma letra.
 
  
 
Para buscar por exemplo o nome Elias, sem considerar a primeira letra do nome.
 
Para buscar por exemplo o nome Elias, sem considerar a primeira letra do nome.
Linha 83: Linha 83:
 
select * from NOME_TABELA where nomes like '_li%';
 
select * from NOME_TABELA where nomes like '_li%';
  
Uso do ILIKE no select
+
===Comando ILIKE===
 +
 
 
O ilike possui as mesmas características do like, porém não é case-sensitive, ou seja, não faz distinção entre maiúsculas e minusculas, então ‘MARIA’ é igual ‘maria’ para o ilike.
 
O ilike possui as mesmas características do like, porém não é case-sensitive, ou seja, não faz distinção entre maiúsculas e minusculas, então ‘MARIA’ é igual ‘maria’ para o ilike.
  
Linha 91: Linha 92:
  
 
Usando o coringa %.
 
Usando o coringa %.
 +
 
select * from NOME_TABELA where nome ilike 'e%'
 
select * from NOME_TABELA where nome ilike 'e%'
  
Linha 100: Linha 102:
  
 
Usando o coringa _.
 
Usando o coringa _.
 +
 
select * from NOME_TABELA where nomes ilike '_lias';
 
select * from NOME_TABELA where nomes ilike '_lias';
  

Edição das 11h42min de 23 de novembro de 2021

Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT.

Comandos aplicados ao exemplo de tabela de dados a seguir:

Id Nome
1 Elias
2 José
3 Manoel
4 Elizeu
5 Michael

Comando IN

Para trazer apenas o id 1 e 5:

Exemplo:

SELECT * FROM nome_da_tabela WHERE id IN (1, 5);

Se desejar filtrar pelo nome “caracteres”, é necessário utilizar aspas simples para cada palavra, vamos filtrar o José e Manoel.

Exemplo:

SELECT * FRO nome_da_tabela WHERE nome IN ('José', 'Manoel');

O comando IN faz distinção entre maiúsculas e minúsculas; ao filtrar pelo nome josé o resultado não exibe o id 2, porque o na tabela o José é grifado com a primeira letra maiúscula.

Comando LIKE

Serve para buscar parte de palavras ou números. O like é case-sensitive, logo maria é diferente de MARIA.

O comando LIKE utilza coringas para substituir partes do texto, conforme a seguir:

  • % - Significa qualquer quantidade de caracteres.
  • _ - Significa um caractere.

Coringa %

Busca todas as palavras que começam com a letra E:

SELECT * FROM 'nome_da_tabela WHERE nome LIKE 'E%';

Busca todas as palavras que terminam com a letra 'a':

SELECT * FROM NOME_TABELA where nome like '%a';

Buscar todas as palavras que contenham a sílaba ‘li’.

SELECT * FROM 'nome_da_tabela WHERE nome LIKE '%li%';

Buscar todas palavras que contenham a letra ‘a’, acrescido de algum outro termo (%) e outros elementos a partir da letra (e);

SELECT * FROM 'nome_da_tabela' WHERE nome LIKE'%a%e%';

coringa _

O coringa _ (underline) substitui um caractere, ou seja, uma letra.

Para buscar por exemplo o nome Elias, sem considerar a primeira letra do nome.

select * from NOME_TABELA where nomes like '_lias';

Podemos substituir quantos forem necessários, só colocar mais “underlines”, exemplo:

select * from NOME_TABELA where nomes like '__ias';

Podemos combinar com o coringa %.

select * from NOME_TABELA where nomes like '_li%';

Comando ILIKE

O ilike possui as mesmas características do like, porém não é case-sensitive, ou seja, não faz distinção entre maiúsculas e minusculas, então ‘MARIA’ é igual ‘maria’ para o ilike.

O ilike utiliza os mesmos coringas do like % e _.

Vou apenas postar os selects utilizando ilike porque as regras são as mesmas do like, apenas ele nao é case-sensitive.

Usando o coringa %.

select * from NOME_TABELA where nome ilike 'e%'

select * from NOME_TABELA where nomes ilike '%a';

select * from NOME_TABELA where nomes ilike '%li%';

select * from NOME_TABELA where nomes ilike '%a%e%';

Usando o coringa _.

select * from NOME_TABELA where nomes ilike '_lias';

select * from NOME_TABELA where nomes ilike '__ias';

select * from NOME_TABELA where nomes like '_li%';