Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Примеры отчётов / Лабораторная ИБД №2

.pdf
Скачиваний:
14
Добавлен:
04.06.2023
Размер:
421.62 Кб
Скачать

и ON UPDATE позволяют задать поведение СУБД при удалении и обновлении строк из таблицы-предка.

Получаем, что в таблице books устанавливается связь с таблицей catalogs (за счёт FOREIGN KEY (b_cat_ID) REFERENCES catalogs(cat_ID)). В таблице orders устанавливается связь с таблицами users (за счет FOREIGN KEY (o_user_ID) REFERENCES users(user_ID)) и books (за счет FOREIGN KEY (o_book_ID) REFERENCES books(book_ID)).

Далее проверим созданную БД и существование таблиц.

Рисунок 8 – Проверка БД book и существования созданных таблиц.

Видим, что таблицы были созданы в соответствующей базе данных

book.

Ниже представлен листинг процесса выполнения лабораторной работы

№2.

21

Листинг 1. Процесс выполнения задания.

Enter password: ****

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5

Server version: 5.0.51b-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW DATABASES;

+

--------------------

+

| Database

|

+--------------------

 

+

| information_schema |

| mysql

|

| test

|

+--------------------

 

+

3

rows in set (0.00 sec)

mysql> CREATE DATABASE book;

Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES;

+--------------------

+

| Database

|

+--------------------

+

| information_schema |

| book

|

| mysql

|

| test

|

+--------------------

+

4 rows in set (0.29 sec)

mysql> USE book; Database changed

mysql> CREATE TABLE catalogs (

-> cat_ID int(6) NOT NULL AUTO_INCREMENT, -> cat_name varchar(20) NOT NULL,

-> PRIMARY KEY (cat_ID) -> ) TYPE=InnoDB;

Query OK, 0 rows affected, 1 warning (0.20 sec)

mysql>

CREATE TABLE books (

->

book_ID int(6) NOT NULL AUTO_INCREMENT,

->

b_name varchar(100) NOT NULL,

->

b_author varchar(100) NOT NULL,

->

b_publisher varchar(100) NOT NULL,

->

b_year year NOT NULL,

->

b_price decimal(7,2) NULL default '0.00',

-> b_count int(6) NULL default '0',

22

->

b_cat_ID int(6) NOT NULL default '0',

 

->

PRIMARY KEY

(book_ID),

 

->

FOREIGN KEY (b_cat_ID) REFERENCES catalogs(cat_ID) ON DELETE

->

CASCADE ON UPDATE CASCADE

 

->

) TYPE=InnoDB;

 

 

Query OK, 0 rows affected, 1 warning (0.21 sec)

 

mysql> CREATE TABLE users (

 

 

-> user_ID int(6) NOT NULL AUTO_INCREMENT,

 

-> u_name varchar(20) NOT NULL,

 

-> u_patronymic varchar(20) NOT NULL,

 

-> u_surname varchar(20) NOT NULL,

 

-> u_phone varchar(12) NULL,

 

-> u_card varchar(20) NULL,

 

-> u_email varchar(20) NULL,

 

->

u_status

ENUM

('active','passive','lock','gold')

default

'passive',

 

 

 

->

PRIMARY KEY

(user_ID)

 

->

) TYPE=InnoDB;

 

 

Query OK, 0 rows affected, 1 warning (0.17 sec)

 

mysql> CREATE TABLE orders (

 

-> order_ID int(6) NOT NULL AUTO_INCREMENT,

 

-> o_user_ID int NOT NULL,

 

-> o_book_ID int NOT NULL,

 

-> o_time datetime NOT NULL default '0000-00-00 00:00:00',

 

-> o_number int(6) NOT NULL default '0',

 

-> PRIMARY KEY

(order_ID),

 

-> FOREIGN KEY (o_book_ID) REFERENCES books(book_ID) ON DELETE

-> CASCADE ON UPDATE CASCADE,

 

-> FOREIGN KEY (o_user_ID) REFERENCES users(user_ID) ON DELETE

CASCADE ON UP

 

 

 

DATE CASCADE

 

 

 

-> ) TYPE=InnoDB;

 

 

Query OK, 0 rows affected, 1 warning (0.20 sec)

 

mysql> SHOW DATABASES;

 

 

+--------------------+

 

 

| Database

|

 

 

+--------------------+

 

 

| information_schema |

 

 

| book

 

|

 

 

| mysql

|

 

 

| test

 

|

 

 

+--------------------

 

+

 

 

4 rows in set (0.00 sec)

mysql> USE book; Database changed mysql> SHOW TABLES;

23

+----------------

+

| Tables_in_book |

+----------------

+

| books

|

| catalogs

|

| orders

|

| users

|

+----------------

+

4 rows in set (0.00 sec)

5Выводы

Входе лабораторной работы была создана новая база данных “book” в MySQL 5.0.51b. Была проведена работа по созданию таблиц catalogs, books, users и orders, с соответствующими полями, типами и индексами. Были определены связи между таблицами и ограничения целостности. Также была произведена проверка созданной базы данных и соответствующих ей таблиц.

24