Aspectos básicos de las consultas

Una consulta es una solicitud de datos almacenados en SQL Server. Una consulta se puede emitir de varias formas:

  • Un usuario de MS Query o de Microsoft Access puede usar una interfaz gráfica de usuario (GUI) para elegir los datos que desea ver de una o varias tablas de SQL Server.

  • Un usuario de SQL Server Management Studio o de osql puede emitir una instrucción SELECT.

  • Una aplicación cliente o de nivel intermedio, como una aplicación de Microsoft Visual Basic, puede asignar los datos de una tabla de SQL Server a un control enlazado, como una cuadrícula.

A pesar de que las consultas interactúan con el usuario de diferentes formas, todas realizan la misma tarea: presentan el conjunto de resultados de una instrucción SELECT al usuario. Incluso si el usuario no especifica nunca una instrucción SELECT, como suele suceder con las herramientas gráficas como el Diseñador de consultas de Visual Studio, el software de cliente transforma la consulta de cada usuario en una instrucción SELECT que se envía a SQL Server.

La instrucción SELECT recupera los datos de SQL Server y los devuelve al usuario en uno o más conjuntos de resultados. Un conjunto de resultados es una organización tabular de los datos obtenidos de SELECT. Al igual que una tabla SQL, el conjunto de resultados se compone de columnas y filas.

La sintaxis completa de la instrucción SELECT es compleja, aunque la mayor parte de las instrucciones SELECT describen las cuatro propiedades principales de un conjunto de resultados:

  • El número y los atributos de las columnas del conjunto de resultados. Los siguientes atributos se definen para cada columna del conjunto de resultados:

    • El tipo de datos de la columna.

    • El tamaño de la columna y, para las columnas numéricas, la precisión y escala.

    • El origen del valor de los datos devueltos en la columna.

  • Las tablas cuyos datos del conjunto de resultados se recuperan y cualquier relación lógica entre las tablas.

  • Las condiciones que deben cumplir las filas de las tablas de origen para satisfacer los requisitos de la instrucción SELECT. Las filas que no cumplen las condiciones se omiten.

  • La secuencia en la que se ordenan las filas del conjunto de resultados.

La siguiente instrucción SELECT busca el Id. del producto, el nombre y el precio de lista de cualquier producto cuyo precio unitario sea superior a $40:

SELECT ProductID, Name, ListPrice
FROM Production.Product
WHERE ListPrice > $40
ORDER BY ListPrice ASC

Los nombres de columna enumerados después de la palabra clave SELECT (ProductID, Name y ListPrice) forman la lista de selección. Esta lista especifica que el conjunto de resultados tiene tres columnas y cada columna tiene el nombre, el tipo de datos y el tamaño de la columna asociada de la tabla Product. Puesto que la cláusula FROM especifica sólo una tabla base, todos los nombres de columna de la instrucción SELECT hacen referencia a las columnas de esa tabla.

La cláusula FROM muestra la tabla Product como la única tabla de la que se van a recuperar los datos.

La cláusula WHERE especifica la condición de que las únicas filas de la tabla Product que se pueden utilizar en esta instrucción SELECT son las filas en las que el valor de la columna ListPrice es superior a $40.

La cláusula ORDER BY especifica que el conjunto de resultados debe ordenarse en secuencia ascendente (ASC) según el valor de la columna ListPrice.