linux sqlite3使用界面,linux 使用sqlite3

:c中使用sqlite3需要调用函数接口操作:

sqlite3 *db;

int status=sqlite_open("dbname",&db);//打开或者创建数据库

int status=sqlite3_exec(db,yuju,huitiaohanshu,,cuowuzhizhen);//数据库所有的操作都得通过这个函数执行

sqlite3_close(db);//使用完后要关闭数据库资源

:sqlite3语句:

建表:

create table pic([picId] integer PRIMARY KEY AUTOINCREMENT, [InsertTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime')), [url] varchar());

//创建了一个有三个字段(picId,url,inserttime)并且这里的插入时间为自动插入当前当地时间

约束条件:

not null:

unique:唯一

primary key:主键

foreign key:外键(创建该表和父表之间的联系)

check:对该项输入内容的条件检查

default:默认值

数据类型:(相似匹配,会自动寻找比较合适的具体数据类型进行匹配)

integer:

int integer int2 int8 (unsigned big int) (big int)

text:

character() varchar() text clob....

none:

real:

real double float..

numeric:

boolean data datetime

create table teacher(id integer primary key auto increment);

create table stu (id integer primary key autoincrement,

name varchar() check(length(name)>),

tel varchar() not null default '',

cls integer not null ,

unique(name,tel),//设置name和tel的组合唯一

foreign key(cls) references teacher(id));//绑定两个表中的id

插入:

insert into pic([picId],[url]) values(null,'%s');

//当每个字段都要插入时可以缺省表后面的参数

insert into stu1 select * from stu;

//将一个表的所有内容导入另外一个

查询:

select * from pic;

select name from stu where id=;

select id from stu order by id;//由id排序输出

select * from stu where name like "t%";//找到stu中名字以t开头的数据

select * from stu group by id having id>;//查询id>2的数据并且按照id分组

select * from stu limit offset ;//从索引2开始输出后面一个数据

//c语言中查询一般是使用的回调,在执行sql语句的时候就传入查询数据以后应该怎么处理的函数

例子:

#include

#include

#include

#include

//查询的回调函数声明

int select_callback(void * data, int col_count, char ** col_values, char ** col_Name);

int main(int argc, char * argv[])

{

const char * sSQL1 = "create table pic([picId] integer PRIMARY KEY AUTOINCREMENT, [InsertTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime')), [url] varchar(20));";

char * pErrMsg = ;

int result = ;

// 连接数据库

sqlite3 * db = ;

int ret = sqlite3_open("./test9.db", &db);

if( ret != SQLITE_OK ){

fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));

return();

}

printf("数据库连接成功!\n");

// 执行建表SQL

sqlite3_exec( db, sSQL1, , , &pErrMsg );

if( ret!=SQLITE_OK ){

fprintf(stderr, "SQL error: %s\n", pErrMsg);

sqlite3_free(pErrMsg);

return ;

}

printf("建表成功!\n");

// 执行插入记录SQL

//result = sqlite3_exec( db, "insert into pic([url]) values('/c');", 0, 0, &pErrMsg);

int i;

for(i=;i

if(sqlite3_exec( db, "insert into pic([picId],[url]) values(null,'/c')", , , &pErrMsg)!= SQLITE_OK){

fprintf(stderr, "insert SQL error: %s\n", pErrMsg);

sqlite3_free(pErrMsg);

printf("插入失败!\n");

}else{

printf("插入数据成功\n");

}

}

// 查询数据表

printf("开始查询数据库内容\n");

//sqlite3_exec( db, "select * from pic;", select_callback, 0, &pErrMsg);

if(sqlite3_exec( db, "select * from pic;", select_callback, , &pErrMsg)!=SQLITE_OK){

fprintf(stderr, "insert SQL error: %s\n", pErrMsg);

}else{

printf("查询失败 \n");

}

// 关闭数据库

sqlite3_close(db);

db = ;

printf("数据库关闭成功!\n");

return ;

}

int select_callback(void * data, int col_count, char ** col_values, char ** col_Name)

{

// 每条记录回调一次该函数,有多少条就回调多少次

int i;

for( i=; i < col_count; i++){

printf( "%s = %s\n", col_Name[i], col_values[i] == ? "NULL" : col_values[i] );

}

return ;

}

基于s5pv210嵌入式linux系统sqlite3数据库移植

基于s5pv210嵌入式linux系统sqlite3数据库移植 1.下载源码 http://www.sqlite.org/download.html 最新源码为3080100 2.解压 tar xvf ...

linux下sqlite3可视化工具

1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库. 2.安装:要安装sqlite3,可以在终端提示符后运行下列命令:sudo apt-get install sqlite3 ...

Linux下sqlite3编程

---------------------------------------------------------------------------------------------------- ...

Linux 中 sqlite3 基本操作

https://www.runoob.com/sqlite/sqlite-commands.html 一 .linux 下安装数据库和创建一个数据库 1. Linux 下安装sqlite3 需要两个命 ...

linux 安装sqlite3

python2个版本导致的问题. 网上找了好多方法都不行. 最后自己莫名其妙弄好了, 回想了一下大概是 安装sqlite3 重新安装python 最后 yum update 更新 就好了.

linux装sqlite3

下载sqlite3源码包 tar xvfz sqlite-src-3.3.5 cd sqlite-3.3.5 ./configure –no-tcl make python继续一次. apt inst ...

linux sqlite3 相关

数据库sqlite 1 用下载好的安装包安装 linux@ubuntu:~/sqlite3$ sudo dpkg -i libsqlite3-0_3.7.2-1ubuntu0.1_i386_1.deb ...

如何在Linux下用C&sol;C&plus;&plus;语言操作数据库sqlite3(很不错!设计编译链接等很多问题!)

from : http://blog.chinaunix.NET/uid-21556133-id-118208.html 安装Sqlite3: 从www.sqlite.org上下载Sqlite3.2. ...

Linux下用到数据库sqlite3

最近在Linux下用到数据库sqlite3,于是开始了该方面的学习. 0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库.创建 ...

随机推荐

Java中数据类型及其之间的转换

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

【转】移动端App测试实用指南

转自:互联网那点事 英文原文: http://mobile.smashingmagazine.com/2012/10/22/a-guide-to-mobile-app-testing/ 测试人员常被看 ...

Perl中的正则表达

前几天用到了Perl语言,主要看了一下Perl中的正则表达式,在各种网页语言中,正则表达式在处理字符串的时候十分有用,所以这里就简单说一下在Perl中正则表达式的应用. 先上代码 #!/usr/bin ...

android124 zhihuibeijing 新闻中心-新闻 -北京页签 下拉刷新

缓存工具类:以url为key,json数据为value, package com.itheima.zhbj52.utils; import com.itheima.zhbj52.global.Glob ...

ASP&period;NET性能监视参数详解

性能监视器- Performance Monitor 性能监视器是Windows自带的系统资源和性能监视工具. 性能监视器能够量化地提供CPU使用率, 内存分配状况, 异常派发情况, 线程调度频率等信 ...

Nvidia TX2 Robot 环境配置记录

p.p1 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #454545 } p. ...

cocos2d中个类之间的关系

1.Director类: (1)单例类Director::getInstance()  ,获取导演类对象 (2)设置游戏配置(OpenGL),推动游戏发展 runWithSence.replaceSe ...

Spring Security 登录校验 源码解析

传统情况下,在过滤器中做权限验证,Spring Secuirty也是在Filter中进行权限验证. 创建并注册过滤器 package com.awizdata.edubank.config; impo ...

&lbrack;Unity优化&rsqb;UI优化&lpar;三&rpar;:GraphicRebuild

参考链接: https://blog.csdn.net/jingangxin666/article/details/80143176 调试过程: 1.修改Image的颜色 2.Graphic.SetV ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值