sql >> Base de Datos >  >> RDS >> SQLite

SQLite COMO

Resumen :en este tutorial, aprenderá cómo consultar datos en función de la coincidencia de patrones usando SQLite LIKE operador.

Introducción a SQLite LIKE operador

A veces, no conoce exactamente la palabra clave completa que desea consultar. Por ejemplo, puede saber que su canción favorita contiene la palabra elevator pero no sabes exactamente el nombre.

Para consultar datos basados ​​en información parcial, utiliza el LIKE operador en el WHERE cláusula del SELECT declaración de la siguiente manera:

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

Tenga en cuenta que también puede usar el LIKE operador en el WHERE cláusula de otras sentencias como DELETE y UPDATE .

SQLite proporciona dos comodines para construir patrones. Son el signo de porcentaje % y guión bajo _ :

  1. El signo de porcentaje % el comodín coincide con cualquier secuencia de cero o más caracteres.
  2. El guión bajo _ el comodín coincide con cualquier carácter único.

El signo de porcentaje % ejemplos de comodines

El s% patrón que usa el signo de porcentaje comodín ( % ) coincide con cualquier cadena que comience con s por ejemplo, son y so .

El %er el patrón coincide con cualquier cadena que termine con er como peter , clever , etc.

Y el %per% el patrón coincide con cualquier cadena que contenga per como percent y peeper .

El guión bajo _ ejemplos de comodines

El h_nt el patrón coincide con hunt , hint , etc. El __pple el patrón coincide con topple , supple , tipple , etc.
Tenga en cuenta que SQLite LIKE El operador no distingue entre mayúsculas y minúsculas. Significa "A" LIKE "a" es verdad.

Sin embargo, para los caracteres Unicode que no están en los rangos ASCII, LIKE el operador distingue entre mayúsculas y minúsculas, por ejemplo, "Ä" LIKE "ä" Es falso.
En caso de que quieras hacer LIKE El operador distingue entre mayúsculas y minúsculas, debe usar el siguiente PRAGMA:

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

SQLite LIKE ejemplos

Usaremos la tabla tracks en la base de datos de muestra para la demostración.

Para encontrar las pistas cuyos nombres comienzan con Wild cadena literal, usa el signo de porcentaje % comodín al final del patrón.

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

Pruébalo

Para encontrar las pistas cuyos nombres terminan con Wild palabra, usas % comodín al principio del patrón.

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

Pruébalo

Para encontrar las pistas cuyos nombres contienen el Wild cadena literal, usa % comodín al principio y al final del patrón:

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

Pruébalo

La siguiente declaración encuentra las pistas cuyos nombres contienen:cero o más caracteres (% ), seguido de Br , seguido de un carácter ( _ ), seguido de wn , y seguido de cero o más caracteres ( % ).

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

Pruébalo

SQLite LIKE con ESCAPE cláusula

Si el patrón que desea hacer coincidir contiene % o _ , debe usar un carácter de escape en un ESCAPE opcional cláusula de la siguiente manera:

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

Cuando especifica el ESCAPE cláusula, el LIKE el operador evaluará la expression que sigue al ESCAPE palabra clave a una cadena que consta de un solo carácter o un carácter de escape.

Luego puede usar este carácter de escape en el patrón para incluir el signo de porcentaje literal (%) o guión bajo (_ ). El LIKE operador evalúa el signo de porcentaje (% ) o guion bajo (_ ) que sigue al carácter de escape como una cadena literal, no como un carácter comodín.

Suponga que desea hacer coincidir la cadena 10% en una columna de una tabla. Sin embargo, SQLite interpreta el símbolo de porcentaje % como carácter comodín. Por lo tanto, debe escapar de este símbolo de porcentaje % usando un carácter de escape:

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

En esta expresión, el LIKE El operador interpreta el primer % y el último % por ciento como comodines y el segundo signo de porcentaje como un símbolo de porcentaje literal.

Tenga en cuenta que puede utilizar otros caracteres como carácter de escape, por ejemplo, /, @, $.

Considere el siguiente ejemplo:

Primero, crea una tabla t que tiene una columna:

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

A continuación, inserte algunas filas en la tabla 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)

Luego, consulta los datos del t tabla:

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)

Cuarto, intente encontrar la fila cuyo valor en el c columna contiene el 10% cadena literal:

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

Sin embargo, devuelve filas cuyos valores en la columna c contienen 10:

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

Quinto, para obtener el resultado correcto, usa el ESCAPE cláusula como se muestra en la siguiente consulta:

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

Aquí está el conjunto de resultados:

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

En este tutorial, ha aprendido a usar SQLite LIKE operador para consultar datos en función de la coincidencia de patrones utilizando dos caracteres comodín signo de porcentaje (% ) y guion bajo (_ ).