Este é um conjunto de artigos sobre o SQL do Access. Este artigo descreve como escrever uma cláusula FROM e usa exemplos para ilustrar várias técnicas que você pode usar em uma cláusula FROM.
Em uma instrução SELECT, especifique as fontes de dados na cláusula FROM. A cláusula FROM também pode conter uma operação JOIN. Use uma operação JOIN para associar e combinar dados de duas fontes de dados, como duas tabelas, ou uma tabela e uma consulta.
Para obter uma visão geral do SQL do Access, confira o artigo SQL do Access: conceitos, vocabulário e sintaxe básicos.
Neste artigo
Especificar fontes de dados
Em uma instrução SELECT, a cláusula FROM especifica as tabelas ou consultas que contêm os dados que a cláusula SELECT usará.
Suponha que você deseja saber o número de telefone de um cliente específico. Pressupondo que a tabela que contém o campo que armazena esses dados chama-se tblCustomer, a cláusula FROM teria o seguinte aspecto:
FROM tblCustomer
Você pode usar colchetes para envolver o nome. Caso o nome não contenha espaços ou caracteres especiais (como sinais de pontuação), os colchetes são opcionais. Se o nome contiver espaços ou caracteres especiais, você deverá usar os colchetes.
Dica: Um nome que contém espaços é mais fácil de ler e pode economizar tempo na criação de formulários e relatórios, mas pode fazer com que você digite mais ao escrever instruções SQL. Leve em conta esse fato ao nomear objetos no seu banco de dados do Access.
Use nomes substitutos para as fontes de dados
Você pode usar um nome diferente para fazer referência a uma tabela em uma instrução SELECT, usando um alias de tabela em sua cláusula FROM. Um alias de tabela é um nome que você atribui a uma fonte de dados em uma consulta ao usar uma expressão como uma fonte de dados ou para facilitar a leitura ou a digitação da instrução SQL. Isso pode ser especialmente útil se o nome da fonte de dados for grande ou difícil de digitar, especialmente se você tiver vários campos que têm o mesmo nome de tabelas diferentes.
Por exemplo, se quiser selecionar dados de dois campos, ambos com o nome ID, um proveniente da tabela tblCustomer e o outro da tabela tblOrder, sua cláusula SELECT poderá ter o seguinte aspecto:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Usando aliases de tabela em sua cláusula FROM, você poderia facilitar a digitação da consulta. Sua cláusula FROM, com aliases de tabela, talvez tenha o seguinte aspecto:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Em seguida, você poderia usar esses aliases de tabelas na cláusula SELECT, assim:
SELECT [C].[ID], [O].[ID]
Observação: Quando você usa um alias de tabela, pode consultar a tabela em sua instrução SQL usando o alias ou o nome de tabela inteiro.
Juntar dados relacionados
Quando você precisar de uma forma de combinar os pares de registros de duas fontes de dados em registros únicos em um resultado de consulta, você poderá executar uma junção. Uma junção é uma operação de SQL que especifica como duas fontes de dados se relacionam e se os dados de uma fonte devem ser incluídos se não houver dados correspondentes da outra fonte.
Para combinar as informações de duas fontes de dados, execute uma operação de junção no campo que elas têm em comum. Quando os valores armazenados nesse campo corresponderem, os dados dos registros serão combinados nos resultados.
Além da combinação de dados, você também usa uma junção para especificar se deseja incluir os registros de qualquer tabela, caso não haja nenhum registro correspondente na tabela relacionada.
Por exemplo, vamos supor que você deseja usar dados de duas tabelas em uma consulta: tblCustomer e tblOrder. As duas tabelas têm um campo, CustomerID, que identifica um cliente. Cada registro na tabela tblCustomer pode ter um ou mais registros correspondentes na tabela tblOrder, e os valores correspondentes podem ser determinados por valores no campo CustomerID.
Se você quiser juntar as tabelas para que a consulta combine os registros das tabelas, excluindo registros de qualquer tabela, caso não haja nenhum registro correspondente na outra tabela, sua cláusula FROM poderá ter o seguinte aspecto (quebra de linha adicionada aqui para melhorar a legibilidade):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
No Access, as junções ocorrem na cláusula FROM de uma instrução SELECT. Existem dois tipos de junções: junções internas e as junções externas. As seções a seguir explicam esses dois tipos de junções.
Junções internas
As junções internas são o tipo de junção mais comum. Quando uma consulta com uma junção interna é executada, somente os registros que estão incluídos nos resultados da consulta são os registros em que um valor comum existe em ambas as tabelas unidas.
Uma junção interna tem a seguinte sintaxe (quebra de linha adicionada aqui para melhorar a legibilidade):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
A tabela a seguir descreve as várias partes de uma operação INNER JOIN.
Parte |
Descrição |
tabela1, tabela2 |
Os nomes das tabelas das quais os registros são combinados. |
campo1, campo2 |
Os nomes dos campos que são unidos. Se não forem numéricos, os campos deverão ser do mesmo tipo de dados e conter dados da mesma natureza, mas não precisam ter o mesmo nome. |
oprcomp |
Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>". |
Junções externas
As junções externas são semelhantes às junções internas porque dizem a uma consulta como combinar informações de duas fontes. Eles são diferentes porque também especificam se devem incluir dados em que nenhum valor comum existe. As junções externas são direcionais: você pode especificar se deve incluir todos os registros da primeira fonte de dados especificada na junção (chamada de junção à esquerda) ou incluir todos os registros da segunda fonte de dados na junção (chamada de junção à direita).
Uma junção externa tem a seguinte sintaxe:
FROM table1 [ LEFT | RIGHT ] TABELA JOIN2
ON table1.field1compopr table2.field2A tabela a seguir descreve as diferentes partes das operações JOIN LEFT e RIGHT JOIN.
Parte |
Descrição |
tabela1, tabela2 |
Os nomes das tabelas das quais os registros são combinados. |
campo1, campo2 |
Os nomes dos campos que são unidos. Os campos devem ser do mesmo tipo de dados e conter o mesmo tipo de dados, mas não precisam ter o mesmo nome. |
oprcomp |
Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>". |
Para obter mais informações sobre junções, confira o artigo Juntar tabelas e consultas.