Articulo de referencia

Dónde (SQL)

Una WHERE cláusula en SQL especifica que una sentencia SQL Data Manipulation Language (DML) solo debe afectar a las filas que cumplan con los criterios especificados. Los criter...

Una WHEREcláusula en SQL especifica que una sentencia SQL Data Manipulation Language (DML) solo debe afectar a las filas que cumplan con los criterios especificados. Los criterios se expresan en forma de predicados. WHERELas cláusulas no son cláusulas obligatorias de las sentencias SQL DML, pero se pueden utilizar para limitar la cantidad de filas afectadas por una sentencia SQL DML o devueltas por una consulta. En resumen, la cláusula SQL WHERE se utiliza para extraer solo los resultados de una sentencia SQL, como: SELECT, INSERT, UPDATEo DELETEsentencia. [1]

Descripción general

WHEREes una palabra reservada de SQL .

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

SQL - DML - Instrucción 
FROM nombre_tabla WHERE predicado  
 

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

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

SELECCIONAR * 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 =, <>, >, >=, <, <=, IN, BETWEEN, LIKE, IS NULLo IS 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 utilizar paréntesis para agrupar combinaciones para indicar el orden de evaluación. Sin paréntesis, el ANDoperador tiene una vinculación más fuerte que OR.

El siguiente ejemplo elimina filas de mytable donde el valor de mycol es mayor que 100 y el valor de item es igual a la cadena literal 'Hammer':

ELIMINAR 
DE MYTABLE DONDE MYCOL > 100 Y ÍTEM = 'MARTILLO'   
        

EN

INencontrará cualquier valor existente en un conjunto de candidatos.

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

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

SELECCIONAR ename DONDE ename = 'valor1' O ename = 'valor2'     

excepto que este último podría permitir la comparación de varias columnas, lo que INno ocurre con cada cláusula. Para un mayor número de candidatos, INes menos verboso.

ENTRE

BETWEENEncontrará cualquier valor dentro de un rango.

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

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

COMO

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

  • Comodín final
    • Encuentra cualquier cadena que comience con la letra 'S'
      SELECCIONAR ename DE emp DONDE ename COMO 'S%' ;       
      
  • Comodín líder
    • Encuentra cualquier cadena que termine con la letra 'S'
      SELECCIONAR ename DE emp DONDE ename COMO '%S' ;       
      
  • Múltiples comodines
    • Encuentra cualquier cadena que contenga, en cualquier lugar, la letra 'S'
      SELECCIONAR ename DE emp DONDE ename COMO '%S%' ;       
      
  • Comodín de un solo carácter
    • Busque cualquier cadena que contenga la letra 'A' seguida de cualquier carácter individual seguido de la letra 'E'
      SELECCIONAR ename DE emp DONDE ename COMO '%A_E%' ;       
      
  • Clases de personajes [2]
    • Encuentra cualquier cadena que comience con una letra o número o el símbolo '_'
      SELECCIONAR ename DE emp DONDE ename COMO '[a-zA-Z0-9_]%' ;       
      

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

SIMILAR A

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

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

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

Referencias

  1. ^ "Cláusula WHERE de SQL: 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 2023-06-10 .
  • PSOUG Home Puget Sound Oracle Users Group ofrece varios ejemplos de instrucciones SELECT con cláusulas WHERE.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Where_(SQL)&oldid=1239833370"