## Notes
<!-- Table with .md and .pdf links -->
| Name                         | .md                                    | .pdf                                    | Handwritten                                | MCQs                                  | Worksheet | Worksheet with Answers |
| ---------------------------- | -------------------------------------- | --------------------------------------- | ------------------------------------------ | ------------------------------------- | --------- | ---------------------- |
| Database Fundamentals        | [1](notes/01-database-fundamentals.md) | [2](notes/01-database-fundamentals.pdf) | [3](notes/01-database-fundamentals-hw.pdf) | [4](mcqs/01-database-fundamentals.md) | _ | _ |
| Data Integrity & ER Diagrams | [1](notes/02-integrity-er-diagram.md)  | [2](notes/02-integrity-er-diagram.pdf)  | [3](notes/02-integrity-er-diagram-hw.pdf)  | [4](mcqs/02-integrity-er-diagram.md)  | _ | _ |
| Data Normalisation and ACID  | [1](notes/03-normalisation-acid.md)    | [2](notes/03-normalisation-acid.pdf)    | [3](notes/03-normalisation-acid-hw.pdf)    | [4](mcqs/03-normalisation-acid.md)    |_ | _ |
| Transactions and Indexes     | [1](notes/04-transactions-indexes.md)  | [2](notes/04-transactions-indexes.pdf)  | [3](notes/04-transactions-indexes-hw.pdf)  | [4](mcqs/04-transactions-indexes.md)  | _ | _ |
| SQL Primer                   | [1](notes/05-sql-primer.md)            | [2](notes/05-sql-primer.pdf)            | [3](notes/05-sql-primer-hw.pdf)            | [4](mcqs/05-sql-primer.md)            | [5](notes/05-sql-primer-worksheet.md) | [6](notes/05-sql-primer-worksheet-answers.md) |
| SQL Joins and Aggregation | [1](notes/06-sql-joins-aggregation.md) | [2](notes/06-sql-joins-aggregation.pdf) | [3](notes/06-sql-joins-aggregation-hw.pdf) | [4](mcqs/06-sql-joins-aggregation.md) | [5](notes/06-sql-joins-aggregation-worksheet.md) | [6](notes/06-sql-joins-aggregation-worksheet-answers.md) |
| Subqueries and Functions | [1](notes/07-subqueries-functions.md)  | [2](notes/07-subqueries-functions.pdf)  | [3](notes/07-subqueries-functions-hw.pdf)  | [4](mcqs/07-subqueries-functions.md)  | [5](notes/07-subqueries-functions-worksheet.md) | [6](notes/07-subqueries-functions-worksheet-answers.md) |


## Assignments

### ER Diagram
Download the ER diagram from [here](media/student-er.drawio) and import it into [draw.io](https://www.draw.io/).

* Add the `mentor` entity
* Modify `batch` to add more attributes
* Add relationships between the `mentor` and `batch` entities. A mentor can be assigned to multiple batches and a batch can have multiple mentors.


### Problem sets
1. [**Simple - I**](https://leetcode.com/problems/big-countries/)
2. [Simple - II](https://leetcode.com/problems/find-customer-referee//)
3. [**Joins - I**](https://leetcode.com/problems/employees-earning-more-than-their-managers/)
4. [Joins - II](https://leetcode.com/problems/combine-two-tables/)
5. [**Aggregation - I**](https://leetcode.com/problems/duplicate-emails/)
6. [Join - III](https://leetcode.com/problems/delete-duplicate-emails/)
7. [Aggregation - II](https://leetcode.com/problems/customer-placing-the-largest-number-of-orders/)
8.  [Aggregation - III](https://leetcode.com/problems/classes-more-than-5-students/)
9.  [Subqueries - I](https://leetcode.com/problems/customers-who-never-order/)
10. [Subqueries - II](https://leetcode.com/problems/sales-person/)
11. [Dates - I](https://leetcode.com/problems/rising-temperature/)

Bold problems were solved during the session.

## RDBMS
* [MySQL](https://www.mysql.com/)
* [PostgreSQL](https://www.postgresql.org/)
* [SQLite](https://www.sqlite.org/)

## SQL clients
* [TablePlus](https://www.tableplus.com/)
* [MySQL Workbench](https://www.mysql.com/products/workbench/)

## Online Playgrounds
* [SQL Fiddle](http://sqlfiddle.com/)

## Links
* [Awesome database learning](https://github.com/pingcap/awesome-database-learning)
* [SQL Cheat Sheet](https://learnsql.com/blog/sql-basics-cheat-sheet/sql-basics-cheat-sheet-a4.pdf)
