7th Jul 2022 Lectura de 10 minutos Cómo usar LIKE en SQL: Coincidencia de Patrones en SQL Dorota Wdzięczna LIKE coincidencia de patrones en SQL operador de SQL Índice ¿Cómo utilizar LIKE en SQL? Coincidencia parcial en SQL: Uso de LIKE con comodines Coincidencia parcial de SQL: el comodín de porcentaje Coincidencia parcial de SQL: el comodín de guión bajo Coincidencia parcial de SQL: Combinación de comodines Uso de LIKE en SQL con texto Combinación de los operadores NOT y LIKE Uso de LIKE en SQL con otros operadores Uso de LIKE en SQL en otras sentencias Para saber más sobre la concordancia de patrones SQL La coincidencia de patrones en SQL es una habilidad muy importante y útil. En este artículo, vemos cómo puedes realizarla usando LIKE en SQL. Laconcordancia de patrones SQL es un concepto muy simple. Permite buscar cadenas y subcadenas y encontrar ciertos caracteres o grupos de caracteres. Aparte de SQL, esta operación se puede realizar en muchos otros lenguajes de programación. En este artículo, examinaremos cómo se puede utilizar LIKE en SQL para buscar subcadenas. También haremos la distinción entre la coincidencia exacta de SQL y la coincidencia parcial de SQL, explicando cómo se puede ampliar la búsqueda mediante el uso de comodines. Por último, aclararemos cuándo debe utilizar algo distinto a LIKE para encontrar una coincidencia. Si quieres practicar LIKE y otras funciones de SQL, consulta nuestro Ejercicio de SQL pista. Ofrece más de 600 ejercicios interactivos de SQL para ayudarte a repasar tus conocimientos de SQL y ganar confianza en tus habilidades de SQL. ¿Cómo utilizar LIKE en SQL? Supongamos que tiene que recuperar algunos registros basándose en si una columna contiene un determinado grupo de caracteres. Como sabe, en SQL la cláusula WHERE filtra los resultados de SELECT. Por sí misma, WHERE encuentra coincidencias exactas. ¿Pero qué pasa si necesita encontrar algo utilizando una coincidencia parcial? En ese caso, puede utilizar LIKE en SQL. Este operador busca en cadenas o subcadenas caracteres específicos y devuelve cualquier registro que coincida con ese patrón. (De ahí la coincidencia de patrones en SQL.) A continuación se muestra la sintaxis del operador LIKE en una sentencia SELECT: SELECT [ column_list | * ] FROM table_name WHERE column or expression LIKE pattern; Observe que el nombre de la columna o la expresión a buscar viene antes de LIKE en SQL. Después del operador está el patrón a comparar. Este patrón puede ser texto puro o texto mezclado con uno o más comodines. A continuación explicaremos el uso de los comodines. Coincidencia parcial en SQL: Uso de LIKE con comodines Si no conoce el patrón exacto que está buscando, puede utilizar comodines para ayudarle a encontrarlo. Los comodines son símbolos de texto que denotan cuántos caracteres habrá en un lugar determinado dentro de la cadena. El estándar ANSI de SQL utiliza dos comodines, el porcentaje (%) y el guión bajo (_), que se utilizan de diferentes maneras. Cuando se utilizan comodines, se realiza una coincidencia parcial SQL en lugar de una coincidencia exacta SQL, ya que no se incluye una cadena exacta en la consulta. wildcard description % zero, one, or many characters, including spaces _ a single character Vea la tabla completa animal que se utilizará en nuestras consultas SQL: id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 monkey 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant.. . 18 langur 19 hog 20 gerenuk 21 22 null Nota: .. . denota dos espacios. Coincidencia parcial de SQL: el comodín de porcentaje Como puede ver en la tabla anterior, el comodín de porcentaje se puede utilizar cuando no está seguro de cuántos caracteres formarán parte de su coincidencia. En el ejemplo siguiente, fíjese en lo que ocurre cuando utiliza sólo este comodín con LIKE en SQL: SELECT id, name FROM animal WHERE name LIKE '%' ; Resultado: id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 monkey 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant.. . 18 langur 19 hog 20 gerenuk 21 Nota: .. . denota dos espacios. Este uso de la coincidencia parcial de SQL devuelve todos los nombres de la animal tabla, incluso los que no tienen ningún carácter en la columna del nombre. Esto se debe a que el comodín de porcentaje denota cualquier carácter o ningún carácter. Incluso cuando hay un valor nulo en la columna nombre, se devuelve una cadena vacía. Pero si quiere devolver sólo los nombres de los animales que empiezan con un "g", deberá escribir la consulta utilizando un "g"delante del comodín de porcentaje: SELECT id, name FROM animal WHERE name LIKE 'g%' ; El resultado de esta operación de coincidencia parcial de SQL es el siguiente: id name 20 gerenuk Del mismo modo, si desea seleccionar los nombres de animales que terminan con un "g", deberá poner el comodín de porcentaje primero, como se muestra en esta consulta SQL de coincidencia parcial: SELECT id, name FROM animal WHERE name LIKE '%g'; Resultado: id name 1 frog 2 dog 15 hedgehog 19 hog La siguiente consulta devuelve todos los animales cuyo nombre contiene un "g". Para ello, utilice dos comodines de porcentaje y un carácter "g", como se muestra a continuación. SELECT id, name FROM animal WHERE name LIKE '%g%'; Resultado: id name 1 frog 2 dog 5 jaguar 15 hedgehog 18 langur 19 hog 20 gerenuk Todos estos animales tienen un nombre que contiene una "g" en alguna parte: al principio, en medio o al final. Ahora, pasemos al comodín de guión bajo. Coincidencia parcial de SQL: el comodín de guión bajo El comodín de guión bajo representa un solo carácter para cada guión bajo. En esta coincidencia parcial de SQL, puede reemplazar cualquier carácter, pero cada guión bajo está limitado a un carácter. Observe el siguiente ejemplo: SELECT id, name FROM animal WHERE name LIKE '_'; Resultado: id name 0 filas Esta consulta no devuelve ningún registro porque no hay nombres de animales de un solo carácter en la tabla. El siguiente ejemplo muestra todos los nombres que contienen exactamente cinco caracteres. Para representar esto, debemos utilizar cinco guiones bajos: SELECT id, name FROM animal WHERE name LIKE '_____'; Resultado: id name 7 panda 10 sheep 11 camel 13 lemur Si se utiliza el comodín de guión bajo al final de la cadena de coincidencia parcial de SQL, la consulta devolverá todos los registros que coincidan con el texto dado más un carácter más. A continuación vemos un ejemplo: SELECT id, name FROM animal WHERE name LIKE 'lio_'; Resultado: id name 8 lion ¿Qué se devuelve cuando la consulta tiene un comodín de guión bajo en medio de la cadena? SELECT id, name FROM animal WHERE name LIKE 'p_ma'; Resultado: id name 6 puma Se trata de todos los animales cuyos nombres empiezan por "p" y terminan con "ma", con un solo carácter intermedio. Coincidencia parcial de SQL: Combinación de comodines También puede utilizar una combinación de guiones bajos y comodines porcentuales para su coincidencia de patrones SQL. Observe el siguiente ejemplo: SELECT id, name FROM animal WHERE name LIKE '%ho_'; Resultado: id name 15 hedgehog 19 hog Como puede ver, esta consulta devuelve nombres que combinan "ho" con cualquier número de caracteres delante y sólo un carácter después. Uso de LIKE en SQL con texto Ahora discutiremos cómo utilizar LIKE en SQL con cadenas de texto y sin comodines. En algunas circunstancias, puede encontrar que hay mejores opciones que usar LIKE en la búsqueda de patrones en SQL. Pero por ahora, veamos cómo funciona esto. Empezaremos por ver la tabla completa de nombres de animales y números de identificación, como se muestra a continuación: id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 monkey 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant. .. 18 langur 19 hog 20 gerenuk 21 22 null Nota: . .. denota dos espacios. Tipos de datos de texto en SQLhttps://t.co/2cWLoe7ONa#sql #AprendeSQL #BaseDeDatos - Vertabelo (@Vertabelo) 5 de enero de 2017 Observe que el registro en el que id=21 tiene una cadena vacía (sin ningún carácter). El último registro tiene un valor NULL en la columna name. Ahora, digamos que queremos recuperar los registros donde el nombre del animal es "elefante". Eso es bastante sencillo, como muestra el siguiente ejemplo: SELECT id, name FROM animal WHERE name LIKE 'elephant'; Resultado: id name 16 elephant En la tabla, en realidad hay dos registros que contienen "elefante". Sin embargo, el segundo registro tiene dos espacios adicionales al final de la palabra, por lo que no se devuelve. Probemos con otro patrón de texto que incluya estos dos espacios. SELECT id, name FROM animal WHERE name LIKE 'elephant '; Resultado: id name 17 elephant. .. Nota: . .. denota dos espacios. De nuevo, sólo hay un registro: "elefante" con dos espacios. A continuación, supongamos que utilizamos una cadena de texto concreta y un operador de igualdad (=), así SELECT id, name FROM animal WHERE name = 'elephant ' ; Resultado: id name 16 elephant Si quiere comprobar si una cadena de texto es igual al valor de una columna, lo que busca es una coincidencia exacta de SQL en lugar de una coincidencia parcial de SQL. En ese caso, utilice un operador igual en lugar de LIKE. Combinación de los operadores NOT y LIKE También puede comprobar las cadenas que no coinciden con un patrón. Para ello, combinamos los operadores LIKE y NOT. Es otra forma de realizar la coincidencia de patrones SQL. En el siguiente ejemplo, queremos encontrar todos los nombres de animales que no tengan el carácter "a": SELECT id, name FROM animal WHERE name NOT LIKE '%a%'; Resultado: id name 1 frog 2 dog 4 fox 8 lion 10 sheep 12 monkey 13 lemur 15 hedgehog 19 hog 20 gerenuk 21 camel Uso de LIKE en SQL con otros operadores La cláusula WHERE puede incluir más de una condición. Por lo tanto, LIKE y NOT LIKE pueden utilizarse con otros operadores. Veamos otro ejemplo: SELECT id, name FROM animal WHERE name LIKE '%g' OR name LIKE 's%' ; Resultado: id name 1 frog 2 dog 10 sheep 15 hedgehog 19 hog Devuelve todos los nombres de animales que empiezan con un carácter "s" o terminan con un carácter "g". Uso de LIKE en SQL en otras sentencias Hasta ahora, hemos discutido el uso de LIKE en SQL sólo en las sentencias SELECT. Pero este operador puede ser usado en otras sentencias, como UPDATE o DELETE. Como puedes ver, la sintaxis es bastante similar: UPDATE table SET column1 = newValue WHERE column2 LIKE pattern ; DELETE FROM table WHERE column LIKE pattern ; Veamos cómo podemos utilizar LIKE para cambiar los nombres de algunos animales. ¿Preparado? UPDATE animal SET name='tiger' WHERE name LIKE '%key%' ; Sólo hay un registro que coincide con la condición de LIKE %key%: mono. Tras esta actualización, "tigre" sustituirá a todas las instancias de "mono". Este es el resultado después de actualizar y seleccionar todos los registros de la tabla animal tabla. SELECT * FROM animal ; id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 tiger 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant.. . 18 langur 19 hog 20 gerenuk 21 22 null Nota: . .. denota dos espacios. A continuación, eliminaremos todos los registros en los que el nombre del animal empiece por un carácter "t": DELETE FROM animal WHERE name LIKE 't%' ; Para saber más sobre la concordancia de patrones SQL La concordancia de patrones SQL es muy útil para buscar subcadenas de texto. LIKE y su pariente cercano NOT LIKE hacen que esto sea bastante fácil de hacer. Si estás interesado en aprender más sobre la concordancia de patrones y el operador LIKE, consulta el cursoSQL para principiantes . Te mostrará cómo construir consultas desde cero, pero también introducirá habilidades prácticas como la coincidencia de patrones. Si tienes conocimientos básicos de SQL, puedes refrescarlos con la Ejercicios prácticos de SQL de 88 ejercicios, que van desde tareas sencillas con declaraciones SELECT FROM hasta problemas más avanzados que implican múltiples subconsultas. O pruebe nuestra Ejercicio de SQL con 5 cursos prácticos de SQL y más de 600 ejercicios. ¡ Inscríbase ahora de forma gratuita! Tags: LIKE coincidencia de patrones en SQL operador de SQL