SQLite COMO

Resumo : neste tutorial, você aprenderá como consultar dados com base na correspondência de padrões usando LIKEo operador SQLite.

LIKEIntrodução ao operador SQLite

Às vezes, você não sabe exatamente a palavra-chave completa que deseja consultar. Por exemplo, você pode saber que sua música favorita contém a palavra, elevatormas não sabe exatamente o nome.

Para consultar dados com base em informações parciais, use o LIKEoperador na WHERE cláusula da SELECT instrução da seguinte forma:

SELECT
	column_list
FROM
	table_name
WHERE
	column_1 LIKE pattern;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que você também pode usar o LIKEoperador na WHEREcláusula de outras instruções, como DELETEand UPDATE.

SQLite fornece dois curingas para construção de padrões. Eles são sinal de porcentagem %e sublinhado _:

  1. O %curinga do sinal de porcentagem corresponde a qualquer sequência de zero ou mais caracteres.
  2. O _curinga de sublinhado corresponde a qualquer caractere único.

%Exemplos de caracteres curinga com sinal de porcentagem

O s%padrão que usa o curinga do sinal de porcentagem ( %) corresponde a qualquer string que comece com s, por exemplo, sone so.

O %erpadrão corresponde a qualquer string que termine com erlike peter, clever, etc.

E o %per%padrão corresponde a qualquer string que contenha percomo percente peeper.

Os _exemplos de curinga de sublinhado

O h_ntpadrão corresponde a hunt, hint, etc. O __pplepadrão corresponde a topple, supple, tipple, etc.
Observe que o operador SQLite LIKEnão diferencia maiúsculas de minúsculas. Significa que "A" LIKE "a"é verdade.

No entanto, para caracteres Unicode que não estão nos intervalos ASCII, o LIKEoperador diferencia maiúsculas de minúsculas, por exemplo, "Ä" LIKE "ä"é falso.
Caso você queira fazer com que LIKEo operador funcione com distinção entre maiúsculas e minúsculas, você precisa usar o seguinte PRAGMA :

PRAGMA case_sensitive_like = true;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

LIKEExemplos de SQLite

Usaremos a tabela tracksdo banco de dados de exemplo para a demonstração.

Para encontrar as faixas cujos nomes começam com a Wildstring literal, use o %caractere curinga do sinal de porcentagem no final do padrão.

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE 'Wild%'Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite LIKE sinal de porcentagem curinga

Para encontrar as faixas cujos nomes terminam com Wildpalavra, use %curinga no início do padrão.

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Wild'Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo SQLite LIKE

Para encontrar as faixas cujos nomes contêm a Wildstring literal, você usa %curinga no início e no final do padrão:

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE '%Wild%';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo de curinga SQLite LIKE

A instrução a seguir encontra as faixas cujos nomes contêm: zero ou mais caracteres (%), seguido por Br, seguido por um caractere ( _), seguido por wn, e seguido por zero ou mais caracteres ( %).

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Br_wn%';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite LIKEcom ESCAPEcláusula

Se o padrão que você deseja corresponder contiver %ou _, você deverá usar um caractere de escape em uma ESCAPEcláusula opcional como a seguir:

column_1 LIKE pattern ESCAPE expression;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quando você especifica a ESCAPEcláusula, o LIKEoperador avaliará o expressionque segue a ESCAPEpalavra-chave como uma string que consiste em um único caractere ou um caractere de escape.

Em seguida, você pode usar esse caractere de escape no padrão para incluir sinal de porcentagem literal (%) ou sublinhado ( _). O LIKEoperador avalia o sinal de porcentagem ( %) ou sublinhado ( _) que segue o caractere de escape como uma sequência literal, não como um caractere curinga.

Suponha que você queira corresponder a string 10%em uma coluna de uma tabela. No entanto, o SQLite interpreta o símbolo de porcentagem %como um caractere curinga. Portanto, você precisa escapar deste símbolo de porcentagem %usando um caractere de escape:

column_1 LIKE '%10\%%' ESCAPE '\';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta expressão, o LIKEoperador interpreta o primeiro sinal de % e o último sinal de % como curingas e o segundo sinal de porcentagem como um símbolo literal de porcentagem.

Observe que você pode usar outros caracteres como caractere de escape, por exemplo, /, @, $.

Considere o seguinte exemplo:

Primeiro, crie uma tabela t que tenha uma coluna:

CREATE TABLE t(
	c TEXT
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A seguir, insira algumas linhas na tabela t:

INSERT INTO t(c)
VALUES('10% increase'),
	('10 times decrease'),
	('100% vs. last year'),
	('20% increase next year');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em seguida, consulte os dados da ttabela:

SELECT * FROM t;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
c                     
----------------------
10% increase          
10 times decrease     
100% vs. last year    
20% increase next yearLinguagem de código:  Sessão Shell  ( shell )

Quarto, tente encontrar a linha cujo valor na ccoluna contém a 10%string literal:

SELECT c 
FROM t 
WHERE c LIKE '%10%%';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

No entanto, ele retorna linhas cujos valores na coluna c contêm 10:

c                 
------------------
10% increase      
10 times decrease 
100% vs. last year

Quinto, para obter o resultado correto, você usa a ESCAPEcláusula mostrada na consulta a seguir:

SELECT c 
FROM t 
WHERE c LIKE '%10\%%' ESCAPE '\';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está o conjunto de resultados:

c           
------------
10% increaseLinguagem de código:  Sessão Shell  ( shell )

Neste tutorial, você aprendeu como usar LIKEo operador SQLite para consultar dados com base na correspondência de padrões usando dois caracteres curinga, sinal de porcentagem ( %) e sublinhado ( _).

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *