Como se ha visto en la sección anterior, es fácil recuperar
una tabla en su totalidad. Sólo debe omitir la cláusula
WHERE
en la sentencia
SELECT
. Pero, generalmente, no se desea ver
la tabla completa, especialmente cuando alcanza un gran
tamaño. En cambio, usualmente, se tiene interés en obtener
una respuesta para una consulta en particular, en cuyo caso se
especifican algunas restricciones para la información que se
traerá. A continuación se verán algunas consultas que
responden preguntas acerca de las mascotas.
Se pueden seleccionar sólo algunos registros de la tabla. Por ejemplo, si quisiera verificar los cambios realizados sobre la fecha de nacimiento de Bowser, seleccione el registro de Bowser de esta manera:
mysql> SELECT * FROM pet WHERE name = 'Bowser'; +--------+-------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +--------+-------+---------+------+------------+------------+ | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | +--------+-------+---------+------+------------+------------+
La salida confirma que el año fue correctamente registrado como 1989, ya no es 1979.
Normalmente, las comparaciones de cadenas no son case
sensitive, por eso puede escribir el nombre como
'bowser'
, 'BOWSER'
, etc.
El resultado de la consulta será el mismo.
Se pueden indicar condiciones a cumplir por cualquier columna,
no solamente por name
. Por ejemplo, si
quisiera saber qué animales han nacido luego de 1998,
necesita evaluar la columna birth
:
mysql> SELECT * FROM pet WHERE birth > '1998-1-1'; +----------+-------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+-------+ | Chirpy | Gwen | bird | f | 1998-09-11 | NULL | | Puffball | Diane | hamster | f | 1999-03-30 | NULL | +----------+-------+---------+------+------------+-------+
Se pueden combinar condiciones, por ejemplo para localizar perros hembra:
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f'; +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
La consulta anterior emplea el operador lógico
AND
. También existe el operador
OR
:
mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird'; +----------+-------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+-------+ | Chirpy | Gwen | bird | f | 1998-09-11 | NULL | | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL | | Slim | Benny | snake | m | 1996-04-29 | NULL | +----------+-------+---------+------+------------+-------+
AND
and OR
pueden ser
combinadas, si bien AND
tiene mayor
precedencia que OR
. Si utiliza ambos
operadores, es buena idea emplear paréntesis para indicar
explicitamente la forma en que las condiciones deben
agruparse:
mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm') -> OR (species = 'dog' AND sex = 'f'); +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.