Conceitos básicos sobre consultas

Uma consulta é uma solicitação para obter dados que estão armazenados no SQL Server. Uma consulta pode ser emitida usando vários formulários:

  • Um usuário do MS Query ou do Microsoft Access pode usar uma GUI (interface gráfica do usuário) para escolher os dados que quer consultar em uma ou mais tabelas do SQL Server.

  • Um usuário do SQL Server Management Studio ou do utilitário osql pode emitir uma instrução SELECT.

  • Um cliente ou aplicativo baseado em camada intermediária, como um aplicativo do Microsoft Visual Basic, podem mapear os dados de uma tabela do SQL Server em um controle associado, tal como uma grade.

Embora as consultas tenham vários modos de interação com um usuário, todas elas realizam a mesma tarefa: elas apresentam o conjunto de resultados de uma instrução SELECT para o usuário. Até mesmo se o usuário nunca especificar uma instrução SELECT, como normalmente é o caso com ferramentas gráficas, como o Visual Studio Query Designer, o software do cliente transforma cada consulta do usuário em uma instrução SELECT que é enviada ao SQL Server.

A instrução SELECT recupera dados de SQL Server e os retorna ao usuário em um ou mais conjuntos de resultados. Um conjunto de resultados é um arranjo tabular dos dados da instrução SELECT. Assim como em uma tabela de SQL, o conjunto de resultados é composto de colunas e linhas.

A sintaxe completa da instrução SELECT é complexa, mas a maioria das instruções SELECT descreve quatro propriedades principais de um conjunto de resultados:

  • O número e os atributos das colunas no conjunto de resultados. Os atributos a seguir devem ser definidos para cada coluna do conjunto de resultados:

    • O tipo de dados da coluna.

    • O tamanho da coluna e, para colunas numéricas, a precisão e a escala.

    • A fonte dos valores de dados retornada na coluna.

  • As tabelas das quais os dados do conjunto de resultados são recuperados e qualquer relação lógica entre as tabelas.

  • As condições que as linhas das tabelas de origem devem satisfazer para serem qualificadas para a instrução SELECT. São ignoradas linhas que não satisfaçam as condições.

  • A seqüência na qual as linhas do conjunto de resultados estão ordenadas.

A instrução SELECT a seguir encontra a ID, o nome e o preço de lista de qualquer produto cujo preço unitário exceda $40:

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

Os nomes de coluna listados depois da palavra-chave SELECT (ProductID, Name e ListPrice) formam a lista de seleção. Essa lista especifica que o conjunto de resultados tem três colunas e cada coluna tem o nome, tipo de dados e tamanho da coluna associada na tabela Product. Como a cláusula FROM especifica apenas uma tabela base, todos os nomes de coluna na instrução SELECT referem-se a colunas naquela tabela.

A cláusula FROM lista a tabela Product como a única tabela da qual os dados deverão ser recuperados.

A cláusula WHERE especifica a condição de que as únicas linhas na tabela Product que se qualificam para essa instrução SELECT sejam as linhas nas quais o valor da coluna ListPrice é maior que $40.

A cláusula ORDER BY especifica que o conjunto de resultados será ordenado em seqüência ascendente (ASC), com base no valor na coluna ListPrice.