- Learning Objectives
- Suggested Study
- Break-Down
- Class Recordings
- study.hackyourfuture.be
- home.hackyourfuture.be
What can you expect to learn in this module?
- Learn what relational database management systems (RDBMS) are
- Learn about relational models, tables, columns, rows, primary keys, foreign keys and relationships
- Learn how to write structured query language (SQL)
- Familiarize some theoretical concepts: information systems, databases, RDMBs, relational models, tables, records, attributes, fields and keys
- Learn how to navigate a (SQLite) database
- Learn how to write basic SQL queries to read data using following statements:
SELECT
,ORDER BY
,SELECT DISTINCT
,WHERE
,LIMIT
,BETWEEN
,LIKE
,GROUP BY
,JOIN
- Learn how to write basic SQL queries to create, update and delete records and tables using the following statements:
INSERT
,UPDATE
,DELETE
,CREATE TABLE
,ALTER TABLE
,DROP TABLE
- Learn about SQL injection
- SQLite - a SQL database engine
- node-sqlite3
Projects in this module will use the same folder structure & boilerplate code you learned in the previous web-apps
module, but with an SQLite database instead of a .json file.
- TablePlus is a modern, native, and friendly GUI tool for several relational databases: SQLite, MySQL, PostgreSQL & more.
- Diagram by TablePlus database diagram creator.
- DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.
- SQLite Viewer is an online SQLite editor.
- SQLite Editor by SQLite Tutorial is also an online SQLite editor, specifically for the Chinook sample database.
- vscode-sqlite is a VSCode extension to explore and query SQLite databases.
- ./node-query-scripts - practice querying an SQLite database from Node.js
- References
- Familiarize some theoretical concepts: information systems, databases, RDMBs, relational models, tables, records, attributes, fields and keys
- Learn how to navigate a (SQLite) database
- Learn how to write basic SQL queries using the following statements:
SELECT
,ORDER BY
,SELECT DISTINCT
,WHERE
,LIMIT
,BETWEEN
,LIKE
,GROUP BY
- Learn how to communicate with SQLite databases in JavaScript
- Plan and scope projects around your data
The goal is to make this a very hands-on class. Nonetheless it's important to familiarize yourself with some theoretical concepts surrounding databases before diving in. Dive in here.
Check out this week's exercises here.
Across the two weeks of this module you will be working on a project per group. You get to decide as group what you are going to build, the only requirement is that you use the Chinook database. So get creative, but it's important to scope your work so that you end up with something that works: it's better to build something small that works than something big that doesn't. The coaches will challenges you on your idea and scope.
Here's a starter repository you can use, but you don't have to.
- [ ] [Repository](https://github.com/_/_) (with a complete README)
- Project Planning
- [ ] [Backlog](https://github.com/_/_/tree/master/project-planning/backlog.md)
- [ ] [Development Strategy](https://github.com/_/_/tree/master/project-planning/development-strategy.md)
- [ ] [Project Board](https://github.com/_/_/projects/_)
- Implementation
- [ ] Deployed - [deployment link]()
- [ ] A working frontend in the `/client` directory
- [ ] Uses the SQLite Chinook database
- [ ] A working `/api` to access the the database
Continue your project efforts!
- Learn about primary keys, foreign keys, relationships and SQL injection
- Learn how to write SQL queries to read data using following statements:
JOIN
- Learn how to write basic SQL queries to create, update and delete records and tables using the following statements:
INSERT
,UPDATE
,DELETE
,CREATE TABLE
,ALTER TABLE
,DROP TABLE
Just as last week we want to focus on practice. But some preparation never hurts, right? Get a head start here
Check out this week's exercises here.
Across the two weeks of this module you will be working on a project per group. In week 2 you'll be continuing your work on the project started in week 1 with your group.
Try to finish up your project!
- Students: Here you can find recordings of this module from past classes. Enjoy!
- Coaches: When sending your PR's with links please ...
- Indicate which class you were teaching
- Which week it was (if the module is more than 1 week)
- Give your name
- and a helpful description
- Week 1
- Week 2