Skip to content

Commit

Permalink
intro
Browse files Browse the repository at this point in the history
  • Loading branch information
btholt committed Aug 16, 2024
1 parent aece1fa commit 2fdefa7
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 88 deletions.
147 changes: 69 additions & 78 deletions lessons/01-welcome/A-intro.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,69 @@
---
---

```
0930: Introduction
1000: Getting started with SQLite
1100: SQL Basics
1200: Lunch
1300: Data types
1400: Managing SQLite tables and databases
1500: Indexing
1600: Transactions\
0930: Extensions
1000: Scaling SQLite
1100: SQLite vs other databases
1200: Lunch
1300: Building real-world apps with SQLite
1400: Wrap-up
```

Agenda:

Intro to SQLite Conceptual

- Brief history
- It's everywhere
- It runs on everything
- Now it can scale up

Intro to SQLite Execution

- It's a file
- It's still SQL
- https://www.sqlite.org/omitted.html
- https://www.sqlite.org/quirks.html
- CLI
- Chinook: https://github.com/lerocha/chinook-database

SQL Basics

- Selects
- Inserts
- Updates
- Deletes
- Order
- Tables

A bit more advanced

- Relationships
- Joins
- Foreign Keys
- Functions / Aggregations / Group
- Query Performance
- Transactions

Node.js Exercise: Show movies

Particular to SQLite

- Dynamic Data Types
- Limits
- Triggers
- Views

Extensions

- JSON
- Full Text Search
- Vector

Growing SQLite

- Litestream / Backups
- LiteFS / Network Access
- SQLite vs libSQL

TODO – subqueries
Hello! And welcome to the Complete Intro to SQLite, as taught by Brian Holt for Frontend Masters. In this course you will get learn the basics of SQL, the core features of SQLite, how to build a Node.js app with SQLite, what interesting and unique to SQLite as compared to other databases, some advance JSON ways to use SQLite, and what the future holds for SQLite with things like Litestream, LiteFS, and libSQL.

## Who is this course for?

You, hopefully. This course shouldn't be your first exposure to programming or the command line, and it does use a bit of JavaScript so it would help if you knew bit of JavaScript. There's also some very light Docker use but I'll explain all of it so it's okay if you don't need Docker. Luckily I've taught courses on these subjects if you want to brush up!

- [Complete Intro to Web Dev][web-dev]
- [Complete Intro to Linux and the CLI][cli]
- [Complete Intro to Containers][containers]

These are great if you need help on any of those subjects. You do not any exposure to SQL prior to this course, the first part of it is basic querying in SQL. It is a brief intro, and if you want SQL, you can take my [Complete Intro to SQL][sql] which uses Postgres but nearly all of it would apply to SQLite as well.

## Who am I?

My name is Brian and I am a staff product manager at [Neon][neon]. Neon is now my _third_ database company I've worked (fourth if you count Microsoft!) and I just love working developers and data. Have a good grasp of databases is essential to any app building and a little bit of skill and experience here will serve you well throughout your entire career!

Prior to Neon, I've work as a PM and engineer at SQLite Cloud, Snowflake, Stripe, Microsoft, LinkedIn, Netflix, Reddit, and some other smaller companies. I've also been fortunate to teach at Frontend Masters a number of times and I'll keep doing it until they kick me out!

I'm a recent transplant to Sacramento, CA. Previous to that, I've lived in Salt Lake City, San Francisco, Seattle, Montana, and northern Italy. When not teaching or working you'll find me snowboarding, playing Dota 2 poorly, drinking a cold beer, hot coffee, or smoky whisky, playing with my son and dog, and hacking on some side project for fun.

Please catch up with me on social media, would love to chat. I will warn you: I am awful at responding to direct messages!

- [Twitter][twitter]
- [GitHub][github]
- [LinkedIn][linkedin]

## What tools are your using?

- Visual Studio Code – I used to work at Microsoft on VS Code so it's no surprise that I'll be using it in this course.
- Firefox – I want more than Chromium to exist so I support Firefox where I can. Feel free to use any browser; it won't matter in this course.
- Terminal.app – I used to use iTerm2 and Hyper but in the end I appreciate how fast the default terminal is.
- Docker Desktop – the last sections of the course lightly use Docker. Feel free to install it and follow along or just watch and read if you don't want to install Docker.

## What <font/theme/extension> are you using?

- Visual Studio Code
- Dark+ Theme – It comes installed by default but it's not the default theme anymore. I'm so used to it that I can't switch.
- [MonoLisa][monolisa] font – I like fonts and I look at it all day so I was okay paying for it. I have [ligatures][ligatures] enabled which is why you might see strange glyphs. If you want ligatures but don't want to pay, the linked ligature article has a few. I like Cascadia Code from Microsoft.
- [vscode-icons][vscode-icons] – Lots of neat icons for VS Code and it's free.
- Terminal
- zsh – It comes with macOS now and I'm _way_ too lazy to switch back to bash.
- [Dracula theme][dracula] – I like the pastels. I would use it in VS Code too if Dark+ wasn't ingrained in my blood.
- [Starship Prompt][starship] – Very cool prompt that's just pretty. Also shows you what sort of project you're in which is occasionally useful
- [CaskaydiaCove Nerd Font][nerd] – This works with Starship prompt to give you the JS logos and all those extra glyphs. It's based on Cascadia Code.

## Where to File Issues

I write these courses and take care to avoid making mistakes. However, when teaching hours of material, mistakes are inevitable, both here in the grammar and in the course with the material. However, I (and the wonderful team at Frontend Masters) are constantly correcting the mistakes so that those of you that come later get the best product possible. If you find an error, we'd love to fix it. The best way to do this is to [open a pull request or file an issue on the GitHub repo][issue]. While I'm always happy to chat and give advice on social media, I can't be tech support for everyone. And if you file it on GitHub, those who come later can Google the same answer you got.

## Star this repo!

I would love it if you would take a sec and [star the repo on GitHub][star]

[web-dev]: https://frontendmasters.com/courses/web-development-v3/
[cli]: https://frontendmasters.com/courses/linux-command-line/
[containers]: https://frontendmasters.com/courses/complete-intro-containers-v2/
[sql]: https://frontendmasters.com/courses/sql/
[neon]: https://neon.tech/
[twitter]: https://twitter.com/holtbt
[github]: https://github.com/btholt
[linkedin]: https://www.linkedin.com/in/btholt/
[ligatures]: https://worldofzero.com/posts/enable-font-ligatures-vscode/
[monolisa]: https://www.monolisa.dev/
[vscode-icons]: https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons
[dracula]: https://draculatheme.com/terminal
[starship]: https://starship.rs/
[nerd]: https://www.nerdfonts.com/font-downloads
[issue]: https://github.com/btholt/complete-intro-to-sqlite/issues
[star]: https://github.com/btholt/complete-intro-to-sqlite
4 changes: 1 addition & 3 deletions lessons/02-running-sqlite/A-installing-sqlite.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@ If you need an alternative way to that (or need to get 3.46.0 specifically like

## Chinook

We'll also be using [Chinook][chinook], a sample set of data. Please download the v1.4.5 Chinook_Sqlite.sql file as well. I'll teach you how to use it in a bit, but suffice to say it's a dataset about movies that we'll use to have a quick intro to querying.

## Start my server
We'll also be using [Chinook][chinook], a sample set of data. Please download the v1.4.5 Chinook_Sqlite.sqlite file as well. I'll teach you how to use it in a bit, but suffice to say it's a dataset about music that we'll use to have a quick intro to querying.

[download]: https://sqlite.org/download.html
[windows]: https://sqlite.org/2024/sqlite-dll-win-x64-3460000.zip
Expand Down
4 changes: 2 additions & 2 deletions lessons/09-scaling-sqlite/C-libsql.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Run the query to add all the rows to the database. Once you've done that, [clone
[sqld]: https://github.com/tursodatabase/libsql/blob/main/docs/BUILD-RUN.md#build-and-run-sqld
[user]: https://github.com/tursodatabase/libsql/blob/main/docs/USER_GUIDE.md
[bruno]: https://www.usebruno.com/
[query]: /public/chinook-sqld.json
[postman]: /public/sqld-collection.json
[query]: /chinook-sqld.json
[postman]: /sqld-collection.json
[repo]: https://github.com/btholt/sqlite-app-libsql
[sqlite3]: https://github.com/libsql/libsql-node-sqlite3
[sdk]: https://github.com/tursodatabase/libsql-js
5 changes: 0 additions & 5 deletions lessons/09-scaling-sqlite/E-take-sqlite-to-the-cloud.md

This file was deleted.

Empty file.

0 comments on commit 2fdefa7

Please sign in to comment.