All Projects → WebDevSimplified → Learn Sql

WebDevSimplified / Learn Sql

Exercises for beginners to learn SQL

Projects that are alternatives of or similar to Learn Sql

Myproxy
A sharding proxy for MYSQL databases
Stars: ✭ 153 (-17.74%)
Mutual labels:  sql, mysql
Ohmysql
Easy direct access to your database 🎯 http://oleghnidets.github.io/OHMySQL/
Stars: ✭ 166 (-10.75%)
Mutual labels:  sql, mysql
Atdatabases
TypeScript clients for databases that prevent SQL Injection
Stars: ✭ 154 (-17.2%)
Mutual labels:  sql, mysql
Go Mysqlstack
MySQL protocol library implementing in Go (golang)
Stars: ✭ 145 (-22.04%)
Mutual labels:  sql, mysql
Pdo
Connecting to MySQL in PHP using PDO.
Stars: ✭ 187 (+0.54%)
Mutual labels:  sql, mysql
Querybuilder
SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Stars: ✭ 2,111 (+1034.95%)
Mutual labels:  sql, mysql
Neo4j Etl
Data import from relational databases to Neo4j.
Stars: ✭ 165 (-11.29%)
Mutual labels:  sql, mysql
Dumpling
Dumpling is a fast, easy-to-use tool written by Go for dumping data from the database(MySQL, TiDB...) to local/cloud(S3, GCP...) in multifarious formats(SQL, CSV...).
Stars: ✭ 134 (-27.96%)
Mutual labels:  sql, mysql
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+1088.71%)
Mutual labels:  sql, mysql
Rom Sql
SQL support for rom-rb
Stars: ✭ 169 (-9.14%)
Mutual labels:  sql, mysql
Oxidtools
200 TOOLS BY 0XID4FF0X FOR TERMUX
Stars: ✭ 143 (-23.12%)
Mutual labels:  sql, mysql
Nut
Advanced, Powerful and easy to use ORM for Qt
Stars: ✭ 181 (-2.69%)
Mutual labels:  sql, mysql
Laravel Db Profiler
Database Profiler for Laravel Web and Console Applications.
Stars: ✭ 141 (-24.19%)
Mutual labels:  sql, mysql
Csgowinbig
Open-source Counter-Strike: Global Offensive jackpot betting website.
Stars: ✭ 149 (-19.89%)
Mutual labels:  sql, mysql
Mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
Stars: ✭ 11,735 (+6209.14%)
Mutual labels:  sql, mysql
Yuniql
Free and open source schema versioning and database migration made natively with .NET Core.
Stars: ✭ 156 (-16.13%)
Mutual labels:  sql, mysql
Firenze
Adapter based JavaScript ORM for Node.js and the browser
Stars: ✭ 131 (-29.57%)
Mutual labels:  sql, mysql
Sql Template Tag
ES2015 tagged template string for preparing SQL statements, works with `pg` and `mysql`
Stars: ✭ 132 (-29.03%)
Mutual labels:  sql, mysql
Sqlcheck
Automatically identify anti-patterns in SQL queries
Stars: ✭ 2,062 (+1008.6%)
Mutual labels:  sql, mysql
Ruoyi
基于开源项目RuoYi-Vue,扩展开发添加新业务功能。基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 174 (-6.45%)
Mutual labels:  sql, mysql

Learn SQL

If you haven't already make sure you watch this video which will teach you all the basics of SQL in 60 minutes.

After watching the video try to complete the exercises listed below using the data provided in this repository.

All of the solutions are available in the repository, and this video goes over all of the solutions.

Setup

First drop your existing database that was created in the tutorial. DROP DATABASE record_company;

Copy the code inside the schema.sql file, paste it into MySQL Workbench, and run it. (This file contains the code necessary to create and add the tables from the tutorial video)

Exercises

1. Create a Songs Table

Solution

This table should be called songs and have four properties with these exact names.

  1. id: An integer that is the primary key, and auto increments.
  2. name: A string that cannot be null.
  3. length: A float that represents the length of the song in minutes that cannot be null.
  4. album_id: An integer that is a foreign key referencing the albums table that cannot be null.

After successfully creating the table copy the code from data.sql into MySQL Workbench, and run it to populate all of the data for the rest of the exercises. If you do not encounter any errors, then your answer is most likely correct.

2. Select only the Names of all the Bands

Solution

Change the name of the column the data returns to Band Name

Band Name
Seventh Wonder
Metallica
The Ocean
Within Temptation
Death
Van Canto
Dream Theater

3. Select the Oldest Album

Solution

Make sure to only return one result from this query, and that you are not returning any albums that do not have a release year.

id name release_year band_id
5 ...And Justice for All 1988 2

4. Get all Bands that have Albums

Solution

There are multiple different ways to solve this problem, but they will all involve a join.

Return the band name as Band Name.

Band Name
Seventh Wonder
Metallica
The Ocean
Within Temptation
Death
Van Canto

5. Get all Bands that have No Albums

Solution

This is very similar to #4 but will require more than just a join.

Return the band name as Band Name.

Band Name
Dream Theater

6. Get the Longest Album

Solution

This problem sounds a lot like #3 but the solution is quite a bit different. I would recommend looking up the SUM aggregate function.

Return the album name as Name, the album release year as Release Year, and the album length as Duration.

Name Release Year Duration
Death Magnetic 2008 74.76666593551636

7. Update the Release Year of the Album with no Release Year

Solution

Set the release year to 1986.

You may run into an error if you try to update the release year by using release_year IS NULL in the WHERE statement of your UPDATE. This is because MySQL Workbench by default will not let you update a table that has a primary key without using the primary key in the UPDATE statement. This is a good thing since you almost never want to update rows without using the primary key, so to get around this error make sure to use the primary key of the row you want to update in the WHERE of the UPDATE statement.

8. Insert a record for your favorite Band and one of their Albums

Solution

If you performed this correctly you should be able to now see that band and album in your tables.

9. Delete the Band and Album you added in #8

Solution

The order of how you delete the records is important since album has a foreign key to band.

10. Get the Average Length of all Songs

Solution

Return the average length as Average Song Duration.

Average Song Duration
5.352472513259112

11. Select the longest Song off each Album

Solution

Return the album name as Album, the album release year as Release Year, and the longest song length as Duration.

Album Release Year Duration
Tiara 2018 9.5
The Great Escape 2010 30.2333
Mercy Falls 2008 9.48333
Master of Puppets 1986 8.58333
...And Justice for All 1988 9.81667
Death Magnetic 2008 9.96667
Heliocentric 2010 7.48333
Pelagial 2013 9.28333
Anthropocentric 2010 9.4
Resist 2018 5.85
The Unforgiving 2011 5.66667
Enter 1997 7.25
The Sound of Perseverance 1998 8.43333
Individual Thought Patterns 1993 4.81667
Human 1991 4.65
A Storm to Come 2006 5.21667
Break the Silence 2011 6.15
Tribe of Force 2010 8.38333

12. Get the number of Songs for each Band

Solution

This is one of the toughest question on the list. It will require you to chain together two joins instead of just one.

Return the band name as Band, the number of songs as Number of Songs.

Band Number of Songs
Seventh Wonder 35
Metallica 27
The Ocean 31
Within Temptation 30
Death 27
Van Canto 32
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].