Criar ou modificar tabelas ou índices utilizando uma consulta de definição de dados

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Em Microsoft Office Access 2007, é fácil criar e modificar tabelas, restrições e índices no modo Design e criar relações usando o janela Relações. Como alternativa, você pode criar e modificar essas mesmas entidades escrevendo consultas definição de dados no modo SQL.

Este artigo descreve as consultas definição de dados e demonstra como usá-las para criar tabelas, índices, restrições e relacionamentos. Este artigo também pode ajudar você a decidir quando usar uma consulta definição de dados.

O que você deseja fazer?

Saber quando usar uma consulta definição de dados

Criar ou modificar uma tabela

Criar um índice remissivo

Criar uma restrição ou um relacionamento

Saber quando usar uma consulta definição de dados

Diferente das outras consultas, uma consulta definição de dados não recupera os dados. A maioria das consultas usa a linguagem de manipulação de dados (DML), que compreende comandos SQL que especificam como os dados de objetos de banco de dados existentes são combinados e manipulados para produzir os resultados desejados. As consultas definição de dados usam a linguagem de definição de dados (DDL), que compreende comandos SQL que especificam a definição de objetos de banco de dados que armazena ou indexa dados e comandos SQL que controlam o acesso do usuário a objetos de banco de dados. No Office Access 2007, uma consulta definição de dados define ou altera a definição de um objeto de banco de dados.

Em geral, você deve usar as interfaces gráficas de design que o Office Access 2007 oferece (por exemplo, o modo Design e a janela Relacionamentos) para criar tabelas, restrições, índices e relacionamentos. Entretanto, se você tiver tabelas que exclui e recria regularmente, o uso dessas interfaces pode tornar o processo demorado. Ao usar a consulta definição de dados, você pode gravar a consulta uma vez e executá-la novamente quando necessário. Recomenda-se usar a consulta definição de dados somente se você estiver familiarizado com as instruções SQL e caso pretenda excluir e recriar regularmente tabelas, restrições ou índices específicos.

Importante : O uso das consultas definição de dados para modificar objetos de banco de dados pode ser arriscado, pois as ações não são acompanhadas por caixas de diálogo de confirmação. Se você cometer um erro, poderá perder dados ou inadvertidamente alterar o design de uma tabela. Tenha cuidado ao usar uma consulta definição de dados para modificar objetos no banco de dados. Se você não for responsável por manter o banco de dados que está usando, deverá consultar o administrador do banco de dados antes de executar uma consulta definição de dados. Além disso, é recomendável fazer uma cópia de backup de qualquer tabela na qual esteja prestes a executar essa consulta.

Início da Página

Criar ou modificar uma tabela

Para criar uma tabela, use o comando CREATE TABLE. A sintaxe desse comando é a seguinte:

CREATE TABLE table_name
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

Os únicos elementos necessários de um comando CREATE TABLE são o próprio comando CREATE TABLE, o nome da tabela, pelo menos um campo e o tipo de dados de cada campo. Vamos examinar um exemplo simples.

Suponhamos que você queira criar uma tabela para armazenar o nome, o ano e o preço dos carros usados que está pensando em comprar. Você permitirá até 30 caracteres para o nome e 4 caracteres para o ano. Para usar uma consulta definição de dados para criar a tabela, faça o seguinte:

Observação : Você deve primeiro habilitar o conteúdo do banco de dados para que uma consulta definição de dados seja executada.

  1. Na Barra de Mensagens, clique em Opções e, em seguida, clique em Habilitar este conteúdo.

  2. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  3. Feche a caixa de diálogo Mostrar Tabela.

  4. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  5. Digite a seguinte instrução SQL:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  6. Na guia Design, no grupo Resultados, clique em Executar.

Modificar uma tabela

Para modificar uma tabela, use o comando ALTER TABLE. Você pode usar o comando ALTER TABLE para adicionar, modificar ou soltar (remover) colunas ou restrições. A sintaxe do comando ALTER TABLE é a seguinte:

ALTER TABLE table_name predicate

onde predicate pode ser qualquer um dos seguintes elementos:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Suponhamos que você deseje adicionar um campo de texto de 10 caracteres para armazenar as informações sobre a condição de cada carro. Você pode fazer o seguinte:

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  4. Digite a seguinte instrução SQL:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  5. Na guia Design, no grupo Resultados, clique em Executar.

Início da Página

Criar um índice

Para criar um índice em uma tabela existente, use o comando CREATE INDEX. A sintaxe do comando CREATE INDEX é a seguinte:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Os únicos elementos necessários são o comando CREATE INDEX, o nome do índice, o argumento On, o nome da tabela que contém os campos que você deseja indexar e a lista de campos a serem incluídos no índice.

  • O argumento DESC faz com que o índice seja criado em ordem decrescente, podendo ser útil caso você execute freqüentemente consultas que procurem valores superiores no campo indexado ou que classifiquem o campo indexado em ordem decrescente. Por padrão, um índice é criado em ordem crescente.

  • O argumento WITH PRIMARY estabelece o(s) campo(s) indexado(s) como chave primária da tabela.

  • O argumento WITH DISALLOW NULL faz com que o índice exija a inserção de um valor no campo indexado, ou seja, os valores nulos não são permitidos.

Suponhamos que você tenha uma tabela denominada Carros com campos que armazenam o nome, o ano, o preço e a condição dos carros usados que está pensando em comprar. Suponhamos também que a tabela esteja grande e que você inclua frequentemente o campo de ano nas consultas. Você poderá criar um índice no campo Ano para ajudar as consultas a retornar resultados com mais rapidez por meio do seguinte procedimento:

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  4. Digite a seguinte instrução SQL:

    CREATE INDEX YearIndex ON Cars (Year)

  5. Na guia Design, no grupo Resultados, clique em Executar.

Início da Página

Criar uma restrição ou um relacionamento

Uma restrição estabelece uma condição lógica que um campo ou uma combinação de campos deve atender quando forem inseridos valores. Por exemplo, uma restrição UNIQUE impede que o campo restrito aceite um valor que duplicaria um valor existente para o campo.

Um relacionamento é um tipo de restrição que faz referência aos valores de um campo ou de uma combinação de campos em outra tabela para determinar se um valor pode ser inserido no campo restrito ou na combinação de campos.

Para criar uma restrição, use uma cláusula CONSTRAINT em um comando CREATE TABLE ou ALTER TABLE. Existem dois tipos de cláusulas CONSTRAINT: uma para criar uma restrição em um único campo e outra para criar uma restrição em vários campos.

Restrições de campo único:

Uma cláusula CONSTRAINT de campo único vem imediatamente após a definição do campo que ela restringe e tem a seguinte sintaxe:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Suponhamos que você tenha uma tabela denominada Carros com campos que armazenam o nome, o ano, o preço e a condição dos carros usados que está pensando em comprar. Suponhamos também que você geralmente se esqueça de inserir um valor na condição do carro e que sempre precise registrar essas informações. Você pode criar uma restrição no campo Condição que o impede de deixar o campo vazio, através do seguinte procedimento:

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  4. Digite a seguinte instrução SQL:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

  5. Na guia Design, no grupo Resultados, clique em Executar.

Agora, suponhamos que, após um tempo, você observe que há muitos valores similares no campo Condição que devam ser iguais. Por exemplo, alguns carros têm o valor Condição ruim e outros têm o valor péssimo. Após limpar os valores a fim de que fiquem mais consistentes, crie uma tabela denominada CondiçãoDoCarro, com um campo Condição, que contenha todos os valores que você deseja usar para a condição dos carros:

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  4. Digite a seguinte instrução SQL:

    CREATE TABLE CarCondition (Condition TEXT(10))

  5. Na guia Design, no grupo Resultados, clique em Executar.

  6. Para inserir os valores do campo Condição da tabela Carros na nova tabela CondiçãoDoCarro, digite a seguinte SQL na guia de objeto Modo SQL:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Observação : A instrução SQL dessa etapa é uma consulta acréscimo. Diferente de uma consulta definição de dados, a consulta acréscimo termina com um ponto-e-vírgula.

  7. Na guia Design, no grupo Resultados, clique em Executar.

Para exigir que qualquer novo valor inserido no campo Condição da tabela Carros corresponda a um valor do campo Condição da tabela CondiçãoDoCarro, crie um relacionamento entre CondiçãoDoCarro e Carros no campo denominado Condição, através do seguinte procedimento:

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  4. Digite a seguinte instrução SQL:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)

  5. Na guia Design, no grupo Resultados, clique em Executar.

Restrições de campos múltiplos:

Uma cláusula CONSTRAINT de campos múltiplos pode ser usada somente fora de uma cláusula definição de campo e tem a seguinte sintaxe:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Vamos examinar outro exemplo usando a tabela Carros. Suponhamos que você deseje garantir que dois registros da tabela Carros não terão o mesmo conjunto de valores para Nome, Ano, Condição e Preço. Crie uma restrição UNIQUE que se aplique a esses campos, através do seguinte procedimento:

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Tipo de Consulta, clique em Definição de Dados.

    A grade de design fica oculta e a guia de objeto Modo SQL é exibida.

  4. Digite a seguinte instrução SQL:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)

  5. Na guia Design, no grupo Resultados, clique em Executar.

Início da Página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×