MySQL WHERE Cláusula con ejemplos – AND, OR, IN, NOT IN

 

¿Cuál es la cláusula WHERE?

Miramos cómo consultar datos de una base de datos utilizando la instrucción SELECT en el tutorial anterior. La instrucción SELECT devolvió todos los resultados de la tabla de la base de datos consultada.

Sin embargo, son momentos en los que queremos restringir los resultados de la consulta a una condición especificada. La cláusula WHERE de SQL es útil en tales situaciones.

WHERE cláusula Sintaxis

La sintaxis básica para la cláusula WHERE cuando se usa en una instrucción SELECT es la siguiente.

AQUÍ

  • “SELECT * FROM tableName” es la instrucción SELECT estándar
  • “DONDE” es la palabra clave que restringe nuestro conjunto de resultados de consulta de selección y “condición” es el filtro que se aplicará a los resultados. El filtro podría ser un rango, valor único o sub consulta.

Veamos ahora un ejemplo práctico .

Supongamos que queremos obtener los datos personales de un miembro de la tabla de miembros dado el número de membresía 1, usaríamos la siguiente secuencia de comandos para lograrlo.

Ejecutar el script anterior en MySQL workbench en el “myflixdb” produciría los siguientes resultados.

número de socio nombres completos género fecha de nacimiento dirección física direccion postal contct_number correo electrónico
1 Janet Jones Hembra 21-07-1980 Calle Primera Parcela No 4 Bolsa privada 0759 253 542 janetjones@yagoo.cm

 

Cláusula WHERE combinada con – Y operador lógico

La cláusula WHERE, cuando se utiliza junto con el operador lógico AND, solo se ejecuta si se cumplen TODOS los criterios de filtro especificados.

Veamos ahora un ejemplo práctico: supongamos que queremos obtener una lista de todas las películas de la categoría 2 que se lanzaron en 2008, usaríamos el script que se muestra a continuación para lograrlo.

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

movie_id título director añorelado categoria ID
2 Olvidando a Sarah Marshal Nicholas Stoller 2008 2

Cláusula WHERE combinada con – O operador lógico

La cláusula WHERE, cuando se utiliza junto con el operador OR, solo se ejecuta si se cumple alguno o todos los criterios de filtro especificados.

El siguiente script obtiene todas las películas en la categoría 1 o categoría 2

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

movie_id título director añorelado categoria ID
1 Piratas del Caribe 4 Rob Marshall 2011 1
2 Olvidando a Sarah Marshal Nicholas Stoller 2008 2

 

Cláusula WHERE combinada con la palabra clave IN

La cláusula WHERE cuando se utiliza junto con la palabra clave IN solo afecta a las filas cuyos valores coinciden con la lista de valores proporcionada en la palabra clave IN. IN ayuda a reducir el número de cláusulas OR que quizás deba usar

La siguiente consulta da filas donde membership_number es 1, 2 o 3

 

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

número de socio nombres completos género fecha de nacimiento dirección física direccion postal contct_number correo electrónico
1 Janet Jones Hembra 21-07-1980 Calle Primera Parcela No 4 Bolsa privada 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Hembra 23-06-1980 Melrose 123 NULO NULO jj@fstreet.com
3 Robert Phil Masculino 12-07-1989 3rd Street 34 NULO 12345 rm@tstreet.com

 

La cláusula WHERE combinada con – NO EN palabra clave

La cláusula WHERE cuando se usa junto con la palabra clave NOT IN NO afecta las filas cuyos valores coinciden con la lista de valores proporcionada en la palabra clave NOT IN.

La siguiente consulta proporciona filas donde membership_number NO es 1, 2 o 3

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

número de socio nombres completos género fecha de nacimiento dirección física direccion postal contct_number correo electrónico
4 Gloria Williams Hembra 14-02-1984 2nd Street 23 NULO NULO NULO

 

Cláusula WHERE combinada con – OPERADORES DE COMPARACIÓN

Los operadores de comparación menores que (), iguales a (=), no iguales a () pueden usarse con la cláusula Where

= Igual a

La siguiente secuencia de comandos obtiene todos los miembros femeninos de la tabla de miembros utilizando el operador de igual a comparación.

 

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

número de socio nombres completos género fecha de nacimiento dirección física direccion postal contct_number correo electrónico
1 Janet Jones Hembra 21-07-1980 Calle Primera Parcela No 4 Bolsa privada 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Hembra 23-06-1980 Melrose 123 NULO NULO jj@fstreet.com
4 Gloria Williams Hembra 14-02-1984 2nd Street 23 NULO NULO NULO

 

> Mayor que

La siguiente secuencia de comandos obtiene todos los pagos que son mayores a 2.000 desde la tabla de pagos.

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

payment_id número de socio fecha de pago descripción cantidad pagada external_reference_number
1 1 23-07-2012 Pago de alquiler de película 2500 11
3 3 30-07-2012 Pago de alquiler de película 6000 NULO

 

<> No es igual a

La siguiente secuencia de comandos obtiene todas las películas cuya identificación de categoría no es 1.

Ejecutar el script anterior en MySQL workbench contra el “myflixdb” produce los siguientes resultados.

 

movie_id título director añorelado categoria ID
2 Olvidando a Sarah Marshal Nicholas Stoller 2008 2
5 Las hijas de papá NULO 2007 8
6 Ángeles y demonios NULO 2007 6
7 Código da Vinci NULO 2007 6
9 Honey Mooners John Schultz 2005 8

 

Resumen

  • La cláusula SQL WHERE se usa para restringir el número de filas afectadas por una consulta SELECT, UPDATE o DELETE.
  • La cláusula WHERE se puede usar junto con operadores lógicos como AND y OR, operadores de comparación como, = etc.
  • Cuando se usa con el operador lógico AND, se deben cumplir todos los criterios.
  • Cuando se usa con el operador lógico OR, se debe cumplir cualquiera de los criterios.
  • La palabra clave IN se utiliza para seleccionar filas que coinciden con una lista de valores.

Brain Teaser

Supongamos que queremos obtener una lista de películas alquiladas que no se han devuelto a tiempo el 24/06/2012. Podemos usar la cláusula WHERE junto con el operador que no sea de comparación y el operador lógico AND para lograr eso.

 

Ejecutar el script anterior en MySQL workbench da los siguientes resultados.

número de referencia Fecha de Transacción Fecha de regreso número de socio movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *