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

Передбачувана дія:

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

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

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

Для створення таблиці використовується команда CREATE TABLE. Синтаксис команди CREATE TABLE вказано нижче.

Тільки необхідні елементи команди CREATE TABLE є самої команди CREATE TABLE, ім'я таблиці, хоча б одне поле і тип даних кожного поля. Давайте розглянемо простий приклад.

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

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

На Панелі повідомлень натисніть кнопку Параметри і виберіть команду Увімкнути це вміст.

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

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

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

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

Введіть наступну інструкцію SQL:

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

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

зміна таблиці

Для зміни таблиці використовується команда 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-значне текстове поле для зберігання відомостей про стан кожного автомобіля. Для цього можна виконати такі дії.

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

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

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

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

Введіть наступну інструкцію SQL:

ALTER TABLE Cars ADD COLUMN Condition TEXT (10)

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

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

Для створення індексу існуючої таблиці використовується команда CREATE INDEX. Синтаксис команди CREATE INDEX вказано нижче.

Обов'язковими елементами є тільки сама команда CREATE INDEX, ім'я індексу, аргумент ON, ім'я таблиці з полями, які потрібно проіндексувати, і список полів, що включаються в індекс.

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

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

Аргумент WITH DISALLOW NULL вказує, що проіндексованих поле повинно містити деякий значення (т. Е. Забороняє використання значень NULL).

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

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

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

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

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

Введіть наступну інструкцію SQL:

CREATE INDEX YearIndex ON Cars (Year)

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

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

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

Створити обмеження можна за допомогою команди CREATE TABLE або ALTER TABLE з пропозицією CONSTRAINT. Є два види пропозиції CONSTRAINT: один створює обмеження для одного поля, а другий - для кількох.

Обмеження на одне поле

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

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

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

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

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

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

Введіть наступну інструкцію SQL:

ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

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

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

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

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

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

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

Введіть наступну інструкцію SQL:

CREATE TABLE CarCondition (Condition TEXT (10))

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

Щоб вставити в нову таблицю CarCondition значення з поля Condition таблиці Cars, введіть на вкладці об'єктів режиму SQL наступний запит SQL:

INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

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

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

Щоб вказати, що всі нові значення, що вставляються в поле Condition таблиці Cars, повинні збігатися з одним зі значень в поле Condition таблиці CarCondition, створіть зв'язок між таблицями CarCondition і Cars по полю Condition, виконавши такі дії.

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

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

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

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

Введіть наступну інструкцію SQL:

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

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

Обмеження на кілька полів

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

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

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

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

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

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

Введіть наступну інструкцію SQL:

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

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

Схожі статті