Welcome back to the Journey to Web3 blog series. <usual_enterance> If you're new here I'm creating this blog series as I go from coding newbie to working in web3. I'm creating this to reflect on the technical and non-technical growth and to leave it behind for others who might be interested in how they can follow a similar path. </usual_enterance>
This week has been focused on learning MySQL workbench and utilizing database queriers. Week 6 was a bit of a doozy for me, having to deal with some dense materials while navigating some brain fog was difficult. I pulled through it though and finished the course excluding 3 final practice assignments that I want to save and work on with others in a group environment (per the recommendations in the material). At this point, I am ahead in the program by a week, so I tried not to be too hard on myself about the struggle.
MySQL
Unfortunately, Publish0x does not have code snippet options for SQL so I won't be sharing any of the actual code as examples of what I've managed to learn, but you can check the assignments here on the GitHub repo for the course on MySQL.
Entity Relationship Diagram (ERD)
These are the visual plans for the database. It's how the database will be structured and SQL is used to change and interact with data depending on what we tell the ERD to act like.
Database Relations
One to One: each specific record has a unique id
One to Many: the single id can be associated with more than one record
Many to Many: each record can have more than one id and each id can have more than one record, but no combination occurs more than once
Normalization
Normalization is about categorizing data better to avoid repetition. It has 3 forms.
Form 1: a column in the table must only contain a single value
Form 2: a column in the table that is not a key must only have unique keys
Form 3: non key columns in your table cannot be reliant on one another
Type of Data
The most common data types when working with MySQL are;
- VARCHAR(number of characters)
- CHAR(number of characters)
- INT
- BIGINT
- TINYINT
- FLOAT
- TEXT
- DATETIME
Queries
The information from this section was pretty large, so the areas that I covered are below, and you can see how they were used here in the repo.
- import
- SELECT
- INSERT
- UPDATE
- DELETE
- Functions
- Joins
- Left Joins
- Export
- Forward Engineer
What's Next?
I've wrapped up the entire MySQL course this week (long nights, every night) and so moving into next week I'll be taking on the Flask course. In addition to the course this week, I'll be working with a TA from the program to expand on some of these skills by building a web application that ties into a current TikTok trend of whether there are more doors or wheels in the world. This will be a simple site where users can submit their count of doors and wheels from their homes and it will store these values and display the current count for both.
I am also working on building a team for a web3 hackathon, depending on which hackathon we choose to pursue (I have found two options), that will affect which additional technical education I will pursue to prepare.
If you'd like to join the learning community I'm building on Discord for web3, you can find the link for that here. It's a space that I am trying to build for myself and others to share their growing knowledge of all things web3.
You can also find me here:
LinkedIn | GitHub | Twitter | My Website