Consultas de selección

Las consultas de selección 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.

2.1. Consultas básicas 

La sintaxis básica de una consulta de selección es la siguiente: 

Forma básica:

SELECT campos FROM Tabla; 

En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: 

SELECT `id`, `nombre`, `apellido1` FROM `persona`; 

Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla clientes.

2.2. Ordenar los registros

Se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la cláusula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar: 

Por ejemplo:

SELECT `id`, `nombre`, `apellido1` FROM `persona` ORDER BY `id`; 

Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes ordenados por el campo Nombre. 

Se pueden ordenar los registros por más de un campo: 

SELECT `id`, `nombre`, `apellido1` FROM `persona` ORDER BY `id`, `nombre`; 

Y se puede especificar el orden de los registros: ascendente mediante la cláusula (ASC -se toma este valor por defecto) ó descendente (DESC): 

SELECT `id`, `nombre`, `apellido1` FROM `persona` ORDER BY `id`, `nombre` ASC;

2.3. Consultas con predicado

El predicado se incluye entre la clausula y el primer nombre del campo a recuperar, los posibles predicados son: 

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 

DISTINCTROW Omite los registros duplicados basándose en la totalidad del registro y no sólo en los campos seleccionados

2.3.1 Predicado: 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 tabla para averiguar los campos que contiene, es mucho más 

Rápido indicar el listado de campos deseados. 

Por ejemplo:

SELECT ALL FROM persona; 

SELECT * FROM persona;

2.3.2 Predicado: TOP /LIMIT

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. 

Sintaxis MySQL:

SELECT column_name(s)FROM table_name LIMIT number; 

Sintaxis Oracle: 

SELECT column_name(s)FROM table_name WHERE ROWNUM <= number;

Por ejemplo (en MySQL): 

SELECT * FROM persona LIMIT 1;

2.3.3 Predicado: DISTINCT

Omite 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. 

Sintaxis: 

SELECT DISTINCT column_name,column_name FROM table_name; 

Por ejemplo: 

SELECT DISTINCT `nombre` FROM `persona`; 

Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente.

2.3.5 Predicado: DISTINCTROW

Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior que sólo se fijaba en el contenido de los campos seleccionados, este hace en el contenido del registro completo independientemente de los campo indicados en la cláusula SELECT. 

Sintaxis:

SELECT DISTINCTROW column_name FROM table_name; 

Por ejemplo: 

SELECT DISTINCTROW nombre FROM persona;



Comentarios

Entradas populares de este blog

CURSO SQL/PLSQL Básico - PRÁCTICA 5

Criterios de selección

Agrupamientos de registros