sqlite3在Linux下的安装和使用
Read more: How to Install SQLite 3 in Ubuntu | eHow http://www.ehow.com/how_8463512_install-sqlite-3-ubuntu.html#ixzz2U4yhrano
2008-06-10 16:51:14| 分类: sqlite |字号 订阅
一.本地sqlite3的安装和配置
下载sqlite3源码包
tar xvfz sqlite-src-3.3.5
cd sqlite-3.3.5
./configure –no-tcl
make
(如果在arm板上用需修改Makefile,在LIBS 项中加入 –L/usr/local/arm/3.3.2/lib 保存后退出.然后再make)
安装成功后生成文件将被复制到指定目录
再加入一个环境变量
vi /etc/profile
在export区域加入 SQLITE3_PATH=/usr/local/sqlite-3.3.5 保存后退出
source /etc/profile
有用文件分别为 $SQLITE3_PATH/include/sqlite3.h 头文件
$SQLITE3_PATH/bin/sqlite3 可执行文件
$SQLITE3_PATH/lib/libsqlite3.a
libsqlite3.la
libsqlite3.so -> libsqlite3.so.0.8.6
libsqlite3.so.0 -> libsqlite3.so.0.8.6
libsqlite3.so.0.8.6
在程序使用到数据库
#include <sqlite3.h>
在.pro文件中添加:
INCLUDEPATH +=$(SQLITE3_PATH)/include
DEPENDPATH +=$(SQLITE3_PATH)/include
LIBS +=-L$(SQLITE3_PATH)/lib
LIBS +=-lsqlite3
保存后退出
tmake hello.pro –o Makefile
make
二.程序的编写:
sqlite3 *db;
int rc = sqlite3_open(“data.db”,&db); //打开数据库data.db
if(rc!=SQLITE_OK);//打开失败
创建表rc = sqlite3_exec(db,”create table student(ID integer
primarykey,name nvarchar(32))”,NULL,NULL,&mrrmsg);
插入rc = sqlite3_exec(db,”insert into student values(‘3’,’Zhang San’)”,0,0,&mrrmsg);
修改rc = sqlite3_exec(db,”update student set name=’Li Si’ where ID=’4’”,0,0,&mrrmsg);
删除rc = sqlite3_exec(db,”delete * from student where name=’Wang Wu’”,0,0,&mrrmsg);
查询是重点
回调式查询 rc = sqlite3_exec(db,”select * from student where ID>2
and name<>’Zhang San’”,LoadInfo,NULL,&mrrmsg);
查询的结果通过LoadInfo函数来导出
typedef int(*sqlite3_callback)(void *,int char ** ,char **);
int LoadInfo(void *para, //db
int n_column, //记录的列数目
char** column_value,//查出值
char** column_name)//字段名称
{
int i;
printf(“记录含%d个字段\n”,n_column);
for(i=0;i<n_column;i++)
printf(“字段名:%s , 字段值:%s \n”,column_name[i],column_value[]i);
return 0;
}
函数式查询 rc = sqlite_get_table(db,”select ID from student where ID>2
and name<>’Zhang San’”,&result,&nrow,&ncolumn,&errmsg);
char** result;
int nrow,ncolumn;
int rc;
char* errmsg=NULL;
rc = sqlite_get_table(db,”select * from student where ID>2
and name<>’Zhang San’”,&result,&nrow,&ncolumn,&errmsg);
int i;
char id[10];
char name[10];
for(int i=1;i<=nrow;i++)
{
id[i]=result[i*2];
name[i]=result[i*2+1];
}
三.sqlite3命令:
sqlite3 data.db //打开data.db
.tables 查看数据库中包含表的信息
.schema 输出格式
.mode line / column /list //格式 单行,列,列表
.timeout //用时
.output test.txt //输出到test.txt
.q退出
可执行一般的SQL语句
[root@localhost root]#sqlite3 data.db
sqlite>create table student(ID integer primary key,name nvarchar(32));
sqlite>insert into student values(1,’Sun Wukong’);
sqlite>insert into student values(2,’Tang Seng’);
sqlite>select * from student;
1|Sun Wukong
2|Tang Seng
sqlite>update student set name=’Zhu Bajie’ where ID=’2’;
sqlite>select * from student;
1|Sun Wukong
2|Zhu Bajie
sqlite>delete from student where ID=’2’ and name=’ Zhu Bajie’;
sqlite>select * from student;
1|Sun Wukong
sqlite>.tables
student
对中文的支持
[root@localhost root]#sqlite3 data.db
sqlite>create table student(ID integer primary key,name text);//注意:此处name类型为text
sqlite>insert into student values(1,’孙悟空’);
sqlite>insert into student values(2,’唐僧’);
sqlite>select * from student;
1|孙悟空
2|唐僧
sqlite>update student set name=’猪八戒’ where ID=’2’;
sqlite>select * from student;
1|孙悟空
2|猪八戒
sqlite>delete from student where ID=’2’ and name=’ 猪八戒’;
sqlite>select * from student;
sqlite3在Linux下的安装和使用的更多相关文章
- Linux下yum安装MySQL
写这篇文章的原因是:在刚开始使用Linux操作系统时想要搭建LAMP环境,于是开始在Google和百度上各种寻找资料,碰到了不是很多的问题后,我决定写这篇文章总结一下在Linux下yum安装MySQL ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- 【夯实PHP基础系列】linux下yum安装PHP APC
Alternative PHP Cache(可选PHP缓存),依赖于 PECL扩展库 用源码方式安装,直接yum就行了:首先要安装apc的依赖包:yum install php-pear php-de ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
- Linux下php安装Redis扩展
说明: 操作系统:CentOS php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php7/etc/php.ini Nginx安装目录:/usr/loca ...
- linux下编译安装vim7.4并安装clang_complete插件
linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...
- linux下编译安装curl
linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...
- linux下编译安装boost库
linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...
- linux下VMware安装出现的问题解决
linux下VMware安装出现的问题解决 linux下VMware安装出现的问题解决 报错信息 问题1liboverlay-scrollbar.so和libunity-gtk-module.so加载 ...
随机推荐
- LoadRunner脚本增强技巧之参数化(一)
参数化的方式有两种,一种通过File引入参数值,一种通过数据库引入参数值.本篇介绍File方式引入参数值. 一.File方式参数化过程 1.在脚本中找到需要做参数化的字符串,选中,右键点击,选择Rep ...
- 【数据库】SQL两表之间:根据一个表的字段更新另一个表的字段
1. 写法轻松,更新效率高:update table1 set field1=table2.field1,field2=table2.field2from table2where table1.id= ...
- 51nod 1574 排列转换(贪心+鸽巢原理)
题意:有两个长度为n的排列p和s.要求通过交换使得p变成s.交换 pi 和 pj 的代价是|i-j|.要求使用最少的代价让p变成s. 考虑两个数字pi和pj,假如交换他们能使得pi到目标的距离减少,p ...
- 【bzoj3533】[Sdoi2014]向量集 线段树+STL-vector维护凸包
题目描述 维护一个向量集合,在线支持以下操作:"A x y (|x|,|y| < =10^8)":加入向量(x,y);"Q x y l r (|x|,|y| < ...
- NewCaffe
NewCaffe
- 洛谷 P2763 试题库问题(网络流24题之一)
题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法. ...
- [CF1111D]Destroy the Colony
题目大意:有一个长度为$n(n\leqslant10^5,n=0\pmod2)$的字符串,字符集大小为$52$,有$q(q\leqslant10^5)$次询问,每次询问第$x,y$个字符在这个字符串的 ...
- SCOI2014极水的题解- -
话说SCOI都考了1个月了,终于拿出决心把题解补完了,但都说了是极水的题解,大家就看着玩吧- - DAY1 T1:目标是找最长不降子序列,先就有一个比较显然的结论,就是假如我们要拔高区间[L, R], ...
- Linux网络接口配置文件解析
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0# Intel Corporation 82545EM Gigabit ...
- WebDriver的定位元素方法
如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.na ...