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 tabla | Nombre de la tabla en la que se deben realizar las operaciones. |
condición | Especifica la condición del filtro en el que los registros deben filtrarse |
lista_columna | Nombre de las columnas de la tabla. |
Ejemplos
Considere una tabla de estudiantes con diferentes columnas y valores mencionados a continuación:
Stu_id | Stu_name | Dirección | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | Delhi | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
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_id | Stu_name | Dirección | Stu_percentage |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
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_id | Stu_name | Dirección | Stu_percentage |
1 | Rahul | Agra | 87 |
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_id | Stu_name | Dirección | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
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. | Operador | Descripción | Ejemplo |
1) | Y | Devuelve verdadero si ambas condiciones coinciden | SELECCIONE * de los estudiantes DONDE Stu_name = 'Rahul' y Stu_percentage = 85; |
2) | O | Devuelve verdadero si alguno de los
condición coincide | SELECCIONE * de los estudiantes DONDE Stu_name = 'Rahul' o Stu_name = 'Shalendra'; |
3) | EN | El valor coincide con cualquiera de los múltiples valores especificados. | SELECCIONE * de estudiantes DONDE Stu_city IN ('AGRA', 'NOIDA'); |
4) | NO EN | El valor no coincide con ninguno de los valores múltiples especificados | SELECCIONE * de estudiantes DONDE Stu_city NO EN ('AGRA', 'NOIDA'); |
5) | = | Igual | SELECCIONE * de estudiantes DONDE
Stu_name = 'Rahul'; |
6) | > | Mas grande que | SELECCIONE * de estudiantes DONDE Stu_percentage> 80; |
7) | < | Menos que | SELECCIONE * de estudiantes DONDE Stu_percentage <78; |
8) | > = | Mayor qué o igual a | SELECCIONE * de estudiantes DONDE Stu_percenetage> = 70; |
9) | <= | Menos que o igual a | SELECCIONE * de estudiantes DONDE Stu_percenetage <= 70; |
10) | No es igual a | SELECCIONE * de estudiantes DONDE Stu_percentage 75; | |
11) | ENTRE | El valor se encuentra entre un cierto rango. | SELECCIONE * de estudiantes DONDE
Stu_percentage ENTRE 70 Y 85; |
12) | ME GUSTA | Los valores coinciden con un cierto patrón. Se usa para realizar búsquedas con comodines | SELECCIONE * 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:
- Tipos de combinaciones en SQL
- Comodines en MySQL
- Consulta de inserción de SQL
- Clave externa en SQL
- Los 6 tipos principales de combinaciones en MySQL con ejemplos