Introducción a la cláusula WHERE

Como todos sabemos, SQL (Structured Query Language) es uno de los lenguajes más utilizados para bases de datos relacionales (base de datos en la que los registros se guardan en forma de filas y columnas). En SQL, las consultas se disparan para llegar a la base de datos para realizar las operaciones deseadas, ya sea DML (lenguaje de manipulación de datos), DDL (lenguaje de definición de datos) o DCL (lenguaje de control de datos). SQL utiliza algunas cláusulas como WHERE, GROUP BY, HAVING, ORDER BY que realizan operaciones específicas. La cláusula WHERE se utiliza para aplicar condiciones y filtrar resultados mientras se recupera o manipula cualquier dato de la base de datos. Se usa con la instrucción SELECT, UPDATE y DELETE, también la cláusula WHERE es opcional para usarse con ellos.

En general, términos, cláusula WHERE,

  • Se utiliza para filtrar las filas de acuerdo con los criterios dados.
  • Limita el número de filas devueltas.
  • Seguido de una condición lógica que devuelve verdadero o falso.
  • Funciona solo si la condición mencionada devuelve verdadero.
  • Se puede usar con sentencias SELECT, UPDATE o DELETE.

1. Sintaxis con SELECT

SELECT column1, column2, column3… from table_name WHERE condition;

Aquí SELECT recuperará todos los datos de column1, column2, column3 de la tabla (nombrada como table_name) y la cláusula WHERE aplica las condiciones a los datos recuperados por la instrucción SELECT y la filtra de acuerdo con la condición mencionada en la declaración.

2. Sintaxis con ACTUALIZACIÓN

UPDATE table_name SET column_name = value WHERE condition;

Aquí Update actualizará el valor de column_name con la condición where proporcionada.

Los operadores lógicos y de comparación también se pueden usar con la condición WHERE como y, o no, LIKE, <, =, etc.

3. Sintaxis con DELETE

DELETE from table_name WHERE condition;

En la sintaxis anterior:

nombre de la tablaNombre de la tabla en la que se deben realizar las operaciones.
condiciónEspecifica la condición del filtro en el que los registros deben filtrarse
lista_columnaNombre de las columnas de la tabla.

Ejemplos

Considere una tabla de estudiantes con diferentes columnas y valores mencionados a continuación:

Stu_idStu_nameDirecciónStu_phnoStu_percentage
1RahulAgra955780662585
2AnkitDelhi885566447175
3ShailendraNoida721345789692

Escenario 1

Recupere la identificación del estudiante, el nombre del estudiante, la dirección y el porcentaje de todos los estudiantes que obtuvieron más del 80 por ciento.

Consulta

SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;

Resultado:

Número de registros: 2

Stu_idStu_nameDirecciónStu_percentage
1RahulAgra85
3ShailendraNoida92

Escenario # 2

Actualice el porcentaje de Rahul en un 2 por ciento.

Consulta

UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';

Resultado:

Filas afectadas: 1

Si pulsamos la consulta para ver los campos actualizados:

Consulta

SELECT * from students WHERE Stu_name ='Rahul';

Resultado:

Número de registros: 1

Stu_idStu_nameDirecciónStu_percentage
1RahulAgra87

Escenario # 3

El estudiante Ankit ha dejado la escuela, así que borra todo el registro de él de la mesa.

Consulta

DELETE from students WHERE Stu_name = 'Ankit';

Resultado:

Filas afectadas: 1

Para ver la tabla actualizada estudiante:

Consulta

SELECT * from students;

Resultado:

Filas afectadas: 2

Stu_idStu_nameDirecciónStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

WHERE cláusula Operaciones

La cláusula WHERE contiene las condiciones en las que se filtran los valores de la base de datos. Se pueden usar varios operadores con la cláusula WHERE. Algunos de ellos se dan a continuación en la tabla con un ejemplo:

S.No.OperadorDescripciónEjemplo
1)YDevuelve verdadero si ambas condiciones coincidenSELECCIONE * de los estudiantes DONDE Stu_name = 'Rahul' y Stu_percentage = 85;
2)ODevuelve verdadero si alguno de los

condición coincide

SELECCIONE * de los estudiantes DONDE Stu_name = 'Rahul' o Stu_name = 'Shalendra';
3)ENEl valor coincide con cualquiera de los múltiples valores especificados.SELECCIONE * de estudiantes DONDE Stu_city IN ('AGRA', 'NOIDA');
4)NO ENEl valor no coincide con ninguno de los valores múltiples especificadosSELECCIONE * de estudiantes DONDE Stu_city NO EN ('AGRA', 'NOIDA');
5)=IgualSELECCIONE * de estudiantes DONDE

Stu_name = 'Rahul';

6)>Mas grande queSELECCIONE * de estudiantes DONDE Stu_percentage> 80;
7)<Menos queSELECCIONE * de estudiantes DONDE Stu_percentage <78;
8)> =Mayor qué o igual aSELECCIONE * de estudiantes DONDE Stu_percenetage> = 70;
9)<=Menos que o igual aSELECCIONE * de estudiantes DONDE Stu_percenetage <= 70;
10)No es igual aSELECCIONE * de estudiantes DONDE Stu_percentage 75;
11)ENTREEl valor se encuentra entre un cierto rango.SELECCIONE * de estudiantes DONDE

Stu_percentage ENTRE 70 Y 85;

12)ME GUSTALos valores coinciden con un cierto patrón. Se usa para realizar búsquedas con comodinesSELECCIONE * de estudiantes DONDE Stu_city LIKE 'AG%';

Nota: Hay una cosa que debe tenerse en cuenta al trabajar con la cláusula WHERE es que, al especificar la condición, los valores numéricos no se citan entre comillas simples (''), mientras que los valores de texto (varchar) deben citarse entre comillas simples citas (' ').

¿Cómo funciona la cláusula WHERE en SQL?

Aunque los ejemplos anteriores muestran claramente cómo se usa la cláusula WHERE para filtrar los datos de acuerdo con la condición especificada por el usuario y permite la ejecución más rápida del código SQL ya que la cantidad limita los registros devueltos. El optimizador de consultas SQL funciona primero en la consulta usando FROM (tabla en la que se debe realizar la operación) para recuperar, eliminar o actualizar y luego aplicar la cláusula WHERE a los resultados.

La cláusula WHERE solo se puede usar cuando necesitamos filtrar los resultados en una sola tabla o combinación de tablas, ya que funciona en datos de filas, pero cuando en el caso de las funciones de Agregado, WHERE no se puede usar para aplicar condiciones a la consulta.

Consideremos el escenario donde la cláusula WHERE no se puede usar:

Escenario: en una tabla de 'películas', recupere todos los detalles de las películas que ganan más de 10 millones de rupias en años particulares como (2000, 2010, 2012..etc)

Consulta:

SELECT * from movies GROUP BY Year_released HAVING earnings > 10;

El ejemplo anterior usa la cláusula HAVING en lugar de WHERE, porque la cláusula WHERE no se puede usar en las funciones agregadas mientras que HAVING sí, y esta es también una de las principales diferencias entre la cláusula WHERE y HAVING

Conclusión - Cláusula SQL WHERE

La explicación anterior muestra claramente el uso de la cláusula WHERE y su implementación para diferentes escenarios en consultas SQL. Antes de escribir cualquier consulta, se debe tener en cuenta el uso de cada cláusula y el escenario en el que se debe utilizar esa cláusula o palabra clave en particular.

Artículos recomendados

Esta es una guía de la cláusula SQL WHERE. Aquí discutimos el uso de la cláusula WHERE y su implementación para diferentes escenarios. También puede consultar nuestros otros artículos sugeridos:

  1. Tipos de combinaciones en SQL
  2. Comodines en MySQL
  3. Consulta de inserción de SQL
  4. Clave externa en SQL
  5. Los 6 tipos principales de combinaciones en MySQL con ejemplos