Unidad 3. Consultas simples (XIII)


Test de correspondencia con patrón LIKE

Se utiliza cuando queremos comparar el valor de una columna con un patrón en el que se utilice caracteres comodines.


<expression>  [NOT] LIKE  <patron>  [ESCAPE 'car_escape']

Con expresión indicamos el valor a comparar (normalmente será el nombre de una columna) y patrón es la cadena que se busca. El patrón es de tipo texto y tiene que escribirse entre comillas simples. Dentro del patrón podemos utilizar los siguientes comodines:

%    representa cualquier cadena de cero o más caracteres.

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE ‘An%’;
numemp nombre
101 Antonio Viguer
108 Ana Bustamante

Obtiene todos los nombres que empiecen por An.

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE ‘%z’; 
numemp nombre
104 José González
107 José González

Obtiene los nombres que acaban en z.

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE ‘%on%’;
numemp nombre
101 Antonio Viguer
104 José González
106 Luis Antonio

Obtiene los nombres que contienen on.

_     representa cualquier carácter (sólo uno).

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '__a%';
numemp nombre
103 Juan Rovira
108 Ana Bustamante
110 Juan Victor

Obtiene los nombres cuya tercera letra sea una a (en el patrón tenemos dos caracteres subrayado).

[  ] sirve para indicar un carácter cualquiera perteneciente al conjunto indicando.
       El conjunto se indica enumerando los caracteres o indicando un intervalo.

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '[a-d]%';

Obtiene los nombres que empiezan por cualquier letra de la a a la d.

Es equivalente a escribir:

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '[abcd]%';

[^] significa cualquier carácter individual que no se encuentre en el conjunto.

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '[^abcd]%';

Y

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '[^a-d]%';

Obtienen los nombres que no empiecen por a, b, c ni d.

Es importante tener en cuenta que dentro del patrón el espacio en blanco es considerado como un carácter más, si colocamos dos espacios en el patrón, se buscarán dos espacios en el campo.

Si queremos incluir en el patrón uno de los caracteres comodines y que no sea interpretado como un comodín, sino como un carácter normal, lo tenemos que encerrar entre corchetes o utilizar un carácter de escape.

[ESCAPE 'car_escape']

La cláusula ESCAPE es opcional y permite definir un carácter de escape.

Un carácter de escape es un carácter que se coloca delante de un carácter comodín para indicar que el comodín no debe interpretarse como tal, sino como un carácter normal.

Por ejemplo queremos buscar los nombres compuestos que incluyen un subrayado. En este caso tenemos que poner el carácter _ como un carácter normal no como un comodín, así que lo escribiremos así:

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '%[_]%';

O bien,

SELECT numemp,nombre

FROM empleados

WHERE nombre LIKE '%!_%' ESCAPE '!';

Para practicar puedes realizar este Ejercicio Test de correspondencia con LIKE.

Existen dos predicados más para evaluar expresiones: CONTAINS y FREETEXT. Puedes ver más información sobre ellas en este avanzado Avanzado.

Febrero-2010
Pág. 3.13

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.