SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite MI PIACE

Riepilogo :in questo tutorial imparerai come interrogare i dati in base al pattern matching usando SQLite LIKE operatore.

Introduzione a SQLite LIKE operatore

A volte, non conosci esattamente la parola chiave completa che desideri interrogare. Ad esempio, potresti sapere che la tua canzone preferita contiene la parola elevator ma non conosci esattamente il nome.

Per interrogare i dati sulla base di informazioni parziali, utilizzi il LIKE operatore nel WHERE clausola del SELECT dichiarazione come segue:

SELECT
	column_list
FROM
	table_name
WHERE
	column_1 LIKE pattern;Code language: SQL (Structured Query Language) (sql)

Nota che puoi anche usare il LIKE operatore nel WHERE clausola di altre affermazioni come DELETE e UPDATE .

SQLite fornisce due caratteri jolly per la costruzione di modelli. Sono il segno di percentuale % e sottolinea _ :

  1. Il segno di percentuale % il carattere jolly corrisponde a qualsiasi sequenza di zero o più caratteri.
  2. Il trattino basso _ il carattere jolly corrisponde a qualsiasi singolo carattere.

Il segno di percentuale % esempi di caratteri jolly

Il s% pattern che utilizza il carattere jolly del segno di percentuale ( % ) corrisponde a qualsiasi stringa che inizia con s es.,son e so .

Il %er pattern corrisponde a qualsiasi stringa che termina con er come peter , clever , ecc.

E il %per% pattern corrisponde a qualsiasi stringa che contiene per come percent e peeper .

Il trattino basso _ esempi di caratteri jolly

Il h_nt il modello corrisponde a hunt , hint , ecc. Il __pple il modello corrisponde a topple , supple , tipple , eccetera.
Nota che SQLite LIKE l'operatore non fa distinzione tra maiuscole e minuscole. Significa "A" LIKE "a" è vero.

Tuttavia, per i caratteri Unicode che non sono negli intervalli ASCII, il LIKE l'operatore fa distinzione tra maiuscole e minuscole, ad esempio "Ä" LIKE "ä" è falso.
Nel caso tu voglia fare LIKE operatore opera con distinzione tra maiuscole e minuscole, è necessario utilizzare il seguente PRAGMA:

PRAGMA case_sensitive_like = true;Code language: SQL (Structured Query Language) (sql)

SQLite LIKE esempi

Useremo la tabella tracks nel database di esempio per la dimostrazione.

Per trovare le tracce i cui nomi iniziano con Wild stringa letterale, usi il segno di percentuale % carattere jolly alla fine del pattern.

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE 'Wild%'Code language: SQL (Structured Query Language) (sql)

Provalo

Per trovare le tracce i cui nomi terminano con Wild parola, usi % carattere jolly all'inizio del pattern.

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Wild'Code language: SQL (Structured Query Language) (sql)

Provalo

Per trovare le tracce i cui nomi contengono il Wild stringa letterale, usi % carattere jolly all'inizio e alla fine del pattern:

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE '%Wild%';Code language: SQL (Structured Query Language) (sql)

Provalo

La seguente istruzione trova le tracce i cui nomi contengono:zero o più caratteri (% ), seguito da Br , seguito da un carattere ( _ ), seguito da wn e seguito da zero o più caratteri ( % ).

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Br_wn%';Code language: SQL (Structured Query Language) (sql)

Provalo

SQLite LIKE con ESCAPE clausola

Se il pattern che vuoi abbinare contiene % o _ , devi utilizzare un carattere di escape in un ESCAPE facoltativo clausola come segue:

column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)

Quando specifichi il ESCAPE clausola, il LIKE l'operatore valuterà l'expression che segue ESCAPE parola chiave a una stringa composta da un singolo carattere o un carattere di escape.

Quindi puoi utilizzare questo carattere di escape nel modello per includere il segno di percentuale letterale (%) o il carattere di sottolineatura (_ ). Il LIKE l'operatore valuta il segno di percentuale (% ) o trattino basso (_ ) che segue il carattere di escape come una stringa letterale, non un carattere jolly.

Supponiamo di voler abbinare la stringa 10% in una colonna di una tabella. Tuttavia, SQLite interpreta il simbolo di percentuale % come carattere jolly. Pertanto, devi evitare questo simbolo di percentuale % usando un carattere di escape:

column_1 LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql)

In questa espressione, il LIKE l'operatore interpreta il primo % e l'ultimo % dei segni di percentuale come caratteri jolly e il secondo segno di percentuale come un simbolo di percentuale letterale.

Tieni presente che puoi utilizzare altri caratteri come carattere di escape, ad esempio /, @, $.

Considera il seguente esempio:

Innanzitutto, crea una tabella t che ha una colonna:

CREATE TABLE t(
	c TEXT
);Code language: SQL (Structured Query Language) (sql)

Successivamente, inserisci alcune righe nella tabella t :

INSERT INTO t(c)
VALUES('10% increase'),
	('10 times decrease'),
	('100% vs. last year'),
	('20% increase next year');Code language: SQL (Structured Query Language) (sql)

Quindi, interroga i dati da t tabella:

SELECT * FROM t;Code language: SQL (Structured Query Language) (sql)
c                     
----------------------
10% increase          
10 times decrease     
100% vs. last year    
20% increase next yearCode language: Shell Session (shell)

In quarto luogo, prova a trovare la riga il cui valore in c la colonna contiene il 10% stringa letterale:

SELECT c 
FROM t 
WHERE c LIKE '%10%%';Code language: SQL (Structured Query Language) (sql)

Tuttavia, restituisce righe i cui valori nella colonna c contengono 10:

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

Quinto, per ottenere il risultato corretto, usi ESCAPE clausola come mostrato nella query seguente:

SELECT c 
FROM t 
WHERE c LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql)

Ecco il set di risultati:

c           
------------
10% increaseCode language: Shell Session (shell)

In questo tutorial, hai imparato a usare SQLite LIKE operatore per interrogare i dati in base alla corrispondenza del modello utilizzando due caratteri jolly segno di percentuale (% ) e trattino basso (_ ).