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加载 ...
随机推荐
- PC和FPGA间的串口通信实现
应用笔记 V1.0 2015/03/26 PC和FPGA间的串口通信实现 概述 本文将介绍PC和FPGA间的串口通信实现的基本思路和Verilog代码,对于通信而言,收发双方都要有相应的控制. ...
- jquery截取手机号中间4位数,然后变为*
$(function() { var phone = $('#phone').text(); var mphone = phone.substr(0, 3) + '****' + phone.subs ...
- android面试(3)---基本问题
1.值类型,引用类型? 基本数据类型都是值类型:byte,short,int,long,float,double,char,boolean 其他类型都是引用类型. 引用类型在传入方法是,方法内部对引用 ...
- 【三】shiro入门 之 Realm
Realm:域,Shiro 从从Realm获取安全数据(如用户.角色.权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法:也 ...
- BZOJ3711 PA2014Druzyny(动态规划+cdq分治+线段树)
显然可以dp:设f[i]为前i个人最多能分多少组,则f[i]=max{f[j]}+1 (cmax<=i-j<=dmin). 容易发现d的限制是一段连续区间,二分或者随便怎么搞都行.c则有点 ...
- [AT2304] [agc010_c] Cleaning
题目链接 AtCoder:https://agc010.contest.atcoder.jp/tasks/agc010_c 洛谷:https://www.luogu.org/problemnew/sh ...
- [CF1111D]Destroy the Colony
题目大意:有一个长度为$n(n\leqslant10^5,n=0\pmod2)$的字符串,字符集大小为$52$,有$q(q\leqslant10^5)$次询问,每次询问第$x,y$个字符在这个字符串的 ...
- 【ZJOI2005】沼泽鳄鱼 题解报告
题目描述 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客. 为了让游玩更有情趣,人们在池塘的中央建设了几座石墩和石桥 ...
- HDU.2149 Public Sale (博弈论 巴什博弈)
HDU.2149 Public Sale (博弈论 巴什博弈) 题意分析 巴什博奕裸题 博弈论快速入门 代码总览 #include <bits/stdc++.h> using namesp ...
- 常用Transformation算子
map 产生的键值对是tupple, split分隔出来的是数组 一.常用Transformation算子 (map .flatMap .filter .groupByKey .reduc ...