English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás a seleccionar registros específicos de una tabla utilizando SQL.
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.
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 | +--------+--------------+------------+--------+---------+
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.
SQL admite muchos operadores que se pueden usar en la cláusula WHERE, la tabla a continuación resume los operadores más importantes.
Operador | Descripción | Ejemplos en línea |
---|---|---|
= | Igual | WHERE id = 2 |
> | Mejor que... | WHERE age > 30 |
< | Menos | WHERE age < 18 |
>= | Mayor o igual | WHERE rating >= 4 |
<= | Menor o igual | WHERE price <= 100 |
LIKE | Coincidencia de modo simple | WHERE name LIKE 'Dav' |
IN | Verificar si un valor específico coincide con cualquier valor de una lista o subconsulta | WHERE country IN ('USA', 'UK') |
BETWEEN | Verificar si un valor específico está en el rango de valores | WHERE rating BETWEEN 3 AND 5 |