Заочка ЛР№1 Варіант9
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЖИТОМИРСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ
УНІВЕРСИТЕТ
Факультет ІКТ
Кафедра КН
Група
ЛАБОРАТОРНА РОБОТА №1
з дисципліни: «Розподілені та паралельні системи»
Виконав: Перевірила:
Колос Катерина Ростиславівна
Житомир 2018
Лабораторна робота № 1
Тема роботи: Створення БД. Прості запити
Мета роботи: Спроектувати структуру БД. Створити БД з використанням сервера MySQL
Завдання на лабораторну до роботу: Варіант 9. Міста.
В БД зберігається інформація про міста і їх жителів.
Для міст необхідно зберігати:
-
назва;
-
рік заснування;
-
площа;
-
кількість населення для кожного типу жителів.
Для типів жителів необхідно зберігати:
-
місто проживання;
-
назва;
-
мова спілкування.
-
Вивести інформацію про всіх жителів заданого міста, які розмовляють на заданій мові.
-
Вивести інформацію про всі міста, в яких проживають жителі обраного типу.
-
Вивести інформацію про місто з заданою площею і всіх типах жителів які проживають в місті.
-
Вивести інформацію про тип жителів міста площа якого найбільша.
Хід роботи:
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.