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 | 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!