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

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

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

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

Примітка : Ці процедури не можна використовувати у веб-базі даних.

У цій статті

Огляд

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

Створення індексу

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

Огляд

На відміну від інших запитів, за запитом на визначення даних дані не отримуються. Натомість у запиті на визначення даних використовується мова визначення даних для створення, змінення або видалення об’єктів баз даних.

Примітка : Мова визначення даних (DDL) – це складова мови структурованих запитів (SQL).

Запити на визначення даних можуть виявитися дуже зручними. Простим виконанням кількох запитів можна регулярно видаляти та знову створювати частини схеми бази даних. Радимо використовувати запит на визначення даних, якщо ви знайомі з операторами SQL і плануєте видаляти та знову створювати певні таблиці, обмеження, індекси або зв’язки.

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

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

Ключові слова DDL

Ключове слово

Використання

CREATE

Створення індексу або таблиці, яких наразі не існує.

ALTER

Змінення наявної таблиці або стовпця.

DROP

Видалення наявної таблиці, стовпця або обмеження.

ADD

Додавання стовпця або обмеження до таблиці.

COLUMN

Використовується зі словами ADD, ALTER або DROP

CONSTRAINT

Використовується зі словами ADD, ALTER або DROP

INDEX

Використовується зі словом CREATE

TABLE

Використовується зі словами ALTER, CREATE або DROP

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

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

Створити таблицю можна за допомогою команди 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. На вкладці Конструктор у групі Тип запиту натисніть кнопку Визначення даних.

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

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

    СТВОРЕННЯ ТАБЛИЦІ автомобілів (ім'я TEXT(30), рік TEXT(4), Ціна грошової ОДИНИЦІ)

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

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

Щоб змінити таблицю, можна скористатися командою 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 ТАБЛИЦІ автомобілів додати СТОВПЕЦЬ стан 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:

    СТВОРЕННЯ ІНДЕКСУ YearIndex на автомобілів (рік)

  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 ТАБЛИЦІ автомобілів ALTER СТОВПЕЦЬ стан ТЕКСТ ОБМЕЖЕННЯ ConditionRequired NOT NULL

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

Припустімо, за якийсь час ви помітили, що в полі «Стан» багато схожих значень, які мали б бути ідентичні. Наприклад, для деяких автомобілів вказано значення стану кепський, а для інших – поганий.

Примітка : Щоб виконати усі інші процедури, додайте деякі фіктивні дані до таблиці «Автомобілі», створеної раніше.

Значення можна замінити на однакові, а потім – створити таблицю «Стан автомобілів» з одним полем «Стан», яке міститиме всі значення, якими ви бажаєте позначати стан автомобілів.

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

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

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

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

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

    СТВОРЕННЯ ТАБЛИЦІ CarCondition (умова TEXT(10))

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

  6. Створіть первинний ключ для таблиці за допомогою оператора ALTER TABLE:

    ЗМІНИТИ ТАБЛИЦЮ CarCondition ALTER СТОВПЕЦЬ стан ТЕКСТ ОБМЕЖЕННЯ CarConditionPK ПЕРВИННОГО КЛЮЧА

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

    ВСТАВТЕ CarCondition ВИБРАТИ ОКРЕМІ умови з автомобілів;

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

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

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

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

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

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

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

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

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

    Оператор ALTER ТАБЛИЦІ автомобілів ALTER СТОВПЕЦЬ стан ТЕКСТ ОБМЕЖЕННЯ FKeyCondition посилання НА CarCondition (стан)

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

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

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

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

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

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

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

    ALTER TABLE автомобілів ДОДАТИ ОБМЕЖЕННЯ УНІКАЛЬНИХ NoDupes (ім'я, рік, умови, Ціна)

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

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

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

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

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

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

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

×