Software Carpentry
Relational Databases


Introduction


You Can Skip This Lecture If...


History


When To Use A Database


Getting Started


Example: Experimental Data


Using SQL


Creating Tables


Inserting Data


Simple Queries


Sorting


Selection


Joins


Example: Translating IDs


Keys and Constraints


Eliminating Duplicates


Aggregation


Grouping


Self Joins


Using Self Joins


Who Has Worked Together?


Null


Operations on Nulls


Managing Nulls


Database Design


Normal Forms


Nested Queries


Nested Query Example


More Uses for Nested Queries


Using Other Languages


Example: Database Access from Python


Concurrency


Transactions


Example: Changing User ID


Using Transactions


Testing


Advanced Topics


Summary