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

Заочка ЛР№1 Варіант9

.docx
Скачиваний:
6
Добавлен:
31.10.2018
Размер:
563.36 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЖИТОМИРСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ

УНІВЕРСИТЕТ

Факультет ІКТ

Кафедра КН

Група

ЛАБОРАТОРНА РОБОТА №1

з дисципліни: «Розподілені та паралельні системи»

Виконав: Перевірила:

Колос Катерина Ростиславівна

Житомир 2018

Лабораторна робота № 1

Тема роботи: Створення БД. Прості запити

Мета роботи: Спроектувати структуру БД. Створити БД з використанням сервера MySQL

Завдання на лабораторну до роботу: Варіант 9. Міста.

В БД зберігається інформація про міста і їх жителів.

Для міст необхідно зберігати:

  • назва;

  • рік заснування;

  • площа;

  • кількість населення для кожного типу жителів.

Для типів жителів необхідно зберігати:

  • місто проживання;

  • назва;

  • мова спілкування.

  1. Вивести інформацію про всіх жителів заданого міста, які розмовляють на заданій мові.

  2. Вивести інформацію про всі міста, в яких проживають жителі обраного типу.

  3. Вивести інформацію про місто з заданою площею і всіх типах жителів які проживають в місті.

  4. Вивести інформацію про тип жителів міста площа якого найбільша.

Хід роботи:

1. Створимо таблиці з містами та жителями згідно з завданням: 1.1 SQL запит для створення таблиці з містами: CREATE TABLE `lab1`.`cities`

(

`id` INT NOT NULL AUTO_INCREMENT ,

`name`VARCHAR(50) NOT NULL ,

`dateCreate` DATE NOT NULL , `area` INT NOT NULL ,

`userID`INT NOT NULL , PRIMARY KEY (`id`),

INDEX (`userID`)

);

1.2 SQL запит для створення таблиці з жителями:

CREATE TABLE `lab1`.`citizens`

(

`id` INT NOT NULL AUTO_INCREMENT , `name`VARCHAR(50) NOT NULL ,

`language` ENUM('uk','ru') NOT NULL ,

`city` VARCHARNOT NULL ,

PRIMARY KEY (`id`),

INDEX (`city`)

);

2. Встановимо зв’язки між таблицями по зовнішньому ключу: 2.1 SQL запит для встановлення зовнішнього ключа для таблиці з містами ALTER TABLE `lab1`.`cities`

ADD CONSTRAINT `city_citizen`

FOREIGN KEY (`userID`)

REFERENCES `lab1`.`cities` (`id`)

ON DELETE NO ACTION

ON UPDATE NO ACTION;

2.2 SQL запит для встановлення зовнішнього ключа для таблиці з жителями

ALTER TABLE `lab1`.`citizens`

ADD CONSTRAINT `citizen_city`

FOREIGN KEY (`city`)

REFERENCES `lab1`.`cities` (`id`)

ON DELETE NO ACTION

ON UPDATE NO ACTION; 2.3 DDL для таблиць матиме наступний вигляд: Data Definition Language (DDL) (мова опису даних) - це сімейство комп'ютерних мов, що використовуються в комп'ютерних програмах або користувачами баз даних для опису структури даних. DDL таблиці з містами:

DDL таблиці з жителями:

3. Заповнимо даними таблицю з містами. 3.1 SQL запит для заповнення даними: INSERT

INTO `lab1`.`cities` (`id`, `name`, `dateCreate`, `area`)

VALUES ('1000', 'Kyiv', '501-01-01', '839');

INSERT

INTO `lab1`.`cities` (`id`, `name`, `dateCreate`, `area`)

VALUES ('1001', 'Zhytomyr', '884-01-01', '65');

INSERT

INTO `lab1`.`cities` (`id`, `name`, `dateCreate`, `area`)

VALUES ('1002', 'Lviv', '1240-01-01', '182');

INSERT

INTO `lab1`.`cities` (`name`, `dateCreate`, `area`)

VALUES ('Rivne', '1283-01-01', '63');

INSERT

INTO `lab1`.`cities` (`name`, `dateCreate`, `area`)

VALUES ('Lutsk', '1085-01-01', '42');

3.2 Перевіримо наявність данних за допомогою SQL запиту: SELECT * FROM lab1.cities;

4. Заповнимо даними таблицю з містами. 4.1 SQL запит для заповнення даними: INSERT

INTO `lab1`.`citizens` (`id`, `name`, `language`, `city`)

VALUES ('1000', києвляни, 'ru', '1000');

INSERT

INTO `lab1`.`citizens` (`id`, `name`, `language`, `city`)

VALUES ('1001', житомиряни, uk, '1001');

INSERT

INTO `lab1`.`citizens` (`id`, `name`, `language`, `city`)

VALUES ('1002', львівяни, uk, '1002');

INSERT

INTO `lab1`.`citizens` (`id`, `name`, `language`, `city`)

VALUES ('1003', рівненчани, uk, '1003');

INSERT

INTO `lab1`.`citizens` (`id`, `name`, `language`, `city`)

VALUES ('1004', волиняни, uk, '1004');

4.2 Перевіримо наявність даних за допомогою SQL запиту: SELECT * FROM lab1.citizens;

5. Виконаємо запити в базу данних 5.1 Виведемо інформацію про всіх жителів заданного міста, які розмовляють на українській мові. SELECT lab1.citizens.name FROM lab1.cities, lab1.citizens

WHERE lab1.citizens.language = 'uk'

AND lab1.cities.name = 'Zhytomyr'

AND lab1.cities.userID = lab1.citizens.id ;

5.2 Виведемо інформацію про всі міста, в яких проживають жителі обраного типу.

SELECT lab1.cities.name FROM lab1.cities, lab1.citizens

WHERE lab1.citizens.language = 'uk'

AND lab1.cities.userID = lab1.citizens.id;

5.3 Виведемо інформацію про місто з заданою площею і всіх типах жителів які проживають в місті.

SELECT lab1.cities.name, lab1.citizens.name FROM lab1.cities, lab1.citizens

WHERE lab1.cities.area > 150 /*150 - площа*/

AND lab1.cities.userID = lab1.citizens.id;

5.4 Виведемо інформацію про тип жителів міста площа якого найбільша.

SELECT lab1.citizens.name AS 'Тип жителів'

FROM lab1.citizens, lab1.cities

WHERE

(

SELECT MAX(lab1.cities.area)

FROM lab1.cities

) = lab1.cities.area

AND lab1.cities.userID = lab1.citizens.id;

Висновки: В даній лабораторній роботі ми навчилися створювати таблиці в базі даних, пов’язувати та заповнювати інформацією за допомогою “сирих” SQL запитів. Перевірку правильності виконання запитів на візуальне відображення даних виконували в програмі MySQLWorkbench.