English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C
La cláusula WHERE no solo se puede usar en sentencias SELECT, sino también en UPDATE, DELETE, etcétera.
A continuación, se muestra la sintaxis general para leer datos de la base de datos utilizando la cláusula WHERE en una sentencia SELECT:
SELECT columna1, columna2, columnaN FROM nombre_de_tabla WHERE [condición1]
Podemos usar operadores de comparación o operadores lógicos en la cláusula WHERE, por ejemplo >, <, =, LIKE, NOT, etcétera.
El contenido del archivo COMPANY.SQL es el siguiente:
-- Este es el archivo para crear la tabla COMPANY y llenarla con 7 registros. -- Sólo copie y pegue en el prompt de psql. DROP TABLE COMPANY; CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Noruega', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
Crear la tabla COMPANY, el contenido de los datos es el siguiente:
w3codeboxdb# select * from COMPANY; id | name | age | dirección | salario ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Noruega | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 filas)
En los siguientes ejemplos, utilizamos operadores lógicos para leer los datos de la tabla.
Encontrar EDAD (edad) El campo es mayor o igual que 25y SALARIO (salario) El campo es mayor o igual que 65Los datos de 000:
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; id | name | age | dirección | salario ----+-------+-----+------------+-------- 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (2 filas)
Encontrar EDAD (edad) El campo es mayor o igual que 25o SALARIO (salario) El campo es mayor o igual que 65Los datos de 000:
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000; id | name | age | dirección | salario ----+-------+-----+-------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (4 filas)
Encontrar en la tabla de la empresa EDAD (edad) Registros en los que el campo no está vacío:
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE IS NOT NULL; id | nombre | edad | dirección | salario ----+-------+-----+------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Noruega | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 (7 filas)
Encontrar en la tabla COMPANY NAME (nombre) Los datos que comienzan con Pa en el campo:
w3codeboxdb=# SELECT * FROM COMPANY WHERE NOMBRE LIKE 'Pa%'; id | nombre | edad | dirección | salario ----+------+-----+-----------+-------- 1 | Paul | 32 | California| 20000
La siguiente consulta SELECT enumera EDAD (edad) Campo es 25 o 27 Datos:
w3codeboxdb=# SELECT * FROM COMPANY WHERE EDAD IN ( 25, 27 ); id | nombre | edad | dirección | salario ----+-------+-----+------------+-------- 2 | Allen | 25 | Texas | 15000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (3 filas)
La siguiente consulta SELECT enumera EDAD (edad) Campo no es 25 o 27 Datos:
w3codeboxdb=# SELECT * FROM COMPANY WHERE EDAD NOT IN ( 25, 27 ); id | nombre | edad | dirección | salario ----+-------+-----+------------+-------- 1 | Paul | 32 | California | 20000 3 | Teddy | 23 | Noruega | 20000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 (4 filas)
La siguiente consulta SELECT enumera EDAD (edad) Campo en 25 a 27 Datos:
w3codeboxdb=# SELECT * FROM COMPANY WHERE EDAD BETWEEN 25 AND 27; id | nombre | edad | dirección | salario ----+-------+-----+------------+-------- 2 | Allen | 25 | Texas | 15000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (3 filas)
La siguiente consulta SELECT utiliza una subconsulta SQL, la subconsulta lee SALARIO (salario) Campo mayor que 65000 de los datos, luego a través de EXISTS El operador de comparación determina si se devuelven filas, si hay filas devueltas se leen todas las EDAD (edad) Campo.
w3codeboxdb=# SELECT EDAD FROM COMPANY WHERE EXISTS (SELECT EDAD FROM COMPANY WHERE SALARIO > 65000); edad ----- 32 25 23 25 27 22 24 (7 filas)
La siguiente consulta SELECT utiliza una subconsulta SQL, la subconsulta lee SALARIO (salario) Campo mayor que 65000 de EDAD (edad) Datos de campo, luego usar > Consulta con operador mayor que EDAD (edad) Datos de campo:
w3codeboxdb=# SELECT * FROM COMPANY WHERE EDAD > (SELECT EDAD FROM COMPANY WHERE SALARIO > 65000); id | nombre | edad | dirección | salario ----+------+-----+------------+-------- 1 | Paul | 32 | California | 20000