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

De AleloWiki
Ir para: navegação, pesquisa
(Criou página com 'Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT. Vamos utilizar com exemplo a tabela abaixo: tabela {| class="wikitable" !Id !Nome |- |2 |José |- |3...')
 
(coringa _)
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
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"
 
!Id
 
!Id
 
!Nome
 
!Nome
 +
|-
 +
|1
 +
|Elias
 
|-
 
|-
 
|2
 
|2
Linha 35: Linha 36:
 
Exemplo:
 
Exemplo:
  
select * from NOME_TABELA where nomes in ('José', 'Manoel');
+
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.
  
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.
+
==Comando LIKE==
  
Uso do LIKE em um select
+
Serve para buscar parte de palavras ou números. O like é ''case-sensitive'', logo ''maria'' é diferente de ''MARIA''.
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:
+
O comando ''LIKE'' utilza ''coringas'' para substituir partes do texto, conforme a seguir:
  
%         Significa qualquer quantidade de caracteres.  
+
*'''%''' - Significa qualquer quantidade de caracteres.
 +
*'''_''' - Significa um caractere.
  
_            Significa um caractere.
+
===Coringa ''%''===
  
Utilizando o coringa %.
+
Busca todas as palavras que começam com a letra ''E'':
Para buscar todas as palavras que começam com a letra E.
 
  
select * from NOME_TABELA where nome like 'E%'
+
SELECT * FROM 'nome_da_tabela'' WHERE nome LIKE 'E%';
  
Buscar todas as palavras que terminam com a letra ‘a’;
+
Busca todas as palavras que terminam com a letra 'a':
  
select * from NOME_TABELA where nomes like '%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’ alguma coisa e depois a letra ‘e’ mais alguma coisa escrita.
+
Buscar todas palavras que contenham a letra ‘a’, acrescido de algum outro termo (%) e outros elementos a partir da letra (''e'');
  
select * from NOME_TABELA where nomes like '%a%e%';
+
SELECT * FROM 'nome_da_tabela' WHERE nome LIKE'%a%e%';
  
Utilizando o coringa _ .
+
===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.
+
O coringa _ (''underline'') substitui um caractere, ou seja, uma letra.
  
select * from NOME_TABELA where nomes like '_lias';
+
Buscar o nome ''Elias'', sem considerar a primeira letra do nome.
  
Podemos substituir quantos forem necessários, só colocar mais “underlines”, exemplo:
+
SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '_lias';
  
select * from NOME_TABELA where nomes like '__ias';
+
O ''coringa'' _ (''underline'') permite substituir caracteres aleatórios de uma mesma sequência; para cada caracter é necessário colocar um ''coringa'' _ (''underline''), exemplo:
 +
 
 +
SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '__ias';
  
 
Podemos combinar com o coringa %.
 
Podemos combinar com o coringa %.
Linha 80: 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 88: 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 97: 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 atual tal como às 13h23min 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.

Buscar o nome Elias, sem considerar a primeira letra do nome.

SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '_lias';

O coringa _ (underline) permite substituir caracteres aleatórios de uma mesma sequência; para cada caracter é necessário colocar um coringa _ (underline), exemplo:

SELECT * FROM 'nome_da_tabela' WHERE nome 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%';