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

6 СЕМЕСТР / ЛР / ЛР2 / БД ЛР2

.pdf
Скачиваний:
11
Добавлен:
25.06.2023
Размер:
510.03 Кб
Скачать

Список использованных источников

1) Турнецкая Е.Л. Базы данных. / Методические указания по

выполнению лабораторных работ. – СПб: ГУАП, 2021

11

ПРИЛОЖЕНИЕ A. Код программы

#.libPaths("D:/library")

#install.packages("ggplot2")

#install.packages("RMySQL")

#install.packages("plotly")

library(RMySQL)

library(ggplot2)

library(plotly)

#соединение с БД 'tram_depot' con <- dbConnect(RMySQL::MySQL(),

user='root',

password='12345678',

dbname='mg',

host='127.0.0.1') dbSendQuery(con, "SET NAMES 'CP1251'")

# Получение данных из таблицы musicalgroup

res <- dbSendQuery(con, "SELECT * FROM musicalgroup") stat <- dbFetch(res)

dbClearResult(res)

# Запрос 1

res <- dbSendQuery(con,

"SELECT BandName, count(*) as ticket_count

FROM MusicalGroup JOIN Concert USING(MusicalGroupID)

JOIN Ticket USING(ConcertID) GROUP BY BandName

ORDER BY 2 DESC") stat <- dbFetch(res) dbClearResult(res)

p <- ggplot(data=stat, aes(x=BandName, y=ticket_count, fill=ticket_count)) +

geom_bar(stat="identity") + ylab("Кол-во билетов") + xlab("Название муз. группы") + ggtitle("Кол-во проданных билетов") + theme_bw() + theme(legend.position="none")

12

p

# Запрос 2

res <- dbSendQuery(con, "SELECT BandName

,LocationName

,count(*) as ticket_count FROM MusicalGroup

JOIN Concert USING(MusicalGroupID) JOIN Ticket USING(ConcertID)

JOIN Location USING(LocationID) GROUP BY BandName, LocationName ORDER BY 1, 2;")

stat <- dbFetch(res) dbClearResult(res)

p <- ggplot(data=stat, aes(x=BandName, y=ticket_count, fill=LocationName)) +

geom_bar(stat="identity") + ylab("Кол-во билетов") + xlab("Название муз. группы") + ggtitle("Кол-во проданных билетов") + theme_bw()

p

# Запрос 3

res <- dbSendQuery(con,

"SELECT OrderDate

, count(*) AS OrderCount FROM orders

WHERE OrderDate between '2021-11-15'

and '2021-12-31'

GROUP BY 1 ORDER BY 1;")

stat <- dbFetch(res) dbClearResult(res)

p <- ggplot(data=stat, aes(x=OrderDate, y=OrderCount, size=OrderCount)) +

geom_point() + ylab("Кол-во заказов") + xlab("Дата") +

ggtitle("Кол-во оформленных заказов") +

13

theme_bw()

p

14

Соседние файлы в папке ЛР2