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

Практическая работа №2

.docx
Скачиваний:
5
Добавлен:
30.07.2024
Размер:
64.22 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА Российский технологический университет»

РТУ МИРЭА

Институт информационных технологий (ИИТ)

Кафедра прикладной математики (ПМ)

ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ

по дисциплине «Системы управления данными»

Практическое задание № 2

Студент группыИНБО-01-17

ИНБО-06-20

(подпись)

Преподаватель

Морошкин Никита Андреевич

(подпись)

Отчет представлен

«10»__мая_2023 г.

Москва 2023 г.

Начало работы с MariaDB

В данной лабораторной работе вы будете использовать DDL и DML команды MariaDB. На самом деле, существует множество систем СУБД, и не все команды одинаковы, однако большинство из них поддерживает стандарт SQL. Нет никаких проблем с совместимостью команд. Здесь мы используем команды, основанные на MariaDB.

  1. Создание базы данных & таблицы

    1. В окне терминала войдите в MariaDB и отобразите существующие списки баз данных.

$ mysql --user=student --password=student

Примечание: Если вы ничего не введете после пароля, вам будет предложено установить пароль:

    1. Если вход в систему прошел успешно, появится сообщение "MariaDB [(none)]>" и отобразится экран ожидания команд. Введите команду, чтобы проверить, какие есть базы данных:

MariaDB [(none)]> show databases;

    1. Далее, введите команду для создания новой тестовой базы данных и рассмотрите таблицу в тестовой БД.

    1. Удалите тестовую базу данных;

MariaDB [test]> drop database test;

    1. Используя базу данных labs, создайте таблицу учетных записей следующим образом, и проверьте ее.

Названия столбца

Тип столбца

Ограничения

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

      1. Как создать новую базу данных проверив, что она еще не существует.

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 );

      1. Как переключиться на базу данных labs и создать новую таблицу.

MariaDB [(none)]> use labs;

    1. Используйте CTAS(Create Table As Select) для создания authors_100, который содержит только 100 записей из существующей authors.

MariaDB [labs]> create table authors_100 as select * from authors where id <= 100;

    1. Используйте CTAS для создания authors2 с такой же схемой, но без записей.

MariaDB [labs]> create table authors2 as select * from authors where id = -1;

    1. Используйте таблицу authors для запроса записей со следующими условиями, и выведите результаты.

      1. Найдите всех людей по имени Walton.

MariaDB [labs]> select * from authors where first_name = 'Walton';

      1. Найдите всех, кто использует example.com для своих email.

MariaDB [labs]> select * from authors where email like '%@example.com';

      1. Среди найденных в 1.8.2 выведите только тех, у кого день рождения после 2019 года, в порядке убывания.

MariaDB [labs]> select * from authors where email like '%@example.com' and birthdate >= '2019-01-01' order by birthdate desc;

      1. Перечислите только 10 первых людей, родившихся после 2015 года.

MariaDB [labs]> select * from authors where birthdate >= '2015-01-01' order by birthdate desc limit 10;

    1. Используйте таблицу authors_100 для удаления и записи со следующими условиями и выведите результаты.

      1. Выведите текущее количество записей и убедитесь, что все записи с датой рождения до 2015 года были удалены.

MariaDB [labs]> delete from authors_100 where birthdate < '2015-01-01';

      1. Убедитесь, что строка 87 удалена, и добавьте в таблицу следующие данные. Проверьте эту запись. Добавьте 3 строки, например, такие:

id

first_name

last_name

email

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');

    1. Обновите таблицу. Измените запись, чье значение идентификатора равно 0, с помощью следующей информации.

      1. 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;

    1. Удалите таблицу authors2 и выйдите из MariaDB.

MariaDB [labs]> drop table authors2;

MariaDB [labs]> exit

Работа с таблицами SQL (1 / 2)

  1. Перейдите в базу данных labs (используйте команду use).

  1. Создайте таблицу countries с названиями стран. Используйте следующую схему:

Названия столбца

Тип столбца

Ограничение

id

serial

name

varchar(50)

UNIQUE, NOT NULL

capital

varchar(50)

NOT NULL

population

integer

latitude

decimal(10,8)

longitude

decimal(11,8)

    1. Создайте таблицу с названием famous_people. Используйте следующие условия:

Название столбца

Условие

Ограничение

uid

автоинкрементируемое значение

name

строка длиной до 100 символов

Не может быть NULL

occupation

строка длиной до 150 символов

birthday

строка длиной до 50 символов

existence

содержит либо true, либо false

Если неизвестно, то false

    1. Создайте таблицу с названием 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

      1. Другие условия:

  • Название продукта и модель должны содержать не более 75 символов

  • Название продукта и модели не могут быть пустыми

  • Вес должен быть в пределах от 0.001 кг до 40,000 кг

  • Статус сохранения – 3-буквенный код

    1. Создайте таблицу с названием orders. Используйте следующие условия:

Название столбца

Условие

Ограничение

id

автоинкрементируемое значение

customer_name

строка длиной до 100 символов

Не может быть пустым

burger

строка длиной до 50 символов

side

строка длиной до 50 символов

drink

строка длиной до 50 символов

order_total

числовые, доллары и центы

Не может быть пустым. Все заказы меньше $100

  1. Измените таблицы

    1. Переименуйте таблицу famous_people в celebrities.

    1. Измените таблицу celebrities следующим образом:

      1. Измените столбец name на first_name

Измените тип данных на varchar(80)

      1. Добавьте новый столбец last_name. Столбец может сохранять строку длиной до 100 символов. Столбец не может быть пустым

      1. Измените тип данных столбца birthday на тип даты вместо строки

birthday не может быть пустым

    1. Измените таблицу orders следующим образом:

      1. Создайте новый столбец для хранения email покупателей. Сделайте его строкой длиной до 100 знаков.

      1. Создайте новый столбец customer_loyalty_points. Он содержит целочисленные значения. Значением по умолчанию для столбца должен быть 0.

      1. Добавьте новый столбец burger_cost. Он содержит доллары и центы. Максимальное значение $100. Значение по умолчанию 0.

      1. Добавьте новый столбец side_cost. Он содержит доллары и центы. Максимальное значение $100. Значение по умолчанию 0.

      1. Добавьте новый столбец drink_cost. Он содержит доллары и центы. Максимальное значение $100. Значение по умолчанию 0.

      1. Удалите столбец order_total.

Работа с таблицами (2 / 2)

  1. Добавление данных в таблицы

    1. Добавьте в таблицу 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

    1. Добавьте в таблицу celebrities

      1. Добавьте дни рождения участников 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

  1. Обновление таблиц

    1. Запросите из таблицы countries следующую информацию:

      1. Население Кореи

      1. Население и столицы всех записей в таблице countries

      1. Названия стран в алфавитном порядке

      1. Страна, столица и население в порядке убывания численности населения

      1. Тоже самое, что и выше, но в порядке увеличения

      1. Страны с населением менее 100,000,000.

      1. Страны с населением в пределах между 50 и 100 миллионами

    1. Запросите из таблицы celebrities следующую информацию:

      1. Имена и фамилии всех знаменитостей

      2. Всех знаменитости, родившиеся после 1990 года, в порядке возрастания по возрасту

      1. Список имен и фамилий всех певцов, отсортированных по возрасту в порядке убывания

Работа с запросами

  1. Создание запросов

    1. Создание запросов из таблицы countries

      1. Назовите страну с наименьшим населением

      1. Назовите страну со вторым по численности населением

      1. Выведите первую строку в таблице countries

      1. Сколько стран указано в countries?

  1. Обновление данных в таблицах

    1. Измените таблицу countries:

      1. Добавьте столбец continent с максимальным значением строки не более 100

      1. Измените continent следующим образом: USA = North America Germany = Europe France = Europe Korea = Asia

    1. Измените таблицу celebrities:

      1. Удалите столбец occupation

      1. Измените название таблицы на singers

      2. Удалите участников BTS, которых мы добавили в лабораторной №2 , разделе 2.4.1. Мы заменим отдельных участников на группу.

      1. Добавьте нового певца с названием = BTS.

Вывод: по результатам работы созданы базы данных и таблицы. В окне терминала произведён вход в MariaDB и отображены существующие базы данных. Обработаны данные таблицы. Изменены таблицы. Обновлены таблицы.

22