WHERE
La sentencia WHERE se utiliza en conjunto con la declaración SELECT nombre_columna FROM nombre_tabla (en DML) para especificar que queremos los resultados que coincidan con una expresión lógica.
Sintaxis
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
WHERE nombre_columna [operador] valor
FROM nombre_tabla
WHERE nombre_columna [operador] valor
Ejemplo
Textualmente podría ser: "Quiero todos los campos de la tabla persona DONDE la edad sea igual a 27.
En código MySQL: SELECT * FROM personas WHERE edad = 27;
En código MySQL: SELECT * FROM personas WHERE edad = 27;
Operadores
Operador | Descripción |
---|---|
= | Igual |
!= | Distinto |
< | Menor |
> | Mayor |
<= | Menor Igual |
>= | Mayor Igual |
BETWEEN | Entre (rango de valores) |
LIKE | Como |
Mas Ejemplos
- SELECT nombre, apellido, direccion FROM clientes WHERE pais = 'arg';
- SELECT * FROM usuarios WHERE nickname != 'asdasd';
- SELECT libro, autor WHERE anio > 2000;
- SELECT * FROM auto WHERE modelo < 2010;
- SELECT * FROM proveedores WHERE razon_social >= 'h';
NOTA: en este caso buscará que la primer letra de cada resultado sea mayor o igual a H.
BETWEEN
La clausula BEWEEN se utiliza junto con la sentencia
SELECT * FROM tabla WHERE columna para especificar un rango de valores. Estos valores pueden ser números, letras, o fechas.
Sintaxis
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
WHERE nombre_columna
BETWEEN valor1 AND valor2
FROM nombre_tabla
WHERE nombre_columna
BETWEEN valor1 AND valor2
Ejemplo
Textualmente podría ser: "Quiero todos los campos de la tabla donde la edad SEA ENTRE 18 y 65 años.
En código MySQL: SELECT * FROM personas WHERE edad BETWEEN 18 AND 65;
En código MySQL: SELECT * FROM personas WHERE edad BETWEEN 18 AND 65;
Mas Ejemplos
- SELECT nombre, apellido, direccion FROM clientes WHERE pais BETWEEN 'a' AND 'c';
- SELECT * FROM usuarios WHERE nickname BETWEEN 'x' AND 'z';
- SELECT libro, autor WHERE anio BETWEEN 2000 AND 2010;
- SELECT * FROM auto WHERE modelo BETWEEN 2010 AND 2016;
- SELECT * FROM proveedores WHERE razon_social BETWEEN 'h' AND 'k';
NOT BETWEEN
La clausula BETWEEN es igual a hacer:
- SELECT * FROM autos WHERE modelo > 2000 && modelo < 2016;
Permitiendo filtrar resultados de un rango interno. La clausula NOT BETWEEN invierte los operadores mayor e igual respectivamente para filtrar un rango excluyente:
LIKE
La sentencia LIKE se utiliza en conjunto con la declaración SELECT * FROM tabla WHERE columna para filtrar por un patron, es decir resultados que contengan al menos una parte de lo que estoy buscando y no de manera textual.
Sintaxis
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
WHERE nombre_columna
LIKE patron
FROM nombre_tabla
WHERE nombre_columna
LIKE patron
Ejemplo
Textualmente podría ser: "Quiero todos los campos de la tabla persona donde el nombre sea COMO algo seguido 'ario'.
En código MySQL: SELECT * FROM personas WHERE nombre LIKE '%ario';
Si la tabla tuviese los registros DARIO y MARIO, traeria ambos como resultado, ya que el operador % actua como una o varias letras cualesquiera antes.
En código MySQL: SELECT * FROM personas WHERE nombre LIKE '%ario';
Si la tabla tuviese los registros DARIO y MARIO, traeria ambos como resultado, ya que el operador % actua como una o varias letras cualesquiera antes.
Operador | Descripción |
---|---|
% | Funciona como un comodin, coincidencia con cualquier numero de letras antes y después |
_ | Coincidencia con un único caracter. |
Para poder incluir los caracteres '%' y '_' dentro de nuestra búsqueda de patrón, los deberemos escapear con '\' ej: '\%' y '\_'
NOT LIKE
Al igual que con BETWEEN , la declaración LIKE trae consigo su inversa con el prefijo NOT .
Si al ejecutar una consulta a la base de datos con LIKE me devuelve una pequeña porción (la marcada en verde), al anteponer el prefijo NOT me devolverá lo rojo.
Si al ejecutar una consulta a la base de datos con LIKE me devuelve una pequeña porción (la marcada en verde), al anteponer el prefijo NOT me devolverá lo rojo.
IN
La declaración IN se utiliza en conjunto con WHERE para incluir múltiples valores al campo de la columna a filtrar.
Sintaxis
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
WHERE nombre_columna
IN ('valor1', 'valor2', etc)
FROM nombre_tabla
WHERE nombre_columna
IN ('valor1', 'valor2', etc)
Ejemplo
Textualmente podría ser: "Quiero todos los campos de la tabla persona donde la edad SEA igual a 27, igual a 35, igual a 50.
En código MySQL: SELECT * FROM personas WHERE edad IN (27, 35, 50);
En código MySQL: SELECT * FROM personas WHERE edad IN (27, 35, 50);
Funciona de la misma que forma poner muchos operadores logicos AND: && para declaración del tipo:
SELECT * FROM personas WHERE edad = 27 && edad = 35 && edad = 50;
SELECT * FROM personas WHERE edad = 27 && edad = 35 && edad = 50;
No hay comentarios:
Publicar un comentario