<commit_before># Database Abstraction Layer

This is the web2py's Database Abstraction Layer. It does not require web2py and can be used with any Python program. It is documented here:

http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer

## Quick example

    >>> from dal import DAL, Field
    >>> db = DAL('sqlite://storage.db')
    >>> db.define_table('thing',Field('name'))
    >>> db.thing.insert(name="Chair')
    >>> query = db.thing.name.startswith('C')
    >>> rows = db(query).select()
    >>> print rows[0].name
    Chair

## Supported Databases

sqlite, postgresql, mysql, mssql, db2, firebird, sybase, oracle, informix, teradata, sapdb, ingres, cubrid, imap, mongodb

## Features<commit_msg>readme fixes<commit_after># Database Abstraction Layer

This is the web2py's Database Abstraction Layer. It does not require web2py and can be used with any Python program.

## Tests

[![Build Status](https://img.shields.io/travis/web2py/pydal.svg?style=flat-square)](https://travis-ci.org/web2py/pydal)

It is documented here:

http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer

## Quick example

    >>> from pydal import DAL, Field
    >>> db = DAL('sqlite://storage.db')
    >>> db.define_table('thing',Field('name'))
    >>> db.thing.insert(name="Chair')
    >>> query = db.thing.name.startswith('C')
    >>> rows = db(query).select()
    >>> print rows[0].name
    Chair

## Supported Databases

sqlite, postgresql, mysql, mssql, db2, firebird, sybase, oracle, informix, teradata, sapdb, ingres, cubrid, imap, mongodb

## Features
{'fraction_non_alphanumeric': 0.1524047470331043, 'fraction_numerical': 0.012492192379762648, 'mean_word_length': 4.201298701298701, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 45, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4453374', 'n_tokens_mistral': 556, 'n_tokens_neox': 537, 'n_words': 133}