library(RMySQL)
## Loading required package: DBI
movie = dbConnect(MySQL(), user='root', password='mohamed', dbname='movie', host='localhost')
dbListTables(movie)
## [1] "movierating" "oscars2019"
Oscars2019 <- dbSendQuery(movie, "select * from movie.Oscars2019")
Oscars2019_List <- fetch(Oscars2019)
Oscars2019_List
##   MovieId         MovieName Category
## 1       1     BLACK PANTHER    PG-13
## 2       2    BLACKkKLANSMAN        R
## 3       3 BOHEMIAN RHAPSODY    PG-13
## 4       4     THE FAVOURITE        R
## 5       5        GREEN BOOK    PG-13
## 6       6              ROMA        R
## 7       7    A STAR IS BORN        R
## 8       8              VICE        R
Ratings <- dbSendQuery(movie, "select MovieID,  RatingCategory, GivenRating from movie.MovieRating")
## Warning in .local(conn, statement, ...): Decimal MySQL column 2 imported as
## numeric
MovieRatings <- fetch(Ratings)
MovieRatings
##    MovieID  RatingCategory GivenRating
## 1        1          Family         4.0
## 2        1          Friend         4.0
## 3        1            Kids         5.0
## 4        1   OnlineCritics         3.5
## 5        1 GeneralAudience         4.0
## 6        2          Family         3.0
## 7        2          Friend         3.0
## 8        2            Kids         2.0
## 9        2   OnlineCritics         3.5
## 10       2 GeneralAudience         3.0
## 11       3          Family         4.0
## 12       3          Friend         4.0
## 13       3            Kids         2.5
## 14       3   OnlineCritics         3.5
## 15       3 GeneralAudience         3.5
## 16       4          Family         3.5
## 17       4          Friend         4.0
## 18       4            Kids         2.0
## 19       4   OnlineCritics         3.5
## 20       4 GeneralAudience         3.0
## 21       5          Family         4.0
## 22       5          Friend         4.0
## 23       5            Kids         5.0
## 24       5   OnlineCritics         3.5
## 25       5 GeneralAudience         3.0
## 26       6          Family         3.5
## 27       6          Friend         4.5
## 28       6            Kids         3.0
## 29       6   OnlineCritics         3.5
## 30       6 GeneralAudience         4.0
## 31       7          Family         4.0
## 32       7          Friend         3.5
## 33       7            Kids         2.0
## 34       7   OnlineCritics         3.0
## 35       7 GeneralAudience         3.0
## 36       8          Family         3.2
## 37       8          Friend         4.0
## 38       8            Kids         2.0
## 39       8   OnlineCritics         4.0
## 40       8 GeneralAudience         3.5
BestMovieRating <- dbSendQuery(movie, "select m.MovieName, CAST(AVG(r.GivenRating) AS DECIMAL(3,2)) as AvgRating from movie.Oscars2019 m inner join movie.MovieRating r on r.MovieId = m.MovieId group by m.MovieName order by AvgRating desc")
## Warning in .local(conn, statement, ...): Decimal MySQL column 1 imported as
## numeric
Rating_List <- fetch(BestMovieRating)
Rating_List
##           MovieName AvgRating
## 1     BLACK PANTHER      4.10
## 2        GREEN BOOK      3.90
## 3              ROMA      3.70
## 4 BOHEMIAN RHAPSODY      3.50
## 5              VICE      3.34
## 6     THE FAVOURITE      3.20
## 7    A STAR IS BORN      3.10
## 8    BLACKkKLANSMAN      2.90
library(ggplot2)
ggplot(data=Rating_List, aes(x=MovieName, y=AvgRating, fill=MovieName)) +  geom_bar(stat="identity") + coord_flip() + geom_text(aes(label=AvgRating), vjust=0) + ggtitle("Movie Rating - Oscars 2019") + theme(plot.title = element_text(hjust = 0.5))

dbDisconnect(movie)
## Warning: Closing open result sets
## [1] TRUE