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

De AleloWiki
Ir para: navegação, pesquisa
(coringa _)
 
(2 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"
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.
+
Buscar o nome ''Elias'', sem considerar a primeira letra do nome.
  
select * from NOME_TABELA where nomes like '_lias';
+
SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '_lias';
  
Podemos substituir quantos forem necessários, só colocar mais “underlines”, exemplo:
+
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_TABELA where nomes like '__ias';
+
SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '__ias';
  
 
Podemos combinar com o coringa %.
 
Podemos combinar com o coringa %.
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 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%';