Explicamos detalladamente la sentencia select, la más utilizada en acceso a base de datos.
Para recuperar información de las base de datos, utilizamos la sentencia select, que tiene la siguiente sintaxis:
select [ALL|DISTINCT]
[expre_column1, expre_colum2, ..., expre_column | *]
FROM [nombre_tabla1, nombre_tabla2, ..., nombre_tablan]
[WHERE condicion]
[ORDER BY expre_colum [DESC|ASC] [,expre_colum [DESC|ASC]]...];
Donde expre_colum puede ser una columna de una tabla, una constante, una o varias funciones, incluso expresiones aritméticas.
La única cláusula obligatoria es la cláusula FROM, las demás son opcionales todas.
FROM
Nos indica la tabla o lista de tablas de las que vamos a recuperar la información.
Si un usuario de la base de datos no es el propietario de la tabla, tendrá que especificar el nombre de usuario delante de la tabla, como se ve en el siguiente ejemplo.
select * from profesor.alumnos;
Donde profesor seria el nombre de usuario y alumnos el nombre de la tabla.
También podemos darles nombres distintos o más cortos a las tablas mediante lo que se donomina alias.
select a.nombre, a.edad from alumnos a;
La tabla alumnos toma el alias a.
WHERE
Nos devuelve las filas que cumplen la condición expresada. El formato de la condición es el siguiente:
expresión operador expresión.
Podemos construir condiciones múltiples usando los operadores lógicos AND OR y NOT, así mismo podemos utilizar los parentesis para forzar el orden de ejecución de las expresiones.
Un ejemplo de utilizacion del where muy simple es la siguiente:
select nombre from alumno where nota>7 and edad<7;
Esta sentencia solo nos mostraría el nombre de los alumnos que cumplieran las dos condiciones expresadas.
ALL
Con esta cláusula recuperamos todas las filas aunque tengamos repetidas, es la cláusula por defecto.
DISTINCT
Es la contraria que la anterior, solo nos recupera las filas que no están repetidas.
ORDER BY
Esta cláusula nos especifica el criterio de ordenación del resultado obtenido en la consulta. ASC nos especifica una ordenación ascendente y DES descendente.
Podemos anidar criterios siendo el situado más a la izquierda el principal. Ponemos un ejemplo para verlo más claro:
select * from alumnos oder by nombre, curso desc;
Esta sentencia nos mostraria todos los datos de los alumnos ordenados primero por nombre ascendente y por curso descendente.
select [ALL|DISTINCT]
[expre_column1, expre_colum2, ..., expre_column | *]
FROM [nombre_tabla1, nombre_tabla2, ..., nombre_tablan]
[WHERE condicion]
[ORDER BY expre_colum [DESC|ASC] [,expre_colum [DESC|ASC]]...];
Donde expre_colum puede ser una columna de una tabla, una constante, una o varias funciones, incluso expresiones aritméticas.
La única cláusula obligatoria es la cláusula FROM, las demás son opcionales todas.
FROM
Nos indica la tabla o lista de tablas de las que vamos a recuperar la información.
Si un usuario de la base de datos no es el propietario de la tabla, tendrá que especificar el nombre de usuario delante de la tabla, como se ve en el siguiente ejemplo.
select * from profesor.alumnos;
Donde profesor seria el nombre de usuario y alumnos el nombre de la tabla.
También podemos darles nombres distintos o más cortos a las tablas mediante lo que se donomina alias.
select a.nombre, a.edad from alumnos a;
La tabla alumnos toma el alias a.
WHERE
Nos devuelve las filas que cumplen la condición expresada. El formato de la condición es el siguiente:
expresión operador expresión.
Podemos construir condiciones múltiples usando los operadores lógicos AND OR y NOT, así mismo podemos utilizar los parentesis para forzar el orden de ejecución de las expresiones.
Un ejemplo de utilizacion del where muy simple es la siguiente:
select nombre from alumno where nota>7 and edad<7;
Esta sentencia solo nos mostraría el nombre de los alumnos que cumplieran las dos condiciones expresadas.
ALL
Con esta cláusula recuperamos todas las filas aunque tengamos repetidas, es la cláusula por defecto.
DISTINCT
Es la contraria que la anterior, solo nos recupera las filas que no están repetidas.
ORDER BY
Esta cláusula nos especifica el criterio de ordenación del resultado obtenido en la consulta. ASC nos especifica una ordenación ascendente y DES descendente.
Podemos anidar criterios siendo el situado más a la izquierda el principal. Ponemos un ejemplo para verlo más claro:
select * from alumnos oder by nombre, curso desc;
Esta sentencia nos mostraria todos los datos de los alumnos ordenados primero por nombre ascendente y por curso descendente.