��ǰλ��: > ����Զ���������� > Ƕ��ʽѧϰ > ��ʦ���� > linux�ں����ݿ�sqlite3����ֲ�ͼ򵥲���
linux�ں����ݿ�sqlite3����ֲ�ͼ򵥲���
ʱ�䣺2016-12-12���ߣ�����Զ��

����Ƕ��ʽlinux�����ݿ���Ҫ��SQLite, Firebird, Berkeley DB, eXtremeDB

�⼸�����ݿ���ص㣺

1.Firebird�ǹ�ϵ�����ݿ�,����ǿ��,֧�ִ洢���̡�SQL���ݵ�
        2.SQLite��ϵ�����ݿ�,���С,֧��ACID����
        3.Berkeley DB�в�û�����ݿ�������ĸ�����ij����ֱ�����ӵ�Ӧ�ó�����
        4.eXtremeDB���ڴ����ݿ�,����Ч�ʸ�

SQLite��Դ������C����Դ������ȫ���ţ���һ����������Ƕ��ʽ���ݿ⡣

SQLite���������ԣ�
        ������һ���谲װ�͹������ã�
        �����ڵ�һ�����ļ��е�һ�����������ݿ⣻
        ���ݿ��ļ������ڲ�ͬ�ֽ�˳��Ļ��������ɹ����
        ֧�����ݿ��С��2TB��
        �㹻С��ȫ��Դ�����3����c���룬250KB��
        ��Ŀǰ���еĴ�������ݿ�����ݵIJ���Ҫ�죻
        ������ݿ�����Ƚϼ򵥣�����Ҫ��װ���ݿ⣺

����ܼ򵥣���http://www.sqlite.org/download.html���sqlite��ҳ������Ŀ¼���ҵ���Ӧ��linux�汾��������ɺ��ѹ��ִ������� configure����ͼ��


ִ����֮��Ҫִ�� sudo make && make install

�ȴ�һ��ʱ��Ϳ��԰�װ��ɡ�

����Ժ�һ������sqlite3��ִ���ļ���·����������ͼ��


��/usr/local/binĿ¼�

Ϊ���Ժ�ķ��㣬���Խ���Ŀ¼���뵽����������ȴ� sudo vim /environment ��·�����뵽�����ν�sqlite3 ��ֲ�����������أ�

1��ȥ��/root/sqlite3.3.6Ŀ¼�µ�sqlite3�ĵ�ʾ��Ϣ�����׳������
#arm-linux-strip sqlite3

2����sqlite3���ص��������/usr/binĿ¼��
        ��PC����Ŀ¼/usr/lib ���ҵ�libsqlite3.so.0��libsqlite3.so.0.8.6���������ļ���ȥ���ʾ��Ϣ������Ǹ��Ƶ��������/usr/libĿ¼�£�
        arm-linux-strip libsqlite3.so.0 (/home/linux/sqlite/lib)
        arm-linux-strip libsqlite3.so.0.8.6 (/home/linux/sqlite/lib)
        cp �Carf libsqlite3.so.0 libsqlite3.so.0.8.6 /usr/lib ����arf��Ŀ���ǽ�Դ�⿽����ǧ���ֻ���������ӣ���ô�ͱ����ˡ�����

�������ϲ��裬�������Ͼ��Ѿ�����sqlite���ݿ⡣ sqlite��һЩ��������������������һ�£�SQL��䶼��ͨ�õģ����ԱȽ���Ҫ����sqlite3�ع���һЩ�������ݿ�Ľӿڣ�

int sqlite3_open(char *path, sqlite3 **db)��
        ���ܣ���sqlite���ݿ�
        path�� ���ݿ��ļ�·��
        db�� ָ��sqlite�����ָ��
        ����ֵ���ɹ�����0��ʧ�ܷ��ش�����(����ֵ)

int sqlite3_close(sqlite3 *db);
        ���ܣ��ر�sqlite���ݿ�
        ����ֵ���ɹ�����0��ʧ�ܷ��ش�����
        const char *sqlite3_errmg(sqlite3 *db);
        ����ֵ�����ش�����Ϣ

gcc -o test test.c -lsqlite3
        }
�ص������Ķ��壺
typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);
}
        ���ܣ�ÿ�ҵ�һ����¼�Զ�ִ��һ�λص�����
        para�����ݸ��ص������IJ���
        f_num����¼�а������ֶ���Ŀ
        f_value������ÿ���ֶ�ֵ��ָ������
        f_name������ÿ���ֶ����Ƶ�ָ������
        ����ֵ���ɹ�����0��ʧ�ܷ���-1
int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
        ���ܣ�ִ��SQL����
        db�����ݿ���
        sql��SQL���
        callback���ص�����
        errmsg��������Ϣָ��ĵ�ַ
        ����ֵ���ɹ�����0��ʧ�ܷ��ش�����

���磺����һ���ص���������ӡ��¼�������ֶε����ƺ�ֵ
int callback(void *para, intf_num, char **f_value, char **f_name)
{
        int i;
        printf("*****************************\n");
        for (i=0; i< f_num; i++)
        {
        printf("%s : %s\n", f_name[i], f_value[i]);
        }
        return 0;
}
sqlite3 *db;
char *errmsg;

����
if (sqlite3_exec(db, "select * from table", callback, NULL, &errmsg) != SQLITE_OK)
{
        printf("error : %s\n", errmsg);
        exit(-1);
}
����

��ʹ�ûص�����ִ��SQL���
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg);
�������ܣ�ִ��SQL����
����������
        db�����ݿ���
        sql��SQL���
        resultp������ָ��sqlִ�н����ָ��
        nrow�����������ļ�¼����Ŀ
        ncolumn��ÿ����¼�������ֶ���Ŀ
        errmsg��������Ϣָ��ĵ�ַ
����ֵ���ɹ�����0��ʧ�ܷ��ش�����

sqlite3 *db;
char *errmsg��**resultp;
int nrow, ncolumn, i, j, index;
����
if (sqlite3_exec(db, "select * from table", &resultp, &nrow, &ncolumn, &errmsg) != SQLITE_OK)
{
        printf("error : %s\n", errmsg);
        exit(-1);
}
index = ncolumn; // ��һ����¼�ĵ�һ���ֶε��±�
for (i=0; i< nrow; i++)
 {
        for (j=0; j< ncolumn; j++)
        {
        printf("%s : %s\n", resultp[j], resultp[index++]);
        }
}
�����⼸�����������ݿ�IJ����ͻ�����OK��.

��������
�����б���������۽������ѱ����˿���������������վͬ����۵��֤ʵ��������