Создание и изменение таблиц или индексов с помощью запроса определения данных

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

В Microsoft Office Access 2007 легко создавать и изменять таблицы, ограничений и индексов в режиме конструктора, а также создавать связи с помощью окно отношений. Кроме того можно создавать и изменять эти же сущности, написав управляющих запросов в режим SQL.

В этой статье описаны управляющих запросов и показано, как использовать такие запросы для создания таблиц, индексов, ограничений и связей. Эта статья также поможет вам решить, что лучше использовать запрос определения данных.

Предполагаемое действие:

Узнайте, как использовать запрос определения данных

Создание и изменение таблицы

Создание предметного указателя

Создание ограничения или связи

Узнайте, как использовать запрос определения данных

В отличие от других запросов запрос определения данных не извлечь данные. Большинство запросов с помощью языка обработки данных (DML), который включает в себя команды язык SQL (Structured Query), которые определяют объединяются и управлять для получения результатов данные, которые должны данных из существующих объектов базы данных. Язык определения данных (DDL), которая состоит из команд SQL, которые определяют определение объектов базы данных, которые хранить и индексировать данные и команд SQL, управление доступом пользователей к объектам базы данных с помощью управляющих запросов. В Office Access 2007 запрос определения данных определяет или изменяет определение объекта базы данных.

Как правило, следует использовать интерфейсы графический Дизайн, Office Access 2007 обеспечивает (пример, конструктор и окна схемы данных) для создания таблиц, ограничений, индексов и связей. Тем не менее если у вас есть таблицы, которые регулярно удаление и повторное создание, использование этих интерфейсов становятся много времени. С помощью запроса определения данных, можно создать запрос один раз, а затем снова запустите его при необходимости. Можно использовать только в том случае, если вы знакомы с помощью инструкций SQL и, если вы планируете удаление и повторное создание отдельных таблиц, ограничений и индексов регулярно запрос определения данных.

Важно : С помощью управляющих запросов для изменения объектов базы данных может быть опасной, поскольку действия не сопровождается подтверждения диалоговых окнах. Если вы ошиблись, может потерять данные или случайное изменение внешнего вида таблицы. Будьте внимательны при использовании запрос определения данных для изменения объектов в базе данных. Если вы не отвечает за обслуживания базы данных, которую вы используете, обратитесь к администратору базы данных перед выполнением запроса определения данных. Кроме того рекомендуется создать резервную копию всех таблиц, на котором вы собираетесь выполнение таких запроса.

К началу страницы

Создание и изменение таблицы

Для создания таблицы используется команда CREATE TABLE. Синтаксис команды CREATE TABLE указан ниже.

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

Только необходимые элементы команды CREATE TABLE являются самой команды CREATE TABLE, имя таблицы, хотя бы одно поле и тип данных каждого поля. Давайте рассмотрим простой пример.

Предположим, необходимо создать таблицу для хранения марки, года выпуска и цены подержанных автомобилей, которые планируется приобрести. Название марки может занимать до 30 знаков, год — 4 знака. Чтобы составить запрос для создания этой таблицы, выполните указанные ниже действия.

Примечание : Необходимо сначала включить содержимое базы данных, в противном случае запрос определения данных, чтобы запустить.

  1. На Панели сообщений нажмите кнопку Параметры и выберите команду Включить это содержимое.

  2. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  3. Закройте диалоговое окно Добавление таблицы.

  4. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  5. Введите следующую инструкцию SQL:

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

  6. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Изменение таблицы

Для изменения таблицы используется команда ALTER TABLE. С ее помощью можно добавлять, изменять и удалять столбцы и ограничения. Синтаксис команды ALTER TABLE указан ниже.

ALTER TABLE table_name predicate

где предикат может быть любой из следующих действий:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Предположим, требуется добавить 10-значное текстовое поле для хранения сведений о состоянии каждого автомобиля. Для этого можно выполнить указанные ниже действия.

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. Закройте диалоговое окно Добавление таблицы.

  3. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  4. Введите следующую инструкцию SQL:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  5. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

К началу страницы

Создание индекса

Для создания индекса существующей таблицы используется команда CREATE INDEX. Синтаксис команды CREATE INDEX указан ниже.

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

Обязательными элементами являются только сама команда CREATE INDEX, имя индекса, аргумент ON, имя таблицы с полями, которые требуется проиндексировать, и список полей, включаемых в индекс.

  • Аргумент DESC предписывает создать индекс в порядке по убыванию, что может пригодиться при частом выполнении запросов на поиск максимальных значений в проиндексированном поле или запросов на сортировку этого поля по убыванию. По умолчанию индекс создается в порядке по возрастанию.

  • Аргумент с ОСНОВНОЙ устанавливает индексированное поле или поля в качестве первичный ключ таблицы.

  • Аргумент WITH DISALLOW NULL указывает, что проиндексированное поле должно содержать некоторое значение (т. е. запрещает использование значений NULL).

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

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. Закройте диалоговое окно Добавление таблицы.

  3. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  4. Введите следующую инструкцию SQL:

    CREATE INDEX YearIndex ON Cars (Year)

  5. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

К началу страницы

Создание ограничения или связи

Ограничение — это логическое условие, которое должно выполняться для поля или сочетания полей при вставке значений. Например, ограничение UNIQUE не позволяет вводить в соответствующее поле значения, которые уже встречаются в этом поле.

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

Создать ограничение можно с помощью команды CREATE TABLE или ALTER TABLE с предложением CONSTRAINT. Есть два вида предложения CONSTRAINT: один создает ограничение для одного поля, а второй — для нескольких.

Ограничения на одно поле

Предложение CONSTRAINT, создающее ограничение для одного поля, следует непосредственно за определением этого поля и имеет следующий синтаксис:

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

Предположим, есть таблица Cars с полями для хранения марки, года выпуска, цены и состояния подержанных автомобилей, которые планируется приобрести. Также предположим, что пользователь часто забывает ввести значение состояния автомобиля, хотя эти сведения необходимы. Чтобы запретить оставлять поле состояния пустым, можно создать ограничение для него. Для этого выполните указанные ниже действия.

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. Закройте диалоговое окно Добавление таблицы.

  3. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  4. Введите следующую инструкцию SQL:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

  5. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. Закройте диалоговое окно Добавление таблицы.

  3. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  4. Введите следующую инструкцию SQL:

    CREATE TABLE CarCondition (Condition TEXT(10))

  5. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

  6. Чтобы вставить в новую таблицу CarCondition значения из поля Condition таблицы Cars, введите на вкладке объектов режима SQL следующий запрос SQL:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Примечание : Инструкцию SQL в этом шаге является запрос на добавление. В отличие от управляющий запрос запрос на добавление заканчивается точкой с запятой.

  7. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Чтобы указать, что все новые значения, вставляемые в поле Condition таблицы Cars, должны совпадать с одним из значений в поле Condition таблицы CarCondition, создайте связь между таблицами CarCondition и Cars по полю Condition, выполнив указанные ниже действия.

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. Закройте диалоговое окно Добавление таблицы.

  3. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  4. Введите следующую инструкцию SQL:

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

  5. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Ограничения на несколько полей

Предложение CONSTRAINT нескольких полей можно использовать только вне предложение определение поля и имеет следующий синтаксис:

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}]}

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

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. Закройте диалоговое окно Добавление таблицы.

  3. На вкладке Конструктор в группе Тип запроса щелкните элемент Определение данных.

    Сетка конструктора пропадет, появится вкладка объекта режима SQL.

  4. Введите следующую инструкцию SQL:

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

  5. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

К началу страницы

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

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×