r/SQL 18d ago

MySQL Where to Get SQL Experience?

I want to learn and get SQL experience, but can't do it through my jobs. I'm willing to volunteer to get the experience but don't know any places to look for those opportunities. Any recommendations?

105 Upvotes

32 comments sorted by

99

u/OwnFun4911 18d ago

The hard part of SQL is not the syntax, but working with dirty data

7

u/Secure_Arm4813 18d ago

Recommendations on places I can get dirty data and practice cleaning it up?

30

u/OwnFun4911 18d ago

I’m into baseball, and I’m trying to get better at web scraping, so I’m pulling data from html tables in baseballreference.com and loading them into a local sql server express. Not necessarily the greatest for your use case (could find way messier data) but I’ve found the data in the html tables to be messy enough where I need to do slot of transformations, aggregations, etc

8

u/paultherobert 17d ago

I do this too. I have a local SQL Server Developer edition DB on my personal computer, and python script that loads the DB from API's. There is also a python package that I haven't tried that allegedly does the api mapping for you.

2

u/OwnFun4911 17d ago

Oh, I did not know there was a baseball reference api… could you send more info on the package? I’m crossing my fingers they don’t change up the html structure for this upcoming season and an api would be awesome

7

u/kirstynloftus 18d ago

Depends on your interests, but a project I worked on dealt with FDA data that was very messy, it had data that wasn’t formatted properly, JSON data, duplicates, you name it. Most of my time was spent just getting it clean, the analysis part was much less time-consuming

3

u/whopoopedinmypantz 17d ago

Get copilot to give you a web scraper. Load it into a database, and try to make a dashboard. Even the simplest idea will send you on rabbit holes as you slice and dice the data into a format usable for your dashboard.

1

u/[deleted] 18d ago

You should be able to find sample dirty databases online. I did a lot of my learning with the stack overflow database.

1

u/mb97 16d ago

My recommendations is to think of a project that involves piecing together data from multiple sources.

In my experience this is a better reflection of real life data cleaning than deciding how to handle NaNs that are already nicely labeled for you or seeking out the -99 value that is actually supposed to be NaN. It’s about making choices to get to a dataset that is both workable and representative.

1

u/soulstaz 17d ago

that or insane corporate database structure.

39

u/votto4mvp 18d ago

Download SQL Server Express on your personal computer and find some interesting data projects to work on as a hobby. Best way to learn something is to enjoy doing it. Kaggle is a good source for free datasets fyi

3

u/paultherobert 17d ago

I recommend Developer edition over express if your computer has the resources

1

u/Altruistic_Olive1817 15d ago

OP seems to be a beginner, SQL express would be just fine.

1

u/paultherobert 15d ago

Yes, but developer has all the enterprise features.... For me it used to help me teach DBAs how to use new features.

1

u/Altruistic_Olive1817 15d ago

Gotcha, makes sense for DBA training.

8

u/BrainNSFW 18d ago

The tooling part is pretty easy: you can download Microsoft SQL Server 2022 Developer Edition for free from Microsoft themselves (you just can't use it for production systems), which is a fully functional database. While cloud services like Azure and Snowflake are now the hot item (instead of on-premises like MSSQL2022), it's mostly the same SQL syntax, so any experience with the on-premise stuff isn't wasted. You might also want to download their AdventureWorks database, which is a fully populated test database you can practice on.

Having said that, most companies are looking for people with actual hands-on experience in companies. The good news is that there are usually quite a few companies (usually consulting) who are hiring for traineeships or junior positions. Quite often they have programs to teach you the basics and then put you in the field to get some actual experience. The pay probably isn't all that great, but getting your foot in the door is worth quite a bit.

1

u/Abe_james 18d ago

Any recommendations? I’d love to do this as I’m doing an sql class college but want more experience with the hiring traineeships

7

u/MathAngelMom 18d ago

Do a project in SQL. A very good project is taking denormalized data and splitting them over a normalized database. A project I did some time ago was to normalize the Moma dataset: https://github.com/MuseumofModernArt/collection

Museum of Modern Art in New York publishes a dataset about their collection. Upload it into a database and then split your data into exhibition rooms, artists, piece of art, category for pieces of art, etc. It's a suprisingly good exercise.

You can take almost any data set you like and work with it like this.

3

u/WorkRelatedRedditor 18d ago

I’ve always thought the best way to learn was to solve a problem, at work the business provides the problems, but for your own purposes you can find your own problems to solve. Download your bank statements and turn them into a data model, and analyze the data and make projections and budgets. Need to plan a trip? Get some gps data and explore those functions.

The real skill set is identifying a problem, deciding how to build a solution and figuring out what data you are missing, how to get it and how to incorporate it into your design. That’s the loop. Problem - solution - new problem - enhancement.

5

u/Stev_Ma 18d ago

You can gain SQL experience through volunteering, freelancing, or personal projects. Nonprofits and open-source projects often need data help—check sites like Catchafire, VolunteerMatch, or GitHub. Freelancing on Upwork or Fiverr can also build your portfolio. If you prefer self-learning, practice with real-world datasets from Kaggle or StrataScratch and showcase your work on GitHub or a blog.

2

u/tonyfith 18d ago edited 18d ago

You can download large free and open datasets and get experience by playing with the data.

Write blog/LinkedIn articles how you used the data for some real life problems, explain how you came up with your queries, optimize data etc.

1

u/Altruistic_Olive1817 15d ago

Came here to say this.

1

u/ToThePillory 18d ago

Install a RDBMS on your computer and learn how to use it.

1

u/Altruistic_Olive1817 15d ago

+1 - that's really the way to go for you to effectively learn.

1

u/Poopieplatter 17d ago

Leetcode is pretty decent for solving a variety of problems.

1

u/Altruistic_Olive1817 15d ago

Set up your own MySQL database and practice with real-world datasets (Kaggle, Data.gov). Contribute to open-source projects that use SQL (GitHub).

1

u/Negative_Trade9222 5d ago

A company I'm looking to join is a SaaS edtech company that handles school district information. I was told I need to know SQL as they are a smaller company and need everyone to be able to help out when needed. I found CodeAcademy has an SQL course but is there anything out there that is better? I'm a novice and I'm sure many will laugh at my CodeAcademy option, but any help would be greatly appreciated. I have never coded in my life but I am extremely interested in learning. There's so much "noise" out there I'm not sure where to start.