Si deseamos que la sentecia SQL utilice un índice para mostrar los resultados se puede utilizar la palabra reservada INDEX de la siguiente forma:
SELECT ... FROM Tabla (INDEX=Indice) ...
Normalmente los motores de las bases de datos deciden que indice se debe utilizar para la consulta, para ello utilizan criterios de rendimiento y sobre todo los campos de búsqueda especificados en la cláusula WHERE. Si se desea forzar a no utilizar ningún índice utilizaremos la siguiente sintaxis:
SELECT ... FROM Tabla (INDEX=0) ...
El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, los posibles predicados son:
Predicado | Descripción |
ALL | Devuelve todos los campos de la tabla |
TOP | Devuelve un determinado número de registros de la tabla |
DISTINCT | Omite los registros cuyos campos seleccionados coincidan totalmente |
DISTINCTOW | Omite los registros duplicados basandose en la totalidad del registro y no sólo en los campos seleccionados. |
ALL
Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instrucción SQL y devuelve todos y cada uno de sus campos. No es conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho más rápido indicar el listado de campos deseados.
SELECT ALL
FROM
Empleados
SELECT *
FROM
Empleados
Devuelve un cierto número de registros que entran entre al principio o al final de un rango especificado por una cláusula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994:
SELECT TOP 25
Nombre, Apellido
FROM
Estudiantes
ORDER BY
Nota DESC
Si no se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de 25 registros de la tabla de Estudiantes. El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si la nota media número 25 y la 26 son iguales, la consulta devolverá 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cláusula ORDER BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso:
SELECT TOP 10 PERCENT
Nombre, Apellido
FROM
Estudiantes
ORDER BY
Nota DESC
El valor que va a continuación de TOP debe ser un entero sin signo. TOP no afecta a la posible actualización de la consulta.
DISTINCTOmite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos. Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen López en el campo Apellido, la siguiente instrucción SQL devuelve un único registro:
SELECT DISTINCT
Apellido
FROM
Empleados
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios.
1. Curso de MySQL con PHP El gestor de bases de datos MySQL se basa en el sistema de bases de datos... [10/01/11] |
1.754 | ||||
2. Introducción al lenguaje SQL Curso de programación, aprende el lenguaje sql que es un lenguaje de acceso a bases... [16/11/11] |
131 | ||||
3. SQL. Uso de la clausula WHERE Vamos a aprender a hacer algunas consultas en sql desde las básicas hasta algunas... [19/12/11] |
7 |