Currently (as sqlite version 3.5.5) has no built-in compression support. But you can easily add this feature by yourself. sqlite has a feature called Loadable Extensions . Loadable extensions let's you add new features to sqlite.
First off all, you have to enable loadable extension support when you compile sqlite. All you have to do is edit "Makefile.in" file in source directory and comment out following line:
# TCC += -DSQLITE_OMIT_LOAD_EXTENSION=1
Now you can compile and install your sqlite package.
After that copy sqlite compression extension file in to sqlite's source directory (eg. sqlite-3.5.5/src).
Then compile it:
gcc -I`pwd` -shared src/compress.c -o mycompress.so -lz
now you can copy mycompress.so file in to /lib directory.
This extension adds 2 new functions called mycompress and myuncompress.
now, run sqlite to test it.
# load extension
sqlite> .load mycompress.so
#create a test table
sqlite> create table test(name varchar(20),surname varchar(20));
# insert into test table some text by compressing text, you can also compress binary content and insert it into a blob field
sqlite> insert into test values(mycompress('This is a sample text'),mycompress('This is a sample text'));
# this shows nothing because our data is in binary format and compressed
sqlite> select * from test;
#following works, it uncompresses the data
sqlite> select myuncompress(name),myuncompress(surname) from test;
Ok, now we have compression support for sqlite database. Also, it's possible to use this functions in your applications which is written in C language.