Kodokon kodokon.com

SELECT y WHERE: leer y filtrar datos

Aprende a elegir columnas con SELECT, filtrar filas con WHERE y buscar patrones con LIKE.

8 min · 3 preguntas

Abrir esta lección en Kodokon

Si empiezas una nueva sesión, ejecuta primero de nuevo el script CREATE TABLE + INSERT de la lección 1. La consulta SELECT lee datos sin modificarlos nunca. Después de la palabra SELECT, enumeras las columnas que quieres mostrar: esto se llama proyección (elegir las columnas). Después de FROM, indicas la tabla que quieres leer.

SQL
SELECT title, price FROM books;
Proyección: solo las columnas title y price

Para conservar solo ciertas filas, añade una cláusula WHERE seguida de una condición. Una condición compara una columna con un valor mediante un operador: = (igual), <> o != (distinto), < (menor que), > (mayor que), <= y >=. Recordatorio: los valores de texto se escriben entre comillas simples.

SQL
SELECT * FROM books WHERE genre = 'sf';

SELECT title, year FROM books WHERE year < 1950;
La primera devuelve 4 filas, la segunda también 4

Puedes combinar varias condiciones: AND exige que ambas sean verdaderas, OR exige al menos una, y NOT invierte una condición. Cuando tengas dudas sobre la precedencia, añade paréntesis.

SQL
SELECT title, price FROM books
WHERE genre = 'sf' AND price < 8;

SELECT title FROM books
WHERE genre = 'conte' OR genre = 'aventure';
AND: 2 filas (1984, Les Robots); OR: 3 filas

Por último, el operador LIKE compara un texto con un patrón: el comodín % representa cualquier secuencia de caracteres (incluso vacía), y _ representa exactamente un carácter. Por ejemplo, 'D%' significa "empieza por D" y '%an%' significa "contiene an".

SQL
SELECT title FROM books WHERE author LIKE 'A%';

SELECT title FROM books WHERE title LIKE 'd%';

SELECT author FROM books WHERE author LIKE 'V_rne';
Autores que empiezan por A, títulos que empiezan por d, luego Verne

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Qué consulta muestra solo los títulos de los libros?
    • SELECT * FROM books;
    • SELECT title FROM books;
    • SELECT books FROM title;
  2. ¿Qué devuelve la condición WHERE price < 7?
    • Las filas cuyo precio es estrictamente menor que 7
    • Las filas cuyo precio es exactamente 7
    • Las primeras 7 filas de la tabla
  3. ¿Con qué coincide el patrón LIKE 'D%'?
    • Textos que contienen la letra D
    • Textos que terminan en D
    • Textos que empiezan por D