linux 下按在sqllite

时间:2023-06-26 23:18:14

1 安装

去sqlite主页http://www.sqlite.org/.跳转到下载也http://www.sqlite.org/download.html。源码下载sqlite-amalgamation-3.7.3.tar.gz

我去的时候是3.7.3版现在估计升级了。

进入下载目录,解压文件tar -zxvf sqlite-amalgamation-3.7.3.tar.gz.

解压后生成sqlite-3.7.3目录. cd 进入sqlite-3.7.3。

./configure

make

sudo make install

安装完成。

2测试

在任意目录下新建一个数据库,比如student ,

命令: sqlite3 student

出现如下提示:

SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

输入.help可以看到命令列表。

输入sql语句create table user(username text primary key, password text); 建一张user表

输入sql语句insert into user values("tianyou121", "123"); 插入一个用户。

输入sql语句select * from user; 可以查看user表.

输入sql命令是记得结尾的';'号。

可以输入如下程序测试数据库:

1 #include <stdio.h>
  2 #include <stdlib.h>
  3
  4 #include <sqlite3.h>
  5
  6 int myfunc(void *p, int argc, char **argv, char **argvv)
  7 {
  8         int i;
  9         *(int *)p = 0;
 10         for(i =0; i < argc; i++)
 11         {
 12                 printf("%s = %s ", argvv[i], argv[i] ? argv[i] :"NULL");
 13         }
 14         putchar('/n');
 15         return 0;
 16 }
 17
 18 int main(int argc, char *argv[])
 19 {
 20         sqlite3 *db;
 21         char *err =0;
 22         int ret =0;
 23         int empty =1;
 24
 25         ret = sqlite3_open("student",&db);
 26         if(ret !=SQLITE_OK)
 27         {
 28                 fputs("/n",stderr);
 29                 exit(1);
 30         }
 31         ret = sqlite3_exec(db, "select * from user;", myfunc, &empty, &err);
 32
 33         if(ret != SQLITE_OK)
 34         {
 35                 fputs(err,stderr);
 36                 fputs("/n",stderr);
 37                 sqlite3_close(db);
 38                 exit(1);
 39         }
 40
 41         if(empty)
 42         {
 43                 fputs("table student is empty/n", stderr);
 44                 exit(1);
 45         }
 46
 47         sqlite3_close(db);
 48
 49         return 0;
 50 }

保存文件为sqlite3_t.c和数据库文件放在一个目录下。
用gcc 编译:gcc -o sqlite_t sqlite3_t.c -lsqlite3

记得加上-lsqlite3指定库文件,否则编译不通。

./sqlite_t

可以看到user表中用户信息。