.. dataset documentation master file, created by
sphinx-quickstart on Mon Apr 1 18:41:21 2013.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
dataset: databases for lazy people
==================================
.. toctree::
:hidden:
Although managing data in relational database has plenty of benefits, we find them rarely being used in the typical day-to-day work with small to medium scale datasets. But why is that? Why do we see an awful lot of data stored in static files in CSV or JSON format?
Because **good programmers are lazy**, and thus they tend to prefer the easiest solution they find. And managing data in a databases simply wasn't the simplest solution to store a bunch of structured data. This is where ``dataset`` steps in!
Dataset is here to **take the pain out of databases**. It makes reading and writing data in databases as simple as reading and writing JSON files.
In short, ::
import dataset
db = dataset.connect('sqlite:///database.db')
db['sometable'].insert(dict(name='John Doe', age=37))
db['sometable'].insert(dict(name='Jane Doe', age=34, gender='female'))
Now look at `similar code, without dataset <https://gist.github.com/gka/5296492>`_.
Features
--------
* **Automatic schema**: If a table or column is written that does not
exist in the database, it will be created automatically.
* **Upserts**: Records are either created or updated, depdending on
whether an existing version can be found.
* **Query helpers** for simple queries such as all rows in a table or
all distinct values across a set of columns.
Contents
--------
.. toctree::
:maxdepth: 2
quickstart
api