La sentencia SELECT permite obtener filas desde una tabla. La forma más sencilla es
SELECT * FROM autores;
Esto dice que se desea obtener todas las columnas, de todas las filas que hay en la tabla. El * indica ``todas las columnas''; en su lugar puede especificarse una lista de columnas separadas por comas.
| autor_id | nombre | nacionalidad | fecha de nacimiento | institucion_id |
|---|---|---|---|---|
| 1 | Edgser Dijkstra | Danés | 1930-05-11 | 2 |
| 2 | Niklaus Wirth | Suizo | 1934-02-15 | 1 |
Además es posible indicar que se desea sólo algunas de las filas de la tabla. Esto se hace con la cláusula WHERE:
SELECT nombre, "fecha de nacimiento" FROM autores WHERE institucion_id = 1;
Esto pide el nombre y fecha de nacimiento de los autores que pertenecen a la institución a la que se le ha asignado el ID 1.
| nombre | fecha de nacimiento |
|---|---|
| Edgser Dijkstra | 1930-05-11 |
Observe que la cláusula WHERE puede llevar condiciones de cualquier tipo, por ejemplo:
WHERE
"fecha de nacimiento" >= '1960-01-01'
AND
institucion_id = 5
pide los autores
afiliados a la institución con el ID 5,
y que hayan nacido
desde el año 1960
en adelante.
Los operadores booleanos
AND, OR y NOT,
y los operadores de comparación
>, >=, =, <=, <, <>
están disponibles
para estas operaciones,
entre muchos otros.
También algunas expresiones más complejas,
como BETWEEN:
WHERE
"fecha de nacimiento"
BETWEEN
'1950-01-01'
AND
'1960-01-01'
Algunas de las cosas que no hemos visto son el agrupamiento de registros y la agregación; el uso ya no sólo de tablas en FROM, sino también de funciones y sub-consultas; el uso de expresiones más complejas en WHERE, como IN, ANY, ALL y EXISTS; el uso de un SELECT para alimentar un INSERT, las tablas agregadas implícitamente en FROM, el uso de UNION, INTERSECT y EXCEPT, y otras características.