stringtranslate.com

Donde (SQL)

Una WHEREcláusula en SQL especifica que una declaración del lenguaje de manipulación de datos (DML) de SQL solo debe afectar a las filas que cumplen con los criterios especificados. Los criterios se expresan en forma de predicados. WHERELas cláusulas no son cláusulas obligatorias de las declaraciones SQL DML, pero se pueden usar para limitar el número de filas afectadas por una declaración SQL DML o devueltas por una consulta. En resumen, la cláusula WHERE de SQL se utiliza para extraer solo aquellos resultados de una declaración SQL, como: SELECT, INSERT, UPDATEo DELETEdeclaración. [1]

Descripción general

WHEREes una palabra reservada de SQL .

La WHEREcláusula se utiliza junto con declaraciones SQL DML y adopta la siguiente forma general:

SQL - DML - Declaración DESDE nombre_tabla DONDE predicado   

todas las filas para las cuales el predicado de la WHEREcláusula es Verdadero se ven afectadas (o devueltas) por la consulta o instrucción SQL DML. Las filas para las cuales el predicado se evalúa como Falso o Desconocido ( NULL ) no se ven afectadas por la consulta o instrucción DML.

La siguiente consulta devuelve solo aquellas filas de la tabla mytable donde el valor en la columna mycol es mayor que 100.

SELECCIONE * DE mytable DONDE mycol > 100     

La siguiente DELETEdeclaración elimina solo aquellas filas de la tabla mytable donde la columna mycol es NULL o tiene un valor igual a 100.

ELIMINAR DE mytable DONDE mycol ES NULO O mycol = 100        

Predicados

Los predicados simples utilizan uno de los operadores =, <>, >, >=, , , , o .<<=INBETWEENLIKEIS NULLIS NOT NULL

Los predicados se pueden encerrar entre paréntesis si se desea. Las palabras clave ANDy ORse pueden utilizar para combinar dos predicados en uno nuevo. Si se aplican múltiples combinaciones, se pueden usar paréntesis para agrupar combinaciones para indicar el orden de evaluación. Sin paréntesis, el ANDoperador tiene un enlace más fuerte que OR.

El siguiente ejemplo elimina filas de mytable donde el valor de mycol es mayor que 100 y el valor del elemento es igual al literal de cadena 'Hammer':

ELIMINAR DE mytable DONDE mycol > 100 Y item = 'Martillo'        

EN

INencontrará cualquier valor existente en un conjunto de candidatos.

SELECCIONE ename DONDE ename EN ( 'Montreal' , 'Quebec' )      

Todas las filas coinciden con el predicado si su valor es uno del conjunto de valores candidatos. Este es el mismo comportamiento que

SELECCIONE ename DONDE ename = 'valor1' O ename = 'valor2'     

excepto que este último podría permitir la comparación de varias columnas, lo que cada INcláusula no permite. Para un número mayor de candidatos, INes menos detallado.

ENTRE

BETWEENencontrará cualquier valor dentro de un rango.

SELECCIONE ename DONDE ename ENTRE 'valor1' Y 'valor2'       
SELECCIONE el salario de emp DONDE el salario ENTRE 5000 Y 10000         

Todas las filas coinciden con el predicado si su valor está entre 'valor1' y 'valor2', ambos inclusive.

COMO

LIKEencontrará una cadena que se ajuste a una determinada descripción.

El predicado LIKE normalmente realiza una búsqueda sin el beneficio de rendimiento normal de los índices. Usar '=", '<>', etc. en su lugar aumentará el rendimiento. La distinción entre mayúsculas y minúsculas (por ejemplo, 'S' frente a 's') puede ser diferente según el producto o la configuración de la base de datos.

SIMILAR A

Éste se usa en PostgresSQL y admite expresiones regulares con la siguiente sintaxis: [3]

cadena [ NO ] SIMILAR AL patrón [ ESCAPE carácter de escape ]      

Funciona de manera similar a la declaración LIKE mencionada anteriormente.

Referencias

  1. ^ "Cláusula SQL WHERE: cosas que los principiantes deben saber".
  2. ^ Microsoft Technet Consultado el 21 de noviembre de 2013.
  3. ^ "9.7. Coincidencia de patrones". Documentación de PostgreSQL . 2023-05-11 . Consultado el 10 de junio de 2023 .

enlaces externos