Створення або змінення таблиць та індексів за допомогою запиту на визначення даних

Увага! : Цю статтю перекладено за допомогою служби машинного перекладу; див. застереження. Версію цієї статті англійською мовою див. тут для отримання довідки.

У Microsoft Office Access 2007можна легко створювати та змінювати таблиць, обмеження та індексів у режимі конструктора а також створення зв'язків за допомогою вікно "Зв’язки". Також можна створювати та змінювати ці самі осіб написанням в режимі SQL запитів на визначення даних.

У цій статті описано запитів на визначення даних і свідчить про те, як за допомогою таких запитів на створення таблиці, індекси, обмеження та зв'язки. У цій статті допоможуть вам вирішувати, коли слід використовувати запит на визначення даних.

У цій статті

Дізнайтеся про використання запиту на визначення даних

Створення або змінення таблиці

Створення покажчика

Створення обмеження або зв’язку

Дізнайтеся про використання запиту на визначення даних

На відміну від інших запитів запит на визначення даних не дає змогу отримати дані. Більшість запитів за допомогою даних обробки мови (DML), який включає в себе мови структурованих запитів (SQL) команди, які визначають об'єднуються та використані для створення результатів пошуку даних, яке даних із наявного об'єктів у базі даних. Запитів на визначення даних за допомогою даних визначення мови (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 [, ...]])

Лише потрібні елементи команди на створення ТАБЛИЦІ наведено команди створити таблицю, себе, ім'я таблиці, принаймні одне поле та тип даних кожного поля. Давайте розглянемо простий приклад.

Припустімо, ви вибираєте собі вживаний автомобіль і хочете створити таблицю з відомостями про назву, рік випуску та ціну різних автомобілів. Для відомостей про назву ви хотіли б виділити 30 символів, а для відомостей про рік випуску – 4 символи. Щоб створити таблицю за допомогою запиту на визначення даних, виконайте такі дії:

Примітка : Спочатку потрібно ввімкнути вміст бази даних для того, щоб запит визначення даних для запуску.

  1. В Рядку повідомленьнатисніть кнопку Параметрита виберіть пункт дозволити цей вміст.

  2. На вкладці Створення в групі Додатково натисніть кнопку Конструктор запитів.

  3. Закрийте діалогове вікно Відображення таблиці.

  4. На вкладці Конструктор у групі Тип запиту натисніть кнопку Визначення даних.

    Бланк буде приховано, і відобразиться вкладка об’єкта в режимі SQL.

  5. Введіть такий оператор SQL:

    CREATE TABLE Автомобілі (Назва TEXT(30), Рік TEXT(4), Ціна CURRENCY)

  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Змінення таблиці

Щоб змінити таблицю, можна скористатися командою ALTER TABLE. За допомогою команди 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 Автомобілі ADD COLUMN Стан 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 активує таку вимогу індексу: в індексованому полі обов’язково має міститися значення,  тобто нульові значення не дозволені.

Припустімо, ви вибираєте собі вживаний автомобіль і маєте таблицю з назвою «Автомобілі», де зберігаються відомості про назву, рік випуску, ціну та стан різних автомобілів. Також припустімо, що таблиця стала велика та що у свої запити ви часто включаєте поле «Рік». Щоб запити швидше повертали результати, можна створити індекс поля «Рік». Для цього потрібно виконати такі дії:

  1. На вкладці Створення в групі Додатково натисніть кнопку Конструктор запитів.

  2. Закрийте діалогове вікно Відображення таблиці.

  3. На вкладці Конструктор у групі Тип запиту натисніть кнопку Визначення даних.

    Бланк буде приховано, і відобразиться вкладка об’єкта в режимі SQL.

  4. Введіть такий оператор SQL:

    CREATE INDEX Індекс_року ON Автомобілі (Рік)

  5. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

На початок сторінки

Створення обмеження або зв’язку

Обмеження встановлює логічну умову вставлення значень у поле або низку полів. Наприклад, поле з обмеженням UNIQUE не може приймати значення, яке дублювало б уже наявне для цього поля значення.

Зв'язку – це тип обмеження, яке посилається на значення поля або поєднання поля в іншій таблиці, щоб визначити, чи значення можна вставити в обмежені поля або поєднання поля.

Щоб створити обмеження, використайте речення CONSTRAINT у команді CREATE TABLE або ALTER TABLE. Речення 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}]}

Припустімо, ви вибираєте собі вживаний автомобіль і маєте таблицю з іменем «Автомобілі», де зберігаються відомості про назву, рік випуску, ціну та стан різних автомобілів. Також припустімо, що ви часто забуваєте вводити значення стану автомобіля, але бажаєте завжди записувати ці відомості. Можна створити обмеження для поля «Стан», яке заборонятиме залишати це поле порожнім. Для цього потрібно виконати такі дії:

  1. На вкладці Створення в групі Додатково натисніть кнопку Конструктор запитів.

  2. Закрийте діалогове вікно Відображення таблиці.

  3. На вкладці Конструктор у групі Тип запиту натисніть кнопку Визначення даних.

    Бланк буде приховано, і відобразиться вкладка об’єкта в режимі SQL.

  4. Введіть такий оператор SQL:

    ALTER TABLE Автомобілі ALTER COLUMN Стан TEXT CONSTRAINT Стан_обов’язковий NOT NULL

  5. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

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

  1. На вкладці Створення в групі Додатково натисніть кнопку Конструктор запитів.

  2. Закрийте діалогове вікно Відображення таблиці.

  3. На вкладці Конструктор у групі Тип запиту натисніть кнопку Визначення даних.

    Бланк буде приховано, і відобразиться вкладка об’єкта в режимі SQL.

  4. Введіть такий оператор SQL:

    CREATE TABLE Стан_автомобілів (Стан TEXT(10))

  5. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

  6. Щоб вставити значення з поля «Стан» таблиці «Автомобілі» в нову таблицю «Стан автомобілів», введіть на вкладці об’єкта в режимі SQL такий рядок SQL:

    INSERT INTO Стан_автомобілів SELECT DISTINCT Стан FROM Автомобілі;

    Примітка : SQL у цей крок – це повідомлення запит на додавання. На відміну від запиту на визначення даних запит на додавання закінчується крапкою з комою.

  7. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Щоб клітинки поля «Стан» у таблиці «Автомобілі» приймали лише ті нові значення, які збігаються зі значеннями в полі «Стан» таблиці «Стан автомобілів», можна створити зв’язок між таблицями «Стан автомобілів» і «Автомобілі» за полем з іменем «Стан». Для цього потрібно виконати такі дії:

  1. На вкладці Створення в групі Додатково натисніть кнопку Конструктор запитів.

  2. Закрийте діалогове вікно Відображення таблиці.

  3. На вкладці Конструктор у групі Тип запиту натисніть кнопку Визначення даних.

    Бланк буде приховано, і відобразиться вкладка об’єкта в режимі SQL.

  4. Введіть такий оператор SQL:

    ALTER TABLE Автомобілі ALTER COLUMN Стан TEXT CONSTRAINT СтанЗовнКлюч REFERENCES Стан_автомобілів (Стан)

  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 Автомобілі ADD CONSTRAINT Без дублікатів UNIQUE (ім’я, рік, стан, ціна)

  5. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

На початок сторінки

Примітка : Застереження про машинний переклад: Цю статтю перекладено комп’ютерною системою без втручання людини. Корпорація Майкрософт пропонує таку послугу, щоб іншомовні користувачі могли дізнаватися про продукти, служби й технології Microsoft. Оскільки статтю перекладено за допомогою служби машинного перекладу, вона може містити смислові, синтаксичні або граматичні помилки.

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×