SQL - COMODINES o WILCARDS
Los comodines o wilcards son caracteres especiales que se utilizan para realizar búsquedas especiales, podemos decir un ejemplo que traiga todas las palabras que terminen con una letra, o que en medio de la palabra contenga una letra, etc. Si o si me veo obligado a explicar que de acuerdo al tipo de base de datos va a cambiar la sintaxis.SQL - Tipos de COMODINES o WILCARDS
Existen varios tipos de comodines:
%: Sustituye a 0 o mas caracteres.
_: Sustituye a 1 carácter cualquiera.
[caracteres]: Sustituye a cualquier carácter de la lista.
[!caracteres] o [^caracteres]: Sustituye a cualquier carácter excepto a los de la lista.
SQL - Sintaxis COMODINES o WILCARDS
Antes de comenzar esto vamos a clarar que para utilizar los comodines utilizamos la sentencia LIKE. (La cual hablamos anteriormente acá)Sintaxis general:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE 'comodines'
Sintaxis comodín %:
Inicio de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE 'loquebuscamos%'
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '%loquebuscamos%'
Fin de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '%loquebuscamos'
Sintaxis _:
Hay que tener en cuenta que un "_" reemplaza solo a un carácter y hay que poner tantos como largo sea la descripción.
Inicio de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE 'loquebuscamos_'
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE 'loquebuscamos_'
En cualquiera lado de la descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '_loquebuscamos_'
Fin de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '_loquebuscamos'
Sintaxis [caracteres]:
Hay que tener en cuenta que los caracteres que se encuentre dentro de los llaves serán los que trae. Hay que tener en cuenta que también podemos utilizar mas comodines.
En Mysql:
Inicio de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '[caracter]%'
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '[caracter]%'
En cualquiera lado de la descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '%[caracter]%'
Fin de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE columna_nombre LIKE '%[caracter]%'
En ORACLE:
En ORACLE es muy parecido pero utilizamos la función REGEXP_LIKE, y expresiones regulares mucho mas adelante hablaremos de ellas.
Inicio de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE regexp_like (nombre_columna, '^[caracter]');
En cualquiera lado de la descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE regexp_like (nombre_columna, '[caracter]');
Fin de una descripción que contenga lo deseado:
SELECT * FROM tabla_nombre WHERE regexp_like (nombre_columna, '[caracter]$');
Tabla Usuarios |
Para obtener todos los nombres que contengan una R, hacemos:
SELECT * FROM Usuarios WHERE NOMBRE LIKE '%r%';
El resultado sera la fila 1:
ID_USUARIO 3, NOMBRE ARIEL.
Para obtener todos los nombres que empiecen con A o G, hacemos:
SELECT * FROM Usuarios WHERE NOMBRE LIKE '[AG]%'
El resultado sera la fila 1 y 2.
ID_USUARIO 3, NOMBRE ARIEL
ID_USUARIO 2, NOMBRE GUSTAVO
No hay comentarios:
Publicar un comentario