Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ по ОБД ИТП 2 сем.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
6 Мб
Скачать
☆

3.3 Лабораторна робота № 3

Тема роботи: Робота з таблицями.

Мета роботи: Вивчити способи створення, зміни і видалення таблиць. Отримати навики використання додатка "IB Expert" для створення, видалення і зміни структури таблиць. Вивчити SQL-оператори для роботи з таблицями і індексами.

1 Теоретичні відомості

1.1 Таблиці (Tables)

InterBase – реляційна СУБД, тому всі дані в InterBase зберігаються у вигляді двовимірних таблиць з рядками і стовпцями. Рядки називаються кортежами або записами, а стовпці – доменами або полями.

Основні обмеження, яким повинні задовольняти таблиці:

1. Кожен стовпець в таблиці має унікальне ім'я.

2. Всі дані в стовпці мають бути одного типа.

3. Порядок рядків і стовпців в таблиці не має значення.

4. У таблиці не може бути двох однакових рядків.

Частина мови SQL, яка управляє метаданими, називається Data Definition Language (DDL). До DDL відносяться оператори для визначення будь-яких даних об'єктів, що містяться в базі, у тому числі і таблиць. Оператори, що визначають структуру таблиць в InterBase, відповідають стандарту SQL, і тому без змін працюватимуть і в багатьох інших СУБД.

Для створення таблиць використовується оператор "CREATE TABLE", який наводить до створення порожньої таблиці без рядків. При створенні таблиць задається ім'я таблиці, опис набору стовпців з їх іменами, типами і розмірами, а також обмеження на інформацію, що зберігається в таблиці. Максимальна довжина назв таблиць, полів і обмежень – 31 символ. Імена таблиць в межах бази даних мають бути унікальні.

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

Спрощений синтаксис оператора створення таблиці:

CREATE TABLE Імя_Таблиці(

<опис колонки> [,

<опис колонки> | <обмеження> ...] );

У цьому операторові елемент <обмеження> означає обмеження, яке задається на рівні таблиці без одночасного опису колонки.

<опис колонки> = Колонка {

<тип даних>

| COMPUTED [BY] (<обчислюване вираження>)

| І’мя_Домену

}

[DEFAULT {Literal | NULL | USER}]

[NOT NULL] [<обмеження поля>];

Тут елемент <обчислюване вираження> означає вираження, яке обчислюватиметься кожного разу при необхідності повернути значення цього обчислюваного поля. Елемент <обмеження поля> означає обмеження, яке задається при одночасному визначенні поля (функціонально повністю аналогічно варіанту опису обмеження окремим рядком при створенні таблиці). Останні елементи були описані в попередній лабораторній роботі.

Приклад створення таблиці "Чоловік" (домени ID і Name описані в попередній лабораторній роботі):

CREATE TABLE Person(

Pr_ID ID -- номер людини

Pr_LastName Name -- прізвище

Pr_FirstName Name -- ім'я

Pr_Patronymic CHAR(30) -- по батькові

Pr_FIO COMPUTED BY ( -- прізвище і ініціали

Pr_LastName || ' ' || SUBSTRING(Pr_FirstName FROM 1 FOR 1)|| '.' ||

SUBSTRING(Pr_Patronymic FROM 1 FOR 1)|| '.') );

Перші три поля задано з використанням доменів, тип поля Pr_Patronymic заданий безпосередньо при створенні таблиці, а поле Pr_FIO є обчислюваним.

У цьому операторі || означає операцію конкатенацію (з'єднання) рядків, SUBSTRING() – функція, що повертає підрядок (у наведеному прикладі – першу букву полів "Pr_FirstName" і "Pr_Patronymic").

Якщо при описі поля не використовувати домен, то Firebird все одно створює домен спеціально для цього поля. Ім'я таких доменів складається з символів "RDB$" і порядкового номера. З такими системними доменами можна виконувати такі ж операції, як і із звичайними доменами.

Для видалення таблиці використовується оператор DROP TABLE.

DROP TABLE Person; -- Приклад видалення таблиці

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

Приклади операторів ALTER TABLE:

-- додавання поля "День народження":

ALTER TABLE Person ADD Birthday DATE;

-- видалення поля "По батькові":

ALTER TABLE Person DROP Pr_Patronymic;

-- перейменування поля "День народження":

ALTER TABLE Person ALTER COLUMN Birthday TO Pr_Birthday;

Якщо потрібно змінити типа поля, наприклад, збільшити число символів, що зберігаються в полі, то необхідно змінювати домен цього поля оператором ALTER DOMAIN або виконати зміни в системних таблицях.