SQLite is a fast and very capable stand alone database. It has transactions, views and subselects. DBD::SQLite is distributed with the entire database engine. That means there are no version incompatibilities and that you don't have to install sqlite first.
This is an excellent module. I use it for every small project that needs a database.
So long, MySQL.
Update november 2007: Took 1 star away because UTF8 issues remain unresolved.
Small, reliable, very easy to install, minimal dependencies, easy to use, neatly segregated, and very fast. Allows user-defined DB functions to be written in Perl! This module is a benchmark to which other module-writers should aspire. The integration with the already-beautiful SQLite API is sublime, the redistribution of the libs a refreshing change.
What's more, this is one of the very few Perl XS extensions that builds everywhere I use it.
Together with DBD::Pg and DBD::Oracle, DBD::SQLite is a member of my "Holy Trinity" of database drivers.
The three form a very clean upgrade path from "small embedded database" -> "real database" -> "money is no object" and their SQL fairly easy to port between.
Further, DBD::SQLite follows Elaine's Law to the letter "Just make it fucking easy to install". Matt was one of the first people to use the tactic of just bundling the entire C codebase inside the CPAN module, and this has worked brilliantly.
To take this further, as of 1.13 DBD::SQLite now installs flawlessly not just on Unix, but on Win32 as well, so now it is completely safe to use as a cross-platform dependency on the three major (*NIX, Mac, Win32) platforms.
I have nothing but praise for SQLite and DBD::SQLite. With this duo, you are suddenly free to use a relational datastore for each, every and any script, however trivial, without all the overhead associated with administrating and managing a database server that would usually keep you from doing so.
SQLite is not the best choice for applications with high demand for scalability and concurrency where a traditional database engine can keep up significantly better; but really, that goes without saying and is beside the point.
This is one of my favorite modules, not only for prototyping database
applications but also for general purpose single-user applications.
I have a large collection of small tools built upon sqlite that I
rely on all the time.
SQLite is a true jewel with an unbeatable combination of features, speed and simplicity. DBD::SQLite does an excellent job of making it accessible to the Perl world. The only functionality I miss in the Perl version is the ability to create your own collate functions. But this is a minor issue and easy to work around.
Excellent! I just "make install" and I have a complete database manager. I don't need to pollute my laptop or workstation with a server installation, I can pass the database files around from platform to platform, and I can distribute SQL-reliant tests without requiring a big scary RDBMS.
I see a lot of personal database applications coming on...
DBD::SQLite simply rocks. If you need an extremely fast database-enabled application with very few dependencies this is the ticket. I consider DBD::SQLite in my top-ten list of most useful CPAN distributions. I really can't overstate how useful it can be. With blazing speed, rapid development, stability, and reliability, this distribution has it all.
DBD-SQLite is just a speed devil. After noticing that my application's speed dropped 900% with DBD::CSV (and _huge_ ammounts of data), I switched to DBD-SQLite. No problem here. The speed is just amazing.
Great module for people who _do_ need a database, but who don't want to force their users to install packages like MySQL/PostgreSQL (which can be overkill).
The documentation could have been a little better -I always love a lot of examples-, but Google is -as always- your friend. I got a simple test script running in seconds.
I am more than pleased with this module and recommend it to everyone.
DBD::SQLite gives you the power of a relational database, without the hassle of having to actually administrate it: the modules comes with the data base library nad a data base is stored into a single file. Which means that the install is as simple as typing "i DBD::SQLite" in CPANPLUS, and the administration consists in setting the right permissions on the file. Backups can be done using cp.
I use it for log analysis, data mining... basically every time I would previously have used a big flat text file. It gives me the power of SQL and the speed of database.
I only use it in single user mode though, my attempts at doing concurrent access were not too successful (that was a while ago though, so it might be fixed now).