Usando consultas SQL no MS-Access


A Structured Query Language - SQL é uma linguagem muito usada na consulta, atualização e gerenciamento de banco de dados relacionais. Cada consulta criada no MS-Access tem uma instrução SQL associada que define as ações daquela consulta.

Normalmente é mais conveniente usar a grade QBE e as ferramentas gráficas de estruturação de consulta do Access para criar e modificar consultas. Mas se você está familiarizado com SQL, pode usar instruções SQL para:

Consultas União

É uma consulta específica SQL que cria um resultado contendo dados de todos os registros especificados em duas ou mais tabelas. Pelo contrário, uma consulta baseada em uma associação cria um dynaset contendo dados somente de registros cujos campos relacionados encontram uma condição especificada.

Por exemplo, uma consulta união da tabela clientes e data da tabela fornecedores resulta um Resultado que contém todos os registros especificados em ambas as tabelas, a de clientes e a de fornecedores.

A consulta união a seguir, consiste de duas instruções SELECT que retornam os nomes de empresa e cidades que estejam tanto na tabela Fornecedores como na tabela Clientes, e sejam do Brasil.

A seguinte consulta união consiste de duas instruções SQL SELECT que retornam os nomes de companhias e cidades que estão nas tabelas Fornecedores e Clientes e são do Brasil.

SELECT [Nome da empresa], [Cidade]

FROM [Fornecedores]

WHERE Pais="Brasil"

UNION SELECT [Nome da empresa], [Cidade]

FROM [Clientes]

WHERE Pais="Brasil";

A seguinte consulta união seleciona o nome de todas as empresas e cidades que estejam nas tabelas Fornecedores e Clientes e classifica alfabeticamente os dados por cidade.

SELECT [Nome da empresa], [Cidade]

FROM [Fornecedores]

UNION SELECT [Nome da empresa], [Cidade]

FROM [Clientes]

ORDER BY [Fornecedores], [Cidade];

A consulta união a seguir renomeia o campo "Nome da empresa" para "Nome do cliente/fornecedor" na saída da consulta;

SELECT [Nome da empresa] AS [Nome do cliente/fornecedor], [Cidade]

FROM [Fornecedores]

UNION SELECT [Nome da empresa] AS [Nome do cliente/fornecedor], [Cidade]

FROM [Clientes];

A consulta união a seguir utiliza a instrução UNION ALL para recuperar registros duplicados:

SELECT [Nome da empresa], [Cidade]

FROM [Fornecedores]

UNION ALL SELECT [Nome da empresa], [Cidade]

FROM [Clientes];

Consulta Definição de Dados

Este tipo de consulta cria uma tabela sem adicionar nenhum registro a ela, é interessante quando precisamos criar tabelas temporárias. Veja o exemplo:

CREATE TABLE [SÓCIOS]

(Código COUNTER,

Nome TEXT (50),

Rua TEXT (50),

(CONSTRAINT CódigoDoSócio PRIMARY KEY ([Código]));

No exemplo acima é criada uma tabela Sócios com os seguintes campos:

Campo Tipo Tamanho
Código Contador 4 bytes
Nome Texto 50
Rua Texto 50

A palavra chave CONSTRAINT indica que em seguida vem o nome de um índice chamado CódigoDoSócio, entre parêntesis vem o nome do campo que faz parte deste índice e opcionalmente a clausula PRIMARY KEY para indicar a chave primária da tabela.

Tipos de dados do SQL compatíveis com o Access

Tipo de dado Tamanho Descrição
BINARY 1 byte Para consultas em tabelas anexadas em produtos de banco de dados que definem um tipo de dados Binário. O Microsoft Access não usa o tipo de dados Binário.
BIT 1 byte Valores Sim e Não e campos que contém apenas um entre dois valores.
BYTE 1 byte Um valor inteiro entre 0 e 255.
COUNTER 4 bytes Um número incrementado automaticamente pelo Microsoft Access quando um novo registro é adicionado a uma tabela. No Jet database engine, o tipo de dado para este valor é Long.
CURRENCY 8 bytes Um inteiro dimensionado entre -922.337.203.685.477,5808 e 922.337.203.685.477,5807.

 

Tipo de dado Tamanho Descrição
DATETIME(Consulte DOUBLE) 8 bytes Um valor data ou hora entre os anos 100 e 9999.
SINGLE 4 bytes Um valor ponto flutuante de precisão simples com um intervalo de -3,402823E38 a -1,401298E-45 para valores negativos, 1,401298E-45 a 3,402823E38 para valores positivos e 0.
DOUBLE 8 bytes Um valor ponto flutuante de precisão dupla com um intervalo de -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos, 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos e 0.
SHORT 2 bytes Um inteiro curto entre -32.768 e 32.767
LONG 4 bytes Um inteiro longo entre -2.147.483.648 e 2.147.483.647.
LONGTEXT 1 byte por caracter Zero até um máximo de 1,2 gigabytes. (Consulte Text.)
LONGBINARY Como definido Zero a um máximo de aproximadamente 1 gigabyte. Usado para objetos OLE.
TEXT 1 byte por caracter Zero a 255 caracteres.

Criar sub-consultas

Para criar uma sub-consulta, você usa a grade QBE, mas insere uma instrução SQL SELECT como critério.

Diferenças entre consultas Ação e consultas seleção

Quando se cria uma consulta, o MS-Access cria uma consulta seleção, a não ser que se escolha um tipo diferente no menu consulta.

Quando uma consulta seleção é executada, o MS-Access exibe o Dynaset, os registros recuperados de suas tabelas. Pode-se, então, visualizar o dynaset e fazer alterações em seus dados. Entretanto, ao fazer alterações, elas são inseridas registro a registro.

Caso haja um grande número de alterações similares, você pode poupar tempo usando uma consulta ação. Uma consulta ação faz quaisquer alterações em apenas uma operação. Por exemplo, caso deseje excluir todos os produtos que tenham sido descontinuados, você pode executar uma consulta ação que remova todos esses produtos.

Para se garantir que alterações indesejadas não sejam feitas se você executar inadvertidamente uma consulta ação, o MS-Access exibe na janela Banco de dados, um ícone especial para identificar as quatro consultas ação.

Consulta Anexação

Consulta Atualização

Consulta Criação de Tabela

Consulta Exclusão

Alterando dados com consultas Ação

  • Consultas Ação:
  • Com as consultas ação, você pode criar novas tabelas ou alterar os dados de tabelas já existentes. Todas as Consultas Ação são feitas com base numa consulta seleção, então para se criar qualquer tipo de consulta ação, devemos criar as consultas seleção que nos trarão os dados que desejamos manipular pelas consultas ação, podendo assim atualizar, excluir, exportar e anexar dados.

    O MS-Access proporciona quatro tipos de consultas ação.

  • Consulta criação de tabela:
  • Cria uma nova tabela a partir de outra ou parte de outra tabela com um novo nome definido pelo usuário e adicionando os registros especificados pelo critério.

  • Consulta exclusão:
  • Exclui os registros de uma ou mais tabelas que atendem a um critério.

  • Consulta anexação:
  • Adiciona uma grupo de registros de uma ou mais Tabelas para outra ou mais tabelas.

  • Consulta atualização:
  • Altera ou dados em um grupo de registros de uma ou mais tabelas.

    Consulta Criação de Tabela:

  • Após criarmos a consulta seleção com os campos desejados, clique no botão da consulta criação de tabela , em seguida forneça o nome da tabela a ser criada. Se for necessário, você pode criar esta tabela em outro banco de dados, clicando no botão outro banco de dados e forneça o seu nome. Depois pressione o botão Ok.

    Quando você clicar no botão Executar, o MS-Access informa quantas linhas ( registros ) serão incluídos na nova tabela, nesta mensagem, você pode confirmar a criação ou cancelar a inclusão.

    Se você clicar no botão Modo Folha de Dados, a consulta seleção será executada e você verá os registros que vão para a nova tabela.

  • Consulta exclusão:

  • Quando desejamos excluir vários dados de uma tabela com dados alguns dados em comum, nós devemos criar uma consulta seleção para exibir estes registros e depois transformará numa consulta exclusão.

    Quando você clicar no botão Executar, o MS-Access informa quantas linhas ( registros ) serão excluídas da tabela, nesta mensagem, você pode confirmar a eliminação ou não.

    Se você clicar no botão Modo Folha de Dados, a consulta seleção será executada e você verá os registros que vão excluídos.

  • Consulta Atualização:

  • A consulta atualização atualiza os dados de um ou mais campos, cria-se a consulta seleção com os campos desejado e depois pressione o botão da consulta atualização e na linha atualizar para você coloca o valor ou expressão que irá atualizar o campo.
  • Consulta anexação:

  • A consulta anexação nos permite anexar dados de uma tabela a outra. Para isso devemos criar uma consulta seleção com os campos que desejamos anexar, e depois clicamos no botão da consulta anexação e está pronta a consulta anexação.

    Quando você clicar no botão Executar, o MS-Access informa quantas linhas ( registros ) serão anexadas da tabela, nesta mensagem, você pode confirmar a anexação ou não.

    Se você clicar no botão Modo Folha de Dados, a consulta seleção será executada e você verá os registros que vão ser anexados.

    É isto aí...


  •