[MySQL] Sentencia WHERE, BETWEEN, LIKE y IN

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


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;

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


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;


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


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.


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.





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)


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);


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;




No hay comentarios:

Publicar un comentario