Criar e excluir tabelas e índices usando o Access SQL

Office 2013 e posterior

Tabelas são os principais blocos de construção de um banco de dados relacional. A tabela contém linhas ou registros de dados e cada linha é organizada em um número limitado de colunas ou campos. Para construir uma nova tabela no Access usando o Access SQL, você deve nomear a tabela, nomear os campos e definir o tipo de dados que vai inserir nos campos. Use a instrução CREATE TABLE para definir a tabela no SQL. Digamos que você está criando um banco de dados de notas fiscais. O primeiro passo é criar a tabela inicial de clientes.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER, 
    [Last Name] TEXT(50), 
    [First Name] TEXT(50), 
    Phone TEXT(10), 
    Email TEXT(50)) 

Observe os seguintes problemas quando criar e excluir tabelas:

  • quando um nome de campo inclui um espaço ou outro caractere não alfanumérico, você deve coloca-lo entre colchetes ([]).

  • quando você não declara o tamanho dos campos de texto, o padrão é de 255 caracteres. Por razões de coerência e legibilidade do código, você deve sempre definir um tamanho para os campos.

Você pode declarar um campo como NOT NULL, o que significa que os valores nulos não podem ser inseridos nesse determinado campo; um valor é sempre necessário. Um valor nulo não deve ser confundido com uma cadeia de caracteres vazia ou com um valor de 0; trata-se simplesmente da representação do banco de dados de um valor desconhecido.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER NOT NULL, 
    [Last Name] TEXT(50) NOT NULL, 
    [First Name] TEXT(50) NOT NULL, 
    Phone TEXT(10), 
    Email TEXT(50)) 

Para remover uma tabela do banco de dados, use a instrução DROP TABLE.

DROP TABLE tblCustomers 

Um índice é uma estrutura de dados externos usada para classificar ou organizar ponteiros para os dados de uma tabela. Ao aplicar um índice a uma tabela, você está especificando uma determinada organização dos dados, de modo que possam ser acessados de forma rápida. No entanto, se aplicar vários índices a uma tabela, provavelmente vai diminuir o respectivo desempenho, uma vez que há uma sobrecarga envolvida na manutenção do índice, e porque um índice pode causar problemas de bloqueio, quando usado em um ambiente multiusuário. Um índice pode melhorar o desempenho de um aplicativo de forma significativa, quando usado no contexto apropriado.

Para criar um índice em uma tabela, você deve nomear o índice, nomear a tabela na qual vai criar o índice, nomear os campos que vai usar dentro da tabela e nomear as opções que deseja usar. Use a instrução CREATE INDEX para criar o índice. Por exemplo, você pode criar um índice na tabela de clientes, no banco de dados de notas fiscais mencionado anteriormente, usando o seguinte código:

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 

Os campos de índice podem ser classificados de uma duas formas: crescente (ASC) ou decrescente (DESC). A ordem padrão é crescente e não precisa ser declarada. Quando você usa a ordem crescente, os dados são classificados de 1 a 100. Caso especifique a ordem decrescente, os dados são classificados de 100 a 1. Você deve declarar a ordem de classificação de cada campo no índice.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID DESC) 

Há quatro opções principais que você pode usar como índice: PRIMARY, DISALLOW NULL, IGNORE NULL e UNIQUE. A opção PRIMARY designa o índice como a chave primária da tabela. Você pode ter apenas um índice de chave primária por tabela, embora o índice de chave primária possa ser declarado com mais de um campo. Use a palavra-chave WITH para declarar as opções do índice.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 
    WITH PRIMARY 

Para criar um índice de chave-primária em mais de um campo, inclua todos os nomes de campo na lista de campos.

CREATE INDEX idxCustomerName  
    ON tblCustomers ([Last Name], [First Name]) 
    WITH PRIMARY 

A opção DISALLOW NULL evita a inserção de dados nulos no campo. (Isto é semelhante à declaração NOT NULL usada na instrução CREATE TABLE .)

CREATE INDEX idxCustomerEmail  
    ON tblCustomers (Email) 
    WITH DISALLOW NULL 

A opção IGNORE NULL faz com que os dados nulos da tabela sejam ignorados pelo índice. Significa que qualquer registro que inclui um valor nulo no campo declarado não vai ser usado ou contabilizado no índice.

CREATE INDEX idxCustomerLastName  
    ON tblCustomers ([Last Name]) 
    WITH IGNORE NULL 

Além das opções PRIMARY, DISALLOW NULL e IGNORE NULL, você pode declarar o índice como UNIQUE, o que significa que apenas valores únicos ou não repetidos podem ser inseridos no campo indexado.

CREATE UNIQUE INDEX idxCustomerPhone  
    ON tblCustomers (Phone) 

Para remover o índice de uma tabela, use a instrução DROP INDEX.

DROP INDEX idxName 
    ON tblCustomers 

Tabelas são os principais blocos de construção de um banco de dados relacional. A tabela contém linhas ou registros de dados e cada linha é organizada em um número limitado de colunas ou campos. Para construir uma nova tabela no Access usando o Access SQL, você deve nomear a tabela, nomear os campos e definir o tipo de dados que vai inserir nos campos. Use a instrução CREATE TABLE para definir a tabela no SQL. Digamos que você está criando um banco de dados de notas fiscais. O primeiro passo é criar a tabela inicial de clientes.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER, 
    [Last Name] TEXT(50), 
    [First Name] TEXT(50), 
    Phone TEXT(10), 
    Email TEXT(50)) 

Observe os seguintes problemas quando criar e excluir tabelas:

  • quando um nome de campo inclui um espaço ou outro caractere não alfanumérico, você deve coloca-lo entre colchetes ([]).

  • quando você não declara o tamanho dos campos de texto, o padrão é de 255 caracteres. Por razões de coerência e legibilidade do código, você deve sempre definir um tamanho para os campos.

Você pode declarar um campo como NOT NULL, o que significa que os valores nulos não podem ser inseridos nesse determinado campo; um valor é sempre necessário. Um valor nulo não deve ser confundido com uma cadeia de caracteres vazia ou com um valor de 0; trata-se simplesmente da representação do banco de dados de um valor desconhecido.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER NOT NULL, 
    [Last Name] TEXT(50) NOT NULL, 
    [First Name] TEXT(50) NOT NULL, 
    Phone TEXT(10), 
    Email TEXT(50)) 

Para remover uma tabela do banco de dados, use a instrução DROP TABLE.

DROP TABLE tblCustomers 

Um índice é uma estrutura de dados externos usada para classificar ou organizar ponteiros para os dados de uma tabela. Ao aplicar um índice a uma tabela, você está especificando uma determinada organização dos dados, de modo que possam ser acessados de forma rápida. No entanto, se aplicar vários índices a uma tabela, provavelmente vai diminuir o respectivo desempenho, uma vez que há uma sobrecarga envolvida na manutenção do índice, e porque um índice pode causar problemas de bloqueio, quando usado em um ambiente multiusuário. Um índice pode melhorar o desempenho de um aplicativo de forma significativa, quando usado no contexto apropriado.

Para criar um índice em uma tabela, você deve nomear o índice, nomear a tabela na qual vai criar o índice, nomear os campos que vai usar dentro da tabela e nomear as opções que deseja usar. Use a instrução CREATE INDEX para criar o índice. Por exemplo, você pode criar um índice na tabela de clientes, no banco de dados de notas fiscais mencionado anteriormente, usando o seguinte código:

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 

Os campos de índice podem ser classificados de uma duas formas: crescente (ASC) ou decrescente (DESC). A ordem padrão é crescente e não precisa ser declarada. Quando você usa a ordem crescente, os dados são classificados de 1 a 100. Caso especifique a ordem decrescente, os dados são classificados de 100 a 1. Você deve declarar a ordem de classificação de cada campo no índice.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID DESC) 

Há quatro opções principais que você pode usar como índice: PRIMARY, DISALLOW NULL, IGNORE NULL e UNIQUE. A opção PRIMARY designa o índice como a chave primária da tabela. Você pode ter apenas um índice de chave primária por tabela, embora o índice de chave primária possa ser declarado com mais de um campo. Use a palavra-chave WITH para declarar as opções do índice.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 
    WITH PRIMARY 

Para criar um índice de chave-primária em mais de um campo, inclua todos os nomes de campo na lista de campos.

CREATE INDEX idxCustomerName  
    ON tblCustomers ([Last Name], [First Name]) 
    WITH PRIMARY 

A opção DISALLOW NULL evita a inserção de dados nulos no campo. (Isto é semelhante à declaração NOT NULL usada na instrução CREATE TABLE .)

CREATE INDEX idxCustomerEmail  
    ON tblCustomers (Email) 
    WITH DISALLOW NULL 

A opção IGNORE NULL faz com que os dados nulos da tabela sejam ignorados pelo índice. Significa que qualquer registro que inclui um valor nulo no campo declarado não vai ser usado ou contabilizado no índice.

CREATE INDEX idxCustomerLastName  
    ON tblCustomers ([Last Name]) 
    WITH IGNORE NULL 

Além das opções PRIMARY, DISALLOW NULL e IGNORE NULL, você pode declarar o índice como UNIQUE, o que significa que apenas valores únicos ou não repetidos podem ser inseridos no campo indexado.

CREATE UNIQUE INDEX idxCustomerPhone  
    ON tblCustomers (Phone) 

Para remover uma tabela do banco de dados, use a instrução DROP INDEX.

DROP INDEX idxName 
    ON tblCustomers 

Mostrar: