Recuperar información en MySQL

Para recuperar y mostrar información de las tablas, utilice la instrucción SELECT. Le permite recuperar información de forma general o específica. Puede mostrar todos los contenidos de una tabla:

SELECT * FROM president;

O seleccionar una columna concreta de una fila concreta;

SELECT birth FROM predident WHERE last_name='Eisenhower';

La instrucción SELECT dispone de varias cláusulas que puede combinar para recuperar la información que le interese. Estas cláusulas varían de complejidad.
Una sintaxis simplificada de la instrucción SELECT es la siguiente:

SELECT qué recuperar
FROM tabla o tablas
WHERE condiciones que deben cumplir los datos;

Para escribir una instrucción SELECT, especifique lo que desea recuperar junto con varias cláusulas opcionales. Las cláusulas que acabamos de mostrar (FROM y WHERE) son las más habituales, aunque también puede especificar otras como GROUP BY, ORDER BY y LIMIT.
Recuerde que SQL es un lenguaje de formato libre, de modo que al crear sus propias instrucciones SELECT no es necesario que los saltos de línea coincidan con los de estos ejemplos.

La cláusula FROM suele estar presente, aunque no es obligatorio si no tiene que hacer referencia a tablas. Por ejemplo, la siguiente consulta muestra los valores de varias expresiones. Se pueden calcular sin hacer referencia a los contenidos de ninguna tabla, por lo que no se necesita ninguna cláusula FROM:

mysql> SELECT 2+2, 'Hello, world', VERSION();

2+2 Hello, world VERSION()
4 Hello, world 5.0.60-log

Al utilizar una cláusula FROM para especificar la tabla de la que recuperar datos, también debe indicar qué columnas quiere ver. La forma más genérica de SELECT utiliza * como especificador de columnas, y equivale a todas las columnas. La siguiente consulta recupera todas las columnas de la tabla student y las muestra:

mysql> SELECT * FROM student;

name sex student_id
Megan F 1
Joseph M 2
Kyle M 3
Katie F 4

...

Las columnas se muestran en el mismo orden que MySQL las almacena en la base de datos. Es el mismo orden en que se enumeran al ejecutar una instrucción DESCRIBE student. Los puntos suspensivos al final del ejemplo indican que se devuelvan más filas.
Puede indicar explícitamente el nombre de las columnas que desee ver. Para seleccionar simplemente nombres de alumnos utilice lo siguiente:

mysql> SELECT name FROM student;

name
Megan
Joseph
Kyle
Katie
...

Si desea indicar más de un nombre, debe separarlos mediante comas. La siguiente instrucción equivale a SELECT * FROM student, pero hace referencia explícitamente a todas las columnas:

mysql> SELECT name, sex, student_id FROM student;

name sex student_id
Megan F 1
Joseph M 2
Kyle M 3
Katie F 4

...

Puede hacer referencia a las columnas en cualquier orden:

SELECT name, student_id FROM student;
SELECT student_id, name FROM student;

Incluso puede hacer referencia a una columna más de una vez, aunque esto es algo que no tiene mucho sentido.
También puede seleccionar columnas de varias tablas, lo que se denomina combinación entre tablas.
En MySQL, los nombres de columna no distinguen entre mayúsculas y minúsculas, de modo que las siguientes consultan recuperan la misma información:

SELECT name, student_id FROM student;
SELECT NAME, STUDENT_ID FROM student;
SELECT nAmE, sTuDeNt_Id FROM student;

Por otra parte, los nombres de tablas y bases de datos pueden distinguir entre mayúsculas y minúsculas. Depende del sistema de archivos utilizado en el servidor y de la configuración de MySQL. En Windows, los nombres de archivo no realizan esta distinción. En sistemas Unix, los nombres de archivos suelen hacerla. La excepción se produce en Mac OS X, que ofrece sistemas de archivo HFS+ y UFS. HFS+ es el predeterminado y utiliza nombres de archivo que no distinguen entre mayúsculas y minúsculas.
Si desea que MySQL no discrimine los nombres de bases de datos y tablas, puede configurarlo de este modo.

Comparte