
Практическая работа №2
.docx
МИНОБРНАУКИ РОССИИ |
Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА Российский технологический университет»
РТУ
МИРЭА
|
Институт информационных технологий (ИИТ)
Кафедра прикладной математики (ПМ)
ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ
по дисциплине «Системы управления данными»
Практическое задание № 2
Студент группыИНБО-01-17
|
ИНБО-06-20 |
(подпись)
|
|
|
Преподаватель
|
Морошкин Никита Андреевич
|
(подпись)
|
|
|
Отчет представлен |
«10»__мая_2023 г. |
|
Москва 2023 г.
Начало работы с MariaDB
В данной лабораторной работе вы будете использовать DDL и DML команды MariaDB. На самом деле, существует множество систем СУБД, и не все команды одинаковы, однако большинство из них поддерживает стандарт SQL. Нет никаких проблем с совместимостью команд. Здесь мы используем команды, основанные на MariaDB.
Создание базы данных & таблицы
В окне терминала войдите в MariaDB и отобразите существующие списки баз данных.
$ mysql --user=student --password=student
Примечание: Если вы ничего не введете после пароля, вам будет предложено установить пароль:
Если вход в систему прошел успешно, появится сообщение "MariaDB [(none)]>" и отобразится экран ожидания команд. Введите команду, чтобы проверить, какие есть базы данных:
MariaDB [(none)]> show databases;
Далее, введите команду для создания новой тестовой базы данных и рассмотрите таблицу в тестовой БД.
Удалите тестовую базу данных;
MariaDB [test]> drop database test;
Используя базу данных labs, создайте таблицу учетных записей следующим образом, и проверьте ее.
Названия столбца |
Тип столбца |
Ограничения |
user_id |
serial |
Primary key |
Username |
varchar(30) |
UNIQUE, NOT NULL |
Password |
varchar(20) |
NOT NULL |
Varchar(50) |
UNIQUE, NOT NULL |
|
last_login |
timestamp |
|
Как создать новую базу данных проверив, что она еще не существует.
MariaDB [(none)]> CREATE TABLE IF NOT EXISTS labs.accounts (
user_id serial PRIMARY KEY,
username VARCHAR (30) UNIQUE NOT NULL,
password VARCHAR (20) NOT NULL,
email VARCHAR ( 50 ) UNIQUE NOT NULL,
last_login timestamp );
Как переключиться на базу данных labs и создать новую таблицу.
MariaDB [(none)]> use labs;
Используйте CTAS(Create Table As Select) для создания authors_100, который содержит только 100 записей из существующей authors.
MariaDB [labs]> create table authors_100 as select * from authors where id <= 100;
Используйте CTAS для создания authors2 с такой же схемой, но без записей.
MariaDB [labs]> create table authors2 as select * from authors where id = -1;
Используйте таблицу authors для запроса записей со следующими условиями, и выведите результаты.
Найдите всех людей по имени Walton.
MariaDB [labs]> select * from authors where first_name = 'Walton';
Найдите всех, кто использует example.com для своих email.
MariaDB [labs]> select * from authors where email like '%@example.com';
Среди найденных в 1.8.2 выведите только тех, у кого день рождения после 2019 года, в порядке убывания.
MariaDB [labs]> select * from authors where email like '%@example.com' and birthdate >= '2019-01-01' order by birthdate desc;
Перечислите только 10 первых людей, родившихся после 2015 года.
MariaDB [labs]> select * from authors where birthdate >= '2015-01-01' order by birthdate desc limit 10;
Используйте таблицу authors_100 для удаления и записи со следующими условиями и выведите результаты.
Выведите текущее количество записей и убедитесь, что все записи с датой рождения до 2015 года были удалены.
MariaDB [labs]> delete from authors_100 where birthdate < '2015-01-01';
Убедитесь, что строка 87 удалена, и добавьте в таблицу следующие данные. Проверьте эту запись. Добавьте 3 строки, например, такие:
id |
first_name |
last_name |
birthdate |
added |
|
77 |
Jason |
Park |
jsjeong@abc.com |
1995-02-05 |
now |
1 |
Taehyung |
Kim |
thkim@example.com |
1995-12-31 |
now |
|
TBD |
|
|
|
|
MariaDB [labs]> insert into authors_100 values (77, 'Jason', 'Park', 'jsjeong@abc.com', '1995-02-05', now());
MariaDB [labs]> insert into authors_100 values (1, 'Taehyung', 'Kim', 'thkim@example.com', '1995-12-30', now());
MariaDB [labs]> insert into authors_100 (first_name) values ('TBD');
Обновите таблицу. Измените запись, чье значение идентификатора равно 0, с помощью следующей информации.
First_name:Jimin, last_name: Park, email:jmpark@abc.com
MariaDB [labs]> update authors_100 set id = 100, first_name = 'Jimin', last_name = 'Park', email = 'jmpark@abc.com' where id = 0;
Удалите таблицу authors2 и выйдите из MariaDB.
MariaDB [labs]> drop table authors2;
MariaDB [labs]> exit
Работа с таблицами SQL (1 / 2)
Перейдите в базу данных labs (используйте команду use).
Создайте таблицу countries с названиями стран. Используйте следующую схему:
Названия столбца |
Тип столбца |
Ограничение |
id |
serial |
|
name |
varchar(50) |
UNIQUE, NOT NULL |
capital |
varchar(50) |
NOT NULL |
population |
integer |
|
latitude |
decimal(10,8) |
|
longitude |
decimal(11,8) |
|
Создайте таблицу с названием famous_people. Используйте следующие условия:
Название столбца |
Условие |
Ограничение |
uid |
автоинкрементируемое значение |
|
name |
строка длиной до 100 символов |
Не может быть NULL |
occupation |
строка длиной до 150 символов |
|
birthday |
строка длиной до 50 символов |
|
existence |
содержит либо true, либо false |
Если неизвестно, то false |
Создайте таблицу с названием products. Таблица должна содержать следующие примеры данных и автоматически возрастающий столбец идентификатора:
Product name
Model
Max Weight
Max service years
Parts name
DC motor
D9I40GBH
750
15
DCX
BLDC motor
S7J30GHE
3,800
25
SNP
AC motor
G8I50BHE
10,000
30
GDE
Другие условия:
Название продукта и модель должны содержать не более 75 символов
Название продукта и модели не могут быть пустыми
Вес должен быть в пределах от 0.001 кг до 40,000 кг
Статус сохранения – 3-буквенный код
Создайте таблицу с названием orders. Используйте следующие условия:
Название столбца |
Условие |
Ограничение |
id |
автоинкрементируемое значение |
|
customer_name |
строка длиной до 100 символов |
Не может быть пустым |
burger |
строка длиной до 50 символов |
|
side |
строка длиной до 50 символов |
|
drink |
строка длиной до 50 символов |
|
order_total |
числовые, доллары и центы |
Не может быть пустым. Все заказы меньше $100 |
Измените таблицы
Переименуйте таблицу famous_people в celebrities.
Измените таблицу celebrities следующим образом:
Измените столбец name на first_name
Измените тип данных на varchar(80)
Добавьте новый столбец last_name. Столбец может сохранять строку длиной до 100 символов. Столбец не может быть пустым
Измените тип данных столбца birthday на тип даты вместо строки
birthday не может быть пустым
Измените таблицу orders следующим образом:
Создайте новый столбец для хранения email покупателей. Сделайте его строкой длиной до 100 знаков.
Создайте новый столбец customer_loyalty_points. Он содержит целочисленные значения. Значением по умолчанию для столбца должен быть 0.
Добавьте новый столбец burger_cost. Он содержит доллары и центы. Максимальное значение $100. Значение по умолчанию 0.
Добавьте новый столбец side_cost. Он содержит доллары и центы. Максимальное значение $100. Значение по умолчанию 0.
Добавьте новый столбец drink_cost. Он содержит доллары и центы. Максимальное значение $100. Значение по умолчанию 0.
Удалите столбец order_total.
Работа с таблицами (2 / 2)
Добавление данных в таблицы
Добавьте в таблицу countries:
Name |
Capital |
Population |
USA |
Washington D.C. |
333,098,437 |
Germany |
Berlin |
84,073,352 |
France |
Paris |
65,426,179 |
Korea |
Seoul |
51,305,186 |
Добавьте в таблицу celebrities
Добавьте дни рождения участников BTS.
First_name |
Last_name |
Birthday |
Namjoon |
Kim |
September 12, 1994 |
Jeongguk |
Jeon |
September 1, 1997 |
Yoongi |
Min |
March 9, 1993 |
Hoseok |
Jung |
February 18, 1994 |
Taehyun |
Kim |
December 30, 1995 |
Jimin |
Park |
October 13, 1995 |
Seokjin |
Kim |
December 4, 1992 |
Обновление таблиц
Запросите из таблицы countries следующую информацию:
Население Кореи
Население и столицы всех записей в таблице countries
Названия стран в алфавитном порядке
Страна, столица и население в порядке убывания численности населения
Тоже самое, что и выше, но в порядке увеличения
Страны с населением менее 100,000,000.
Страны с населением в пределах между 50 и 100 миллионами
Запросите из таблицы celebrities следующую информацию:
Имена и фамилии всех знаменитостей
Всех знаменитости, родившиеся после 1990 года, в порядке возрастания по возрасту
Список имен и фамилий всех певцов, отсортированных по возрасту в порядке убывания
Работа с запросами
Создание запросов
Создание запросов из таблицы countries
Назовите страну с наименьшим населением
Назовите страну со вторым по численности населением
Выведите первую строку в таблице countries
Сколько стран указано в countries?
Обновление данных в таблицах
Измените таблицу countries:
Добавьте столбец continent с максимальным значением строки не более 100
Измените continent следующим образом: USA = North America Germany = Europe France = Europe Korea = Asia
Измените таблицу celebrities:
Удалите столбец occupation
Измените название таблицы на singers
Удалите участников BTS, которых мы добавили в лабораторной №2 , разделе 2.4.1. Мы заменим отдельных участников на группу.
Добавьте нового певца с названием = BTS.
Вывод: по результатам работы созданы базы данных и таблицы. В окне терминала произведён вход в MariaDB и отображены существующие базы данных. Обработаны данные таблицы. Изменены таблицы. Обновлены таблицы.