About 3.5-4 hours
Most software applications store data of some sort – user data, content, etc. Databases are used to store data, so software developers should know how to use them. Relational databases are a common type of database that are good for storing many types of data.
Most companies use relational databases to store their data.
Participants will be able to:
SELECT * FROM food;
select * From fOOd;
psql
to use PostgreSQL.CREATE TABLE food (name TEXT, calories INTEGER);
.tables
to see the list of all existing tables.INSERT INTO food VALUES ("pizza", 500);
SELECT * from food;
In PostgreSQL on your own machine, you are going to create the tables for a microblogging platform (an app similar to Twitter). Your database should be able to store user information and posts by specific users. One post must belong to exactly one user. One user can have many posts. Later, we’ll add the ability for users to follow each other, but not now.
With pencil/pen and paper, write out the data for a database with the following spec. Fill in the fields with fake data that you make up. Be sure to link posts to a certain existing user!
users
name
email
posts
user_id
content
Use the psql
command in your terminal to enter the PostgreSQL command line program. Once there, use SQL statements to create two tables according to the spec for the two tables in step 1.
Once you have your two tables set up, compare your table set up with another apprentice’s.
Add sample data to the tables yourself (make up some users and posts).
Try writing queries that get data such as:
Now let’s perform a database migration. We will add a new column to an existing table in our database. Add a text field named: bio
to your existing users
table!
Add some sample data to your new bio
fields, but not for every user (leave some of their bios blank).
If you complete the above, we’ll move on to creating a join table.
Add a new table named follows
that has an int field follower_id
and an int field followed_id
. Draw a picture for this table.
follows
, look for follower_id
2, and get all of the user IDs that are in those rows’ followed_id
fields. Then get the users by that set of user IDs.followed_id
)
follows
, look for followed_id
2, and get all of the user IDs that are in those rows’ follower_id
fields. Then get those users.