consulta de seleccion
La selección de registros se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Este conjunto de registros es modificable.
Cláusula SELECT
La cláusula SELECT especifica los datos a recuperar:
nombres de los camposque contienen los datos a consultar, expresiones a calcular por SQL cuando efectúa la consulta, o un asterisco (*) para seleccionar todos los campos de una tabla.
Si se incluye más de un campo, éstos se recuperan en el orden enumerado.
expresión_columna puede ser un simple nombre de campo
(por ejemplo MATRICULA). Expresiones más complejas pueden incluir operaciones matemáticas o demanipulación de caracteres
(por ejemplo APELLIDOS + + NOMBRE).
Las expresiones de columnas deben ir separadas por comas (por ejemplo APELLIDOS, NOMBRE, DNI, DOMICILIO).
Los nombres de campos pueden ir precedidos por el nombre de la tabla o su alias. Por ejemplo ALUMNOS.MATRICULA o A.MATRICULA donde A es el alias para la tabla ALUMNOS.
El predicado DISTINCT, si se incluye, debe preceder la primeraexpresión de columna. Este operador elimina las filas o registros duplicados del resultado de la consulta. Por ejemplo la sentencia:
SELECT DISTINCT PROVINCIA FROM ALUMNOS
mostrará las distintas provincias de las que proceden los alumnos del Centro.
Uso de Indices de las tablas
Si deseamos que la sentecia SQL utilice un índice para mostrar los resultados se puede utilizar la palabrareservada 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 ... FROMTabla (INDEX=0) ...
Consultas con Predicado
El predicado se incluye entre la claúsula 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
DISTINCROW
Omite losregistros 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. No es conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tablapara averiguar los campos que contiene, es mucho más rápido indicar
el listado de campos deseados.
Ejemplo:
SELECT ALL FROM Empleados;
SELECT * FROM Empleados;
TOP:
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.
Ejemplo:
Supongamos que queremos recuperar los nombres de los 25
primerosestudiantes del curso 2000:
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 Estudiantes .El predicado TOP no elige entre valores iguales .Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al finalde 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 Integer sin signo.TOP no afecta a la posible actualización de la consulta.
DISTINCT:
Omite los registros que...
Regístrate para leer el documento completo.