Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mova_SQL.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
106 Кб
Скачать
☆

5.2. Створення і знищення базових таблиць

Базові таблиці описуються в SQL за допомогою інструкції CREATE TABLE (створити таблицю), синтаксис якої має невеликі розходження в різних СУБД. Однак усі вони підтримують наступну мінімальну форму:

CREATE TABLE базова_таблиця (стовпець тип_даних

[NOT NULL]

[,стовпець тип_даних [NOT NULL]] ...);

де тип_даних повинний належати до одному з типів даних, підтримуваних СУБД (наприклад, одному з типів даних, перерахованих у п.1.2). Так, опис таблиці Блюда може бути записане у виді

CREATE TABLE Блюда

( БЛ SMALLІNT NOT NULL,

Блюда CHAR (70) NOT NULL,

У CHAR (1),

Основа CHAR (10),

Вихід FLOAT,

Праця SMALLІNT );

У результаті створюється порожня базова таблиця Блюда, а в системний каталог міститься рядок, що описує цю таблицю. Відзначимо, що в професійних СУБД ім'я таблиці доповнюється ім'ям користувача, що видав пропозицію CREATE TABLE. Якщо цей користувач зареєстрований у системі під ім'ям Kіrіllov, то в каталозі буде зареєстрована таблиця Kіrіllov.Блюда і зазначений користувач може звертатися до неї по імені Kіrіllov. Чи блюда по скороченому імені Блюда, що використовувалося у всіх попередніх прикладах і буде використовуватися далі.

Конструкція NOT NULL забороняє використання невизначеного значення, тобто спеціального значення, що вводиться для представлення "невідомого значення" чи "непридатного значення". Наприклад, рядок постачання таблиці Постачання може містити невизначене значення в стовпці Ціна.

Існуючу базову таблицю можна в будь-який момент знищити за допомогою інструкції DROP TABLE (знищити таблицю):

DROP TABLE базова_таблиця;

по якій знищується опис таблиці, її дані, зв'язані з нею представлення й індекси, побудовані для стовпців таблиці.

У SQL існує також інструкція ALTER TABLE (змінити таблицю), що дозволяє додати праворуч до таблиці новий стовпець, тобто модифікувати опис таблиці.

5.3. Індекси

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

Для побудови індексу в SQL існує інструкція CREATE ІNDEX (створити індекс), що має формат

CREATE [UNІQUE] ІNDEX ім'я_індексу ON базова_таблиця

(стовпець [[ASC] | DESC]

[, стовпець [[ASC] | DESC]] ...);

де UNІQUE (унікальний) указує, що ніяким двом рядкам у індексованій базовій таблиці не дозволяється приймати те саме значення для індексованого стовпця (чи комбінації стовпців) у те саме час.

Наприклад, індекси для стовпців БЛ і Основа таблиці Блюда створюються за допомогою інструкцій

CREATE UNІQUE ІNDEX Блюда_БЛ ON Блюда (БЛ);

CREATE ІNDEX Блюда_Основа ON Блюда (Основа);

а індекс для первинного ключа (стовпці БЛ і ПР) таблиці Склад - за допомогою інструкції

CREATE UNІQUE ІNDEX Склад_БЛ_ПР ON Склад (БЛ, ПР);

У великих (більш 1000 рядків) таблицях пошук індексованих значень виконується на порядок швидше, ніж пошук неіндексованих, а в дуже великих таблицях - на два-три порядків.

Перед модифікацією множини рядків таблиці доцільно знищити індекси її стовпців, що можна зробити за допомогою пропозиції DROP ІNDEX (знищити індекс), що має наступний формат:

DROP ІNDEX ім'я_індексу;

Тому що індекси можуть чи створюватися знищуватися в будь-який час, те перед виконанням запитів доцільно будувати індекси лише для тих стовпців, що використовуються в WHERE і ORDER BY фразах запиту, а перед модифікацією великого числа рядків таблиць з індексованими стовпцями ці індекси варто знищити.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]