English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cláusula WHERE de SQL

En este tutorial, aprenderás a seleccionar registros específicos de una tabla utilizando SQL.

Selección de registros según las condiciones

En el capítulo anterior, aprendimos cómo obtener todos los registros de una tabla o columna. Sin embargo, en el mundo real, generalmente solo necesitamos seleccionar, actualizar o eliminar registros que cumplan con ciertas condiciones, como pertenecer a una cierta edad o a un país./los usuarios de la región, etc.

la cláusula WHERE se utiliza conSELECT,UPDATEyDELETE。Pero, como verá en los próximos capítulos, se utilizará esta cláusula junto con otras sentencias.

Sintaxis

La cláusula WHERE se utiliza junto con la sentencia SELECT para extraer solo aquellos registros que satisfacen las condiciones especificadas. La sintaxis básica se puede presentar de la siguiente manera:

SELECT column_list FROM table_name WHERE condition;

Aquí,column_listes la columna de la tabla de base de datos que desea obtener el valor/del campoNombre,por ejemploname,age,countryetc. Pero, si desea obtener los valores de todas las columnas disponibles de la tabla, puede usar la siguiente sintaxis:

SELECT * FROM table_name WHERE condition;

Ahora, veamos algunos ejemplos para demostrar su principio de funcionamiento real.

Supongamos que en la base de datos tenemos una tabla llamadaemployeesque contienen los siguientes registros:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

usando la cláusula WHERE para filtrar los registros

La siguiente sentencia SQL obtendráemployeesLa tabla devuelve los registros de los empleados con7000 de todos los employee. La cláusula WHERE solo filtra los datos no deseados.

SELECT * FROM employees
WHERE salary > 7000;

Después de ejecutar, la salida será como se muestra a continuación:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

Como puede ver, la salida solo contiene salarios mayores a7000 de los empleados. Del mismo modo, puede obtener registros de columnas específicas, como se muestra a continuación:

SELECT emp_id, emp_name, hire_date, salary
FROM employees
WHERE salary > 7000;

Después de ejecutar la sentencia superior, obtendrá la siguiente salida:

+--------+--------------+------------+--------+
| emp_id | emp_name     | hire_date  | salary |
+--------+--------------+------------+--------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |
+--------+--------------+------------+--------+

La siguiente sentencia obtendrá el registro del empleado con2del registro del empleado.

SELECT * FROM employees
WHERE emp_id = 2;

Esta sentencia producirá la siguiente salida:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
+--------+--------------+------------+--------+---------+

Esta vez, solo obtenemos una línea en la salida porqueemp_idPara cada empleado es único.

Operadores permitidos en la cláusula WHERE

SQL admite muchos operadores que se pueden usar en la cláusula WHERE, la tabla a continuación resume los operadores más importantes.

OperadorDescripciónEjemplos en línea
=IgualWHERE id = 2
>Mejor que...WHERE age > 30
<MenosWHERE age < 18
>=Mayor o igualWHERE rating >= 4
<=Menor o igualWHERE price <= 100
LIKECoincidencia de modo simpleWHERE name LIKE 'Dav'
INVerificar si un valor específico coincide con cualquier valor de una lista o subconsultaWHERE country IN ('USA', 'UK')
BETWEENVerificar si un valor específico está en el rango de valoresWHERE rating BETWEEN 3 AND 5