Recs.
Updated
SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
SpecsUpdate
Pros
Pro Portable
An SQLite database is a single ordinary disk file that can be located anywhere in the directory hierarchy. It works by sending requests to a single file where all the data is kept instead of communicating with a hosted database which gives access to an interface by making use of sockets and ports. The file format used is also cross-platform, so can easily be migrated to various machines.
This makes SQLite extremely portable throughout different applications, all that's needed to transfer the whole database is to make a copy of the file.
Pro Great for testing and first stages of development
Because of it's ability to scale and with the portability that a single-file database gives you without losing much of the power and features that SQL gives developers, it's a great choice for testing applications and for the early stages of development when the workload and the data that needs to be stored is not that large.
Pro Great language support
SQLite has bindings for a large number of programming languages, including BASIC, Delphi, C, C#, C++, Clipper//Harbour, Common Lisp, Curl, D, Free Pascal, Haskell, Java, JavaScript, Livecode, Lua, newLisp, Objective-C (on OS X and iOS), OCaml, Perl, PHP, Pike, PureBasic, Python, R, REALbasic, REBOL, Ruby, Scheme, Smalltalk, Tcl, Visual Basic.
Cons
Con No multi-user
Lacks multi-user capabilities, see SQLite vs. MySQL vs. PostgreSQL: A Comparison of Relational Databases.
Also see: Appropriate Uses For SQLite.