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加载 ...
随机推荐
- JMeter脚本增强之参数化
JMeter测试脚本录制或者编写,在Web应用和App上的操作方式可能有一点点区别(其实也差不多,哈哈),但是当脚本录制好了之后,对测试脚本的强化,包括参数化.关联.文本检查.集合点设置,甚至再往后的 ...
- 【uoj#21】[UR #1]缩进优化 数学
题目描述 给出 $n$ 个数 ,求 $\text{Min}_{x=1}^{\infty}\sum\limits_{i=1}^n(\lfloor\frac {a_i}x\rfloor+a_i\ \tex ...
- FragmentTransaction add 和 replace 区别 转
使用 FragmentTransaction 的时候,它提供了这样两个方法,一个 add , 一个 replace . add 和 replace 影响的只是界面,而控制回退的,是事务. public ...
- Django 2.0 学习(17):Django 用户认证(auth模块)
Django 用户认证(auth模块) 一.认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中:如果用户存在于数据库中,然后再验证用户输入 ...
- 【入门向】使用 MetaHook Plus 绘制 HUD
MetaHook Plus 是一个GoldSrc引擎(就是的Half-Life.CS1.6的引擎)的客户端插件平台,它可以加载我们自己开发的DLL插件. 首先你需要安装一个 Visual Studio ...
- Qt Widgets、QML、Qt Quick的区别
Qt Widgets.QML.Qt Quick的区别 简述 看了之前关于 QML 的一些介绍,很多人难免会有一些疑惑: Q1:QML 和 Qt Quick 之间有什么区别? Q2:QtQuick 1. ...
- IBatis Map报错10.1
检查 providers.config 把没用的给关闭掉即可
- 【BZOJ1497】【NOI2006】最大获利(网络流)
[BZOJ1497][NOI2006]最大获利(网络流) 题面 BZOJ Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS& ...
- SMBv3空指针引用dos漏洞复现
0x01 前言 去年年底,当设置一个模拟器来定位SMB协议时,发现了一个如此简单而又非常有效的攻击大型企业的漏洞.TL; DR:一个拒绝服务错误允许BSOD协议向Windows 8.1和Windows ...
- 解题:POI 2015 Pieczęć
题面 发现好像没有什么好做法,那就模拟么=.= 以印章左上角的'x'为基准,记录印章上'x'的相对位置模拟.记录相对位置是因为可能有这种情况↓ 直接模拟是会漏掉的=.= #include<cst ...