Список использованных источников
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