Cláusula WHERE
Introducción
La cláusula WHERE se utiliza para filtrar los registros de datos en función de una condición especificada o un conjunto de condiciones en las consultas de búsqueda. Cuando se usa la condición WHERE en una consulta, los registros de datos se verifican según las condiciones especificadas y los comandos se ejecutan solo en los registros que satisfacen las condiciones.
Por ejemplo, la sintaxis para usar la condición WHERE en una sentencia SELECT es:
SELECT column_name(s) FROM base_table_name WHERE condition
La condición WHERE también se puede usar con las sentencias UPDATE y DELETE.
Operadores soportados por la cláusula WHERE
Puedes usar los siguientes operadores en las condiciones WHERE en consultas ZCQL:
| Operadores | Descripción |
|---|---|
| = | Igual a |
| IS | TRUE si el operando es igual al valor |
| IS NULL | TRUE si el operando es un valor nulo |
| IS NOT NULL | TRUE si el operando no es un valor nulo |
| != | No igual a |
| LIKE | TRUE si el operando coincide con un patrón |
| NOT LIKE | TRUE si el operando no coincide con un patrón |
| BETWEEN | TRUE si el valor del operando está entre los valores de inicio y fin |
| IN | TRUE si el operando es igual a una lista de expresiones |
| NOT IN | TRUE si el operando no es igual a una lista de expresiones |
| > | Mayor que |
| >= | Mayor o igual que |
| < | Menor que |
| <= | Menor o igual que |
Ejemplo:
Para ver una lista de las películas que se proyectan en días distintos al 13 de julio de 2018 de la tabla Movies, puedes especificar la condición de fecha en la consulta usando la cláusula WHERE de la siguiente manera:
SELECT MovieName, ShowDate FROM Movies WHERE ShowDate IS '2018-07-14'
Esto generará la siguiente salida:
| MovieName | ShowDate |
|---|---|
| Hotel Transylvania 3: Summer Vacation | 2018-07-14 |
| Skyscraper | 2018-07-14 |
Múltiples condiciones WHERE
Puedes especificar un máximo de cinco condiciones WHERE en una sola consulta. Cuando se especifican múltiples condiciones WHERE, puedes usar un operador AND o OR para vincular las condiciones entre sí. Las funcionalidades de los operadores AND y OR son:
-
AND: Produce solo los registros de datos que satisfacen ambas condiciones asociadas con el operador AND.
-
OR: Produce los registros de datos que satisfacen cualquiera de las condiciones asociadas con el operador OR.
Por ejemplo, la sintaxis para usar múltiples condiciones WHERE en una sentencia SELECT es:
SELECT column_name(s)
FROM base_table_name
WHERE condition_1 AND|OR condition_2.. AND|OR condition_5
Ejemplo:
Para ver una lista de las fechas y horarios de proyección de la tabla Movies para las películas ‘The First Purge’ o ‘Skyscraper’ que se proyectan el 14 de julio, ejecuta la siguiente consulta:
SELECT MovieName, ShowDate, ShowTime FROM Movies WHERE MovieName='The First Purge' OR MovieName='Skyscraper' AND ShowDate='2018-07-14'
Solo hay un registro que coincide con las condiciones anteriores. Por lo tanto, la consulta generará el siguiente resultado:
| MovieName | ShowDate | ShowTime |
|---|---|---|
| Skyscraper | 2018-07-14 | 21:30:00 |
Sentencia LIKE
La condición LIKE te permite indicar registros que contienen un criterio específico y seleccionar todos los registros que coincidan con esa condición. Por ejemplo, puedes indicar un alfabeto específico con el que deben comenzar los registros que necesitas obtener, o un valor particular que deben contener.
Por ejemplo, la sintaxis de la condición LIKE en una sentencia UPDATE es la siguiente:
UPDATE base_table_name
SET column_name(s)=value(s)
WHERE condition
LIKE *value*
El ‘*’ se puede usar antes o después, o tanto antes como después, del valor que especifiques. El ‘*’ es esencialmente un marcador de posición que indica que cualquier valor puede reemplazarse en su lugar.
Por ejemplo, para indicar que se deben obtener todos los registros de una tabla que comienzan con la letra ‘A’, puedes ingresar el valor de LIKE como ‘A*’. Esto especifica que después de la letra A, cualquier valor puede seguir.
Ejemplo:
Para actualizar los registros donde los nombres de películas comienzan con la letra ‘S’ en la tabla Movies, ejecuta la siguiente consulta:
UPDATE Movies SET ShowDate='2018-07-17' WHERE MovieName like 'S*'
Esto actualizará el siguiente registro y establecerá el valor:
| MovieID | MovieName | ShowDate | ShowTime | TheaterID |
|---|---|---|---|---|
| 2059 | Skyscraper | 2018-07-17 | 21:30:00 | 053 |
También se permite el uso de sintaxis de comodines y símbolos como * y ? en las sentencias ZCQL definidas usando la sentencia de condición LIKE.
| Sintaxis de comodín | Definición |
|---|---|
| * | Coincide con cero o más caracteres |
| ? | Coincide con exactamente un carácter |
Sentencia BETWEEN
La condición BETWEEN te permite filtrar registros indicando los valores de inicio y fin en una columna particular que contiene valores numéricos. Por ejemplo, puedes seleccionar todos los registros donde los valores de porcentaje estén entre 70 y 80.
Por ejemplo, la sintaxis de una condición BETWEEN en una sentencia DELETE es la siguiente:
DELETE FROM base_table_name
WHERE condition
BETWEEN Value1 AND Value2
Ejemplo:
Para eliminar los registros donde el valor de MovieID está entre 2056 y 2059 en la tabla Movies, ejecuta la siguiente consulta:
DELETE FROM Movies WHERE MovieID BETWEEN 2056 AND 2059
Los siguientes registros de la tabla se eliminarán:
| MovieID | MovieName | ShowDate | ShowTime | TheaterID |
|---|---|---|---|---|
| 2057 | Ant-Man and the Wasp | 2018-07-13 | 14:20:00 | 052 |
| 2058 | Hotel Transylvania 3: Summer Vacation | 2018-07-14 | 17:00:00 | 052 |
Comparación de columna a columna
Puedes comparar dos columnas de la misma tabla o de tablas diferentes haciendo referencia a los nombres de las columnas con sus respectivos nombres de tabla en el lado izquierdo y derecho de la comparación. El resultado de la comparación devolverá las filas que contengan el mismo valor para column1 y column2 en la tabla.
Esta compatibilidad de comparación en la cláusula WHERE es aplicable a las consultas SELECT, UPDATE y DELETE.
Puedes comparar dos columnas cualesquiera que sean de los siguientes tipos de datos: BOOLEAN, DOUBLE, DATE, DATETIME, ENCRYPTED, VARCHAR, TEXT, INT y BIGINT.
SELECT:
La sintaxis general para la comparación de columnas dentro de la misma tabla es la siguiente:
SELECT * FROM tablename WHERE columnname1 = tablename.columnname2
Ejemplo:
Select MovieName FROM Movies WHERE Actor = Movies.Producer
| MovieName |
|---|
| The White River Kid |
| Duplex |
| Oppenheimer |
UPDATE:
UPDATE Movies SET self_produced = "Yes" WHERE Actor = Movies.Producer
DELETE:
DELETE FROM Movies WHERE Actor = Movies.Producer
Comparación de columnas en tablas diferentes
También puedes comparar columnas de dos tablas diferentes como se muestra en la siguiente sintaxis:
SELECT tablename1.columnname1, tablename2.columnname1
FROM tablename2 LEFT JOIN tablename1 ON tablename2.columnname1 = tablename1.columnname2
WHERE tablename1.columnname1 = tablename2.columnname2
Ejemplo:
SELECT Movies.name, Theatres.city from Theatres left join Movies on Theatres.ROWID = Movies.theatreID where Movies.distributionCity = theatre.city
| Name | CIty |
|---|---|
| Dark Knight Rises | Los Angeles |
| Titanic | New York |
De manera similar, puedes comparar columnas pertenecientes a dos tablas diferentes al ejecutar las consultas UPDATE y DELETE.
Subconsultas en la cláusula WHERE
Una subconsulta es una consulta que se escribe dentro de otra sentencia de consulta. Catalyst te permite ejecutar subconsultas simples individuales con la cláusula WHERE. Puedes escribir subconsultas con la cláusula WHERE en las consultas SELECT, UPDATE y DELETE.
La sintaxis de una subconsulta con la cláusula WHERE se muestra a continuación:
SELECT column_name FROM table_name WHERE column_name operator (SELECT column_name FROM table_name)
Base de datos de ejemplo
Los detalles de empleados de Zylker Technologies se mantienen en el Data Store en la tabla Zylker_Employee_DB. La tabla contiene las siguientes columnas y filas:
| ID | Name | Department | Salary |
|---|---|---|---|
| ZT-001 | Amelia Burrows | Product Management | 15000 |
| ZT-2001 | Bruce Wayne | Sr. Management | 85000 |
| ZT-239 | Clark Kane | Media Relations | 85000 |
| ZT-4289 | Michelle Mascarenhas | Finance | 89000 |
A continuación se muestra un ejemplo de sentencia de subconsulta para listar los salarios y los nombres de los empleados que ganan más que el empleado con el salario mínimo:
SELECT Name, Salary FROM Zylker_Employee_DB WHERE Salary > (SELECT MIN (Salary) FROM Zylker_Employee_DB)
| Zylker_Employee_DB.Salary | Zylker_Employee_DB.Name |
|---|---|
| 15000 | Amelia Burrows |
| 85000 | Bruce Wayne |
| 89000 | Michelle Mascarenhas |
-
Esta funcionalidad solo está disponible en ZCQL V2.
-
A partir del 1 de diciembre de 2024, todos tus proyectos actuales en todas tus organizaciones presentes en el entorno de desarrollo se mapearán automáticamente al ZCQL V2 Parser.
-
A partir del 1 de abril de 2025, todos los proyectos presentes en todas las organizaciones que ya hayan sido mapeados al ZCQL V2 Parser en el entorno de desarrollo se mapearán automáticamente al ZCQL V2 Parser en el entorno de producción, si y cuando se habilite producción para el proyecto.
Última actualización 2026-03-20 21:51:56 +0530 IST
Yes
No
Send your feedback to us