Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні ПАІС.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
561.66 Кб
Скачать

2. Створення таблиці.

Створимо деяку таблицю:

CREATE TABLE IZMER_NAMES ( ID_NUM IZMER_NUM, NAME NAMES_TYPE, USER_NAME BY_USER, CHANGE_DATE BY_DATE );

Оператор CREATE TABLE власне і створює таблицю, далі йде її унікальне в межах БД ім’я. Між дужками стоять визначення полів таблиці і додаткові оператори. Ми бачимо, що таблиця складається з чотирьох полів, а їх тип описано через домени, які ми створили раніш. Якщо ви створите ще одну таблицю з полем типу NAMES_TYPE, то кількість доменів у вас не збільшиться, а якщо б ви створили дві таблиці, у яких було б по одному полю типу VARCHAR(45), то це призвело б до створення двох доменів, що описують ці поля. Причому, імена цих доменів присвоїлися б за замовчуванням, а значить, цілком нечитабельні.

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

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

Таблиця відомостей про покупця CUSTOMER має такі поля:

CUSTOMER_ID INTEGER NOT NULL,

FNAME VARCHAR(45) NOT NULL,

LNAME VARCHAR(45) NOT NULL,

CREDIT SMALLINT NOT NULL,

WORK_ADDRESS VARCHAR(45) ,

ALT_ADDRESS VARCHAR(45) ,

CITY VARCHAR(45) ,

STATE VARCHAR(45),

WORK_PHONE VARCHAR(45),

ALT_PHONE VARCHAR(45),

COMPANY VARCHAR(40).

Таблиця PART являє собою відомість товарів на складі. Вона складається з таких полів:

PART_NUMBER VARCHAR(10) NOT NULL,

DESCRIPTION VARCHAR(18),

QUANTITY SMALLINT NOT NULL,

LIST_PRICE Double NOT NULL,

RETAIL_PRICE Double NOT NULL,

DEALER_PRICE Double NOT NULL,

JOBBER_PRICE Double NOT NULL

В таблиці SALES містяться відомості про кожну операцію продажі товарів деякому клієнту. Вона складається з таких полів:

SALE_NUMBER INTEGER NOT NULL,

CUSTOMER_ID INTEGER,

SALE_DATE TIMESTAMP,

TOTAL_PRICE DOUBLE PRECISION

В таблиці ITEMS містяться відомості про товари, відпущені покупцю по певній накладній (окремій операції продажу). Вона складається з таких полів:

SALE_NUMBER INTEGER,

ITEM_NO INTEGER,

PART_NO VARCHAR(10),

QTY SMALLINT

З А В Д А Н Н Я

  1. Зареєструйте на сервері базу даних Sales (якщо вона не зареєстрована), яку ви створили в попередній роботі.

  2. Виділіть на дереві IB Console вашу базу даних.

  3. За допомогою ISQL створіть таблиці Customer, Part, Sales та Items.

  4. Перегляньте за допомогою IB Console створені вами елементи бази даних.

  5. Оформіть звіт по роботі.

Контрольні запитання

  1. Вкажіть типи даних що використовуються в InterBase?

  2. Яка команда SQL створює нову таблицю в базі даних?

  3. Які існують типи обмежень?

  4. Яке обмеження створює первинний ключ?

  5. Що виконує обмеження NOT NULL?

Лабораторна робота № 3 Тема роботи: Введення обмежень в базах даних в InterBase.

Мета роботи: Навчити створювати первинні та вторинні ключі у середовищі сервера InterBase.

ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

1. Види обмежень в базі даних.

Існують такі види обмежень в базі даних InterBase:

  • первинний ключ – PRIMARY KEY;

  • унікальний ключ – UNIQUE KEY;

  • зовнішній ключ – FOREIGN KEY – може включати автоматичні тригери ON UPDATE і ON DELETE; перевірки – CHECK.

Обмеження бази даних бувають двох типів – на основі одного поля і на основі декількох полів таблиці. Першим в описі загального синтаксису обмежень йде ключове слово [CONSTRAINT constraint_name]. Тут CONSTRAINT означає обмеження, а constraint_name – ім’я цього обмеження. Як бачите, все це взяте в квадратні дужки і, значить, необов’язкове.

За допомогою ключового слова CONSTRAINT можна задавати ім’я створюваному обмеженню і у випадку використання синтаксису обмежень на основі одного поля, і у випадку обмежень на основі декількох полів.

Якщо не вказати ім’я для обмеження, InterBase автоматично генерує його. Однак краще все ж явно назначити ім’я, щоб покращити читабельність схеми бази даних.

Призначивши ім’я обмеженню, необхідно задати його тип. Розглянемо різні типи обмежень.