Поделиться через


Создание и удаление таблиц и индексов с помощью Access SQL

Таблицы являются основными стандартными блоками реляционной базы данных. Таблица содержит строки (или записи) данных, и каждая строка организована в конечное число столбцов (или полей). Чтобы создать новую таблицу в Access с помощью Access SQL, необходимо присвоить таблице имя, имя поля и определить тип данных, которые будут содержаться в этих полях. Используйте инструкцию CREATE TABLE для определения таблицы в SQL. Предположим, что вы создаете базу данных счетов. Первым шагом является создание начальной таблицы клиентов.

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

При создании и удалении таблиц следует учитывать следующие проблемы:

  • Если имя поля содержит пробел или какой-либо другой неальфанумерный символ, необходимо заключить это имя поля в квадратные скобки ([ ]).
  • Если не объявить длину для текстовых полей, по умолчанию они будут 255 символов. Для обеспечения согласованности и удобочитаемости кода всегда следует определять длину полей.

Поле можно объявить как NOT NULL, что означает, что значения NULL не могут быть вставлены в это конкретное поле; значение всегда является обязательным. Значение NULL не следует путать с пустой строкой или значением 0; это просто представление базы данных неизвестного значения.

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)) 

Чтобы удалить таблицу из базы данных, используйте инструкцию DROP TABLE .

DROP TABLE tblCustomers 

Создание и удаление индексов

Индекс — это внешняя структура данных, используемая для сортировки или размещения указателей на данные в таблице. При применении индекса к таблице вы указываете определенное расположение данных, чтобы к ним можно было быстрее обращаться. Однако если к таблице применяется слишком много индексов, производительность может снизиться из-за дополнительных накладных расходов, связанных с обслуживанием индекса, а также из-за того, что индекс может вызвать проблемы с блокировкой при использовании в многопользовательской среде. Индекс, используемый в правильном контексте, может значительно повысить производительность приложения.

Чтобы создать индекс в таблице, необходимо присвоить имя индексу, присвоить таблице имя для построения индекса, присвоить имя используемому полю или полям в таблице, а также присвоить имя параметрам, которые вы хотите использовать. Для создания индекса используется инструкция CREATE INDEX . Например, можно создать индекс на основе таблицы customers в базе данных выставления счетов, упомянутой ранее, с помощью следующего кода:

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 

Индексированные поля можно сортировать одним из двух способов: по возрастанию (ASC) или по убыванию (DESC). Порядок по умолчанию возрастает, и его не требуется объявлять. Если используется порядок по возрастанию, данные будут отсортированы от 1 до 100. Если указать порядок убывания, данные будут отсортированы от 100 до 1. Необходимо объявить порядок сортировки с каждым полем в индексе.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID DESC) 

Существует четыре основных параметра, которые можно использовать с индексом: PRIMARY, DISALLOW NULL, IGNORE NULL и UNIQUE. Параметр PRIMARY определяет индекс в качестве первичного ключа для таблицы. Для каждой таблицы может быть только один индекс первичного ключа, хотя индекс первичного ключа можно объявить с несколькими полями. Используйте ключевое слово WITH для объявления параметров индекса.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 
    WITH PRIMARY 

Чтобы создать индекс первичного ключа для нескольких полей, добавьте все имена полей в список полей.

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

Параметр DISALLOW NULL предотвращает вставку данных NULL в поле. (Это похоже на объявление NOT NULL , используемое в инструкции CREATE TABLE .)

CREATE INDEX idxCustomerEmail  
    ON tblCustomers (Email) 
    WITH DISALLOW NULL 

Параметр IGNORE NULL приводит к тому, что данные NULL в таблице игнорируются для индекса. Это означает, что любая запись, которая имеет значение NULL в объявленном поле, не будет использоваться (или подсчитываться) в индексе.

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

Помимо параметров PRIMARY, DISALLOW NULL и IGNORE NULL , можно также объявить индекс как UNIQUE. Это означает, что в индексированные поля можно вставить только уникальные неповторяющиеся значения.

CREATE UNIQUE INDEX idxCustomerPhone  
    ON tblCustomers (Phone) 

Чтобы удалить индекс из таблицы, используйте инструкцию DROP INDEX .

DROP INDEX idxName 
    ON tblCustomers 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.