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.

Você pode criar e modificar tabelas, restrições, relações e índices escrevendo consultas de definição de dados no modo SQL.

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

Observação : Não é possível usar esses procedimentos em um banco de dados da Web.

Neste artigo

Visão geral

Criar ou modificar uma tabela

Criar um índice

Criar uma restrição ou uma relação

Visão geral

Diferente das outras consultas, uma consulta de definição de dados não recupera dados. Em vez disso, ela usa a linguagem de definição de dados para criar, modificar ou excluir objetos de banco de dados.

Observação : A DDL (Linguagem de Definição de Dados) é parte do SQL (Structured Query Language).

As consultas de definição de dados podem ser extremamente convenientes, pois permitem que você exclua e recrie regularmente partes do seu esquema de banco de dados simplesmente executando algumas consultas. Considere a possibilidade de usar uma consulta de definição de dados caso esteja familiarizado com instruções SQL e pretenda excluir e recriar tabelas, restrições, relações ou índices específicos.

Aviso : O uso das consultas de 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 alterar inadvertidamente o design de uma tabela. Por isso, tenha cuidado ao usar uma consulta de definição de dados para modificar objetos no banco de dados. Caso você não seja responsável pela manutenção do banco de dados que utiliza, consulte o administrador do banco de dados antes de executar uma consulta de definição de dados.

Importante : Faça uma cópia de backup das tabelas envolvidas antes de executar uma consulta de definição de dados.

Palavras-chave da DDL

Palavra-chave

Uso

CREATE

Cria um índice ou uma tabela que ainda não existe.

ALTER

Modifica uma coluna ou uma tabela existente.

DROP

Exclui uma coluna, uma tabela ou uma restrição existente.

ADD

Adiciona uma coluna ou uma restrição a uma tabela.

COLUMN

Use com ADD, ALTER ou DROP

CONSTRAINT

Use com ADD, ALTER ou DROP

INDEX

Use com CREATE

TABLE

Use com ALTER, CREATE ou DROP

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 nome da tabela e o próprio comando CREATE TABLE, mas normalmente convém definir alguns campos ou outros aspectos da tabela. Considere este 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 de definição de dados para criar a tabela, faça o seguinte:

Observação : Talvez seja necessário primeiro habilitar o conteúdo do banco de dados para que uma consulta de definição de dados possa ser executada:

  • Na Barra de Mensagens, clique em Habilitar Conteúdo.

Criar uma tabela

  1. Na guia Criar, no grupo Macros e Código, 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 Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  5. 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 predicado pode ser qualquer um destes procedimentos:

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 Macros e Código, 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 primary key 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 Macros e Código, 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 ou na combinação de campos com restrição. Não se usa uma palavra-chave especial para indicar que uma restrição é um relacionamento.

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 Macros e Código, 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 suponha que, após um tempo, você observe que há muitos valores semelhantes no campo Condição que devem ser os mesmos. Por exemplo, alguns dos carros têm um valor de condição ruim e outros têm um valor insatisfatório.

Observação : Se você deseja seguir os procedimentos restantes, adicione alguns dados falsos à tabela Carros criada nas etapas anteriores.

Após limpar os valores para que eles fiquem mais consistentes, você poderá criar uma tabela denominada CondiçãoDoCarro, com um campo denominado Condição, contendo todos os valores a serem usados para a condição dos carros:

  1. Na guia Criar, no grupo Macros e Código, 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. Crie uma chave primária para a tabela usando uma instrução ALTER TABLE:

    ALTERAR TABELA CarCondition ALTER condição TEXTO RESTRIÇÃO CarConditionPK CHAVE PRIMÁRIA de COLUNA

  7. 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 append query. Diferente de uma consulta definição de dados, a consulta acréscimo termina com um ponto-e-vírgula.

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

Criar um relacionamento usando uma restrição

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 Macros e Código, 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 campo múltiplo pode ser usada somente fora de uma cláusula de 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}]}

Considere outro exemplo que usa a tabela Carros. Vamos supor que você queira verificar se dois registros na tabela Carros têm o mesmo conjunto de valores para Nome, Ano, Condição e Preço. É possível criar uma restrição UNIQUE que se aplique a esses campos usando o procedimento a seguir:

  1. Na guia Criar, no grupo Macros e Código, 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.

×