SQL: condiciones similares

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

SQL: condiciones similares

Este tutorial de SQL explica cómo usar las condiciones LIKE de SQL (realización de coincidencias de patrones) con sintaxis, ejemplos y ejercicios.

describir

Las condiciones SQL LIKE le permiten realizar coincidencias de patrones en consultas utilizando comodines. Las condiciones LIKE se utilizan en la cláusula WHERE de una instrucción SELECT, INSERT, UPDATE o DELETE.

sintaxis

La sintaxis de la condición LIKE en SQL es:

expression LIKE pattern [ ESCAPE 'escape_character' ]

parámetro o parámetro

Expresión Una expresión de carácter, como una columna o un campo.patrón

Una expresión de caracteres que contiene una coincidencia de patrones. Los comodines entre los que puede elegir son:

comodín explique
% Le permite hacer coincidir cualquier cadena de cualquier longitud (incluida la longitud cero)
_ le permite hacer coincidir un solo carácter

ESCAPE ‘escape_character’ Opcional.Le permite comparar patrones con instancias literales de comodines, p. % o _.

propina: Si está utilizando el tipo de datos char para la coincidencia de patrones, recuerde que char se completa con espacios al final para completar la longitud del campo. Esto puede generar resultados inesperados cuando utiliza una condición LIKE para la coincidencia de patrones al final de una cadena.

Ejemplo de DDL/DML

Si desea seguir este tutorial, obtenga DDL para crear las tablas y DML para completar los datos. ¡Entonces pruebe los ejemplos en su propia base de datos!

Ejemplo – uso % Comodines en condiciones LIKE

Expliquemos cómo % Los comodines se aplican a las condiciones SQL LIKE. Atención – Recuerde, % Los comodines coinciden con cualquier cadena de cualquier longitud (incluida la longitud cero).

En el primer ejemplo, queremos encontrar todos los registros en la tabla de clientes donde el apellido del cliente comienza con “J”.

En este ejemplo, tenemos una tabla llamada clientes con los siguientes datos:

Identificación del cliente apellido nombre sitio favorito
4000 jackson José Red de Ciencia y Tecnología
5000 Herrero simple digminecraft.com
6000 Ferguson samantha granactividad.com
7000 Reynolds Alan revisatumath.com
8000 anderson Página nulo
9000 Johnson Derek Red de Ciencia y Tecnología

Ingrese la siguiente instrucción SQL:

SELECT *
FROM customers
WHERE last_name LIKE 'J%'
ORDER BY last_name;

Se seleccionarán 2 registros. Estos son los resultados que deberías ver:

Identificación del cliente apellido nombre sitio favorito
4000 jackson José Red de Ciencia y Tecnología
9000 Johnson Derek Red de Ciencia y Tecnología

Este ejemplo devuelve registros en la tabla Clientes cuyo apellido comienza con “J”. Como puede ver, se devuelven los registros de los apellidos Jackson y Johnson.

Debido a que las condiciones LIKE no distinguen entre mayúsculas y minúsculas, la siguiente instrucción SQL devolverá el mismo resultado:

SELECT *
FROM customers
WHERE last_name LIKE 'j%'
ORDER BY last_name;

usar múltiples % Comodines en condiciones LIKE

También puedes usar % Utilice comodines varias veces con condiciones LIKE.

Utilice la misma tabla de clientes con los siguientes datos:

Identificación del cliente apellido nombre sitio favorito
4000 jackson José Red de Ciencia y Tecnología
5000 Herrero simple digminecraft.com
6000 Ferguson samantha granactividad.com
7000 Reynolds Alan revisatumath.com
8000 anderson Página nulo
9000 Johnson Derek Red de Ciencia y Tecnología

Intentemos encontrar todos los valores last_name de la tabla de clientes, donde last_name contiene la letra ‘e’. Ingrese la siguiente instrucción SQL:

SELECT last_name
FROM customers
WHERE last_name LIKE '%e%'
ORDER BY last_name;

Se seleccionarán 3 registros. Estos son los resultados que deberías ver:

apellido
anderson
Ferguson
Reynolds

En este ejemplo, los apellidos Anderson, Ferguson y Reynolds contienen la letra “e”.

Ejemplo – uso _ Comodines en condiciones LIKE

A continuación, vamos a explicar cómo _ Los comodines (comodines de subrayado) funcionan en condiciones LIKE.Atención – Recuerde _ Los comodines buscan un personaje, a diferencia de % Comodín.

Utilice una tabla de categorías con los siguientes datos:

categoria ID nombre de la categoría
25 fiambres
50 Producción
75 panadería
100 grandes almacenes
125 Tecnología

Intentemos encontrar todos los registros de la tabla de categorías cuyo id_categoría tiene 2 dígitos y termina en “5”. Ingrese la siguiente instrucción SQL:

SELECT *
FROM categories
WHERE category_id LIKE '_5';

Se seleccionarán 2 registros. Estos son los resultados que deberías ver:

categoria ID nombre de la categoría
25 fiambres
75 panadería

En este ejemplo, 2 registros coincidirán con el patrón: valores de category_id 25 y 75.Tenga en cuenta que category_id de 125 no está seleccionado porque _ Los comodines solo coinciden con un solo carácter.

usar múltiples _ Comodines en condiciones LIKE

Si desea hacer coincidir un valor de 3 dígitos que termine en “5”, debe usar _ Comodín dos veces. Puede modificar su consulta de la siguiente manera:

SELECT *
FROM categories
WHERE category_id LIKE '__5';

Ahora devolverá un valor de category_id de 125:

categoria ID nombre de la categoría
125 Tecnología

Ejemplo: uso del operador NOT con la condición LIKE

A continuación, veamos un ejemplo de cómo usar el operador NOT con la condición LIKE.

En este ejemplo, tenemos una tabla llamada proveedores con los siguientes datos:

Identificación del proveedor Nombre del proveedor Ciudad Expresar
100 microsoft Redmond Washington
200 Google paisaje de la cima de la montaña California
300 Oráculo ciudad de secoya California
400 Kimberly Clark Owen Texas
500 Alimentos Tyson Springdale Arkansas
600 sc johnson Racine el estado de wisconsin
700 Alimentos Dole pueblo del lago oeste California
800 flores comida thomasville Georgia
900 Artes electrónicas ciudad de secoya California

Busquemos todos los registros en la tabla de proveedores donde se encuentra el nombre del proveedor No Contiene la letra “o”. Ingrese la siguiente instrucción SQL:

SELECT *
FROM suppliers
WHERE supplier_name NOT LIKE '%o%';

Se seleccionará 1 registro. Estos son los resultados que deberías ver:

Identificación del proveedor Nombre del proveedor Ciudad Expresar
400 Kimberly Clark Owen Texas

En este ejemplo, solo hay un registro en la tabla de proveedores donde el nombre del proveedor no contiene la letra “o”.

Ejemplo: uso de caracteres de escape con la condición LIKE

Es importante entender cómo “escapar de los caracteres” al hacer coincidir patrones.puedes escapar % o _ y busque la versión de texto en su lugar.

Di que quieres buscar % Como literales en condiciones LIKE. Puede usar el carácter Escape para hacer esto.En nuestro ejemplo usaremos ! Como carácter de escape en una condición LIKE.

notas: Solo puede definir caracteres de escape como un solo carácter. Es mejor elegir un carácter que no aparezca con frecuencia en sus datos, por ejemplo, ! o#.

En este ejemplo, usamos una tabla llamada prueba con los siguientes datos:

test_id valor de prueba
1 10%
2 25%
3 100
4 99

Podemos devolver todos los registros de la tabla de prueba contenida por test_value % Palabra. Ingrese la siguiente instrucción SQL:

SELECT *
FROM test
WHERE test_value LIKE '%!%%' escape '!';

Estos son los resultados que deberías ver:

test_id valor de prueba
1 10%
2 25%

Este ejemplo confirma ! caracteres como caracteres de escape.Primero y último % Los valores en condiciones LIKE se tratan como comodines regulares.Esta !% es un escape % por lo que se trata como literal % valor.

Puede modificar aún más el ejemplo anterior para que solo regrese comenzando con 1 y que contenga % Palabra. Ingrese la siguiente instrucción SQL:

SELECT *
FROM test
WHERE test_value LIKE '1%!%%' escape '!';

Estos son los resultados que deberías ver:

test_id valor de prueba
1 10%

Este ejemplo solo devuelve un registro esta vez.porque solo hay un test_value que comienza con 1 y contiene % Palabra.

Preguntas frecuentes

Pregunta: ¿Cómo combinar la función Oracle UPPER con la condición SQL LIKE? Estoy tratando de consultar un campo de texto libre de todos los registros que contienen la palabra “prueba”. El problema es que se puede ingresar por: TEST, Test o prueba.

R: Para responder a esta pregunta, veamos un ejemplo.

Supongamos que tenemos una tabla de proveedores con un campo llamado nombre_proveedor que contiene los valores PRUEBA, Prueba o prueba.

Si quisiéramos encontrar todos los registros que contienen la palabra “prueba”, ya sea que esté almacenada como PRUEBA, Prueba o prueba, podríamos ejecutar una de las siguientes declaraciones SQL SELECT:

SELECT *
FROM suppliers
WHERE UPPER(supplier_name) LIKE ('TEST%');

o

SELECT *
FROM suppliers
WHERE UPPER(supplier_name) LIKE UPPER('test%')

Estas instrucciones SQL SELECT utilizan una combinación de la función UPPER de Oracle y las condiciones LIKE de SQL para devolver todos los registros donde el campo nombre_proveedor contiene la palabra “prueba”, ya sea que esté almacenado como PRUEBA, Prueba o prueba.

práctica práctica

Si quiere poner a prueba sus habilidades con las condiciones SQL LIKE, pruebe algunos de nuestros ejercicios.

Estos ejercicios te permiten probar tus habilidades en condiciones LIKE. Recibirá preguntas que necesitan ser resueltas. Después de cada ejercicio, proporcionamos soluciones para que puedas comprobar tus respuestas. ¡Darle una oportunidad!