当前位置: 首页 > wzjs >正文

唐山建站方案房管局网站做房查

唐山建站方案,房管局网站做房查,郑州比较厉害的男科中医,wordpress和帝国谁快SQLite的存储结构 --->B树 大型数据库 :Oracle 中型数据库 :Server是微软开发的数据库产品,主要支持windows平台 小型数据库 : MySQL是一个小型关系型数据库管理系统。开放源码 (嵌入式不需要存储太多数据) 一、SQLite基础 SQLite的源代码…

SQLite的存储结构  --->B树

大型数据库 :Oracle

中型数据库 :Server是微软开发的数据库产品,主要支持windows平台

小型数据库 : MySQL是一个小型关系型数据库管理系统。开放源码 (嵌入式不需要存储太多数据)

                     

一、SQLite基础

SQLite的源代码是C,其源代码完全开放。它是一个轻量级的嵌入式数据库。

SQLite有以下特性:

零配置一无需安装和管理配置;

储存在单一磁盘文件中的一个完整的数据库;

数据库文件可以在不同字节顺序的机器间自由共享;

支持数据库大小至2TB(1024G = 1TB);//嵌入式足够

足够小,全部源码大致3万行c代码,250KB;

比目前流行的大多数数据库对数据的操作要快;

操作方式:

手动:

使用sqlite3工具,手工输入命令

命令行输入

代码:

利用代码编程,调用接口

 二、使用命令

【腾讯文档】副本-SQL基础语句基本使用 https://docs.qq.com/doc/DZXlIRkZRUlJadVN5        

  三、 sqlile3编程

官方文档:List Of SQLite Functions

中本版:SQLite Insert 语句 - SQLite 中文版 - UDN开源文档

 

注意:

头文件:#include <sqlite3.h>

编译:gcc xxx.c -lsqlite3

1、函数接口:

(1)打开数据库 sqlite3_open()

int sqlite3_open(char  *path, sqlite3 **db);
功能:打开sqlite数据库,如果数据库不存在则创建它
参数:path: 数据库文件路径db: 指向sqlite句柄的指针
返回值:成功返回SQLITE_OK(0),失败返回错误码(非零值)

(2)返回错误信息sqlite3_errmsg()

char  *sqlite3_errmsg(sqlite3 *db);
功能:  获取错误信息
返回值:返回错误信息

使用:   fprintf(stderr,"sqlite3_open failed %s\n",sqlite3_errmsg(db));

(3)关闭数据库sqlite3_close()

int sqlite3_close(sqlite3 *db);
功能:关闭sqlite数据库
返回值:成功返回SQLITE_OK,失败返回错误码

(4)执行sql操作 sqlite3_exec()

int sqlite3_exec(sqlite3 *db,                   /* An open database */const char *sql,               /* SQL to be evaluated */int (*callback)(void*,int,char**,char**),  /* Callback function */void *arg,                      /* 1st argument to callback */char **errmsg                /* Error msg written here */
);功能:执行SQL操作
参数:db:数据库句柄sql:要执行SQL语句callback:回调函数(满足一次条件,调用一次函数,用于查询)再调用查询sql语句的时候使用回调函数打印查询到的数据arg:传递给回调函数的参数errmsg:错误信息指针的地址
返回值:成功返回SQLITE_OK,失败返回错误码

 

(5)专用于查询sqlite3_get_table()

不使用回调函数执行SQL语句(只用于查询)
int sqlite3_get_table(sqlite3 *db, const  char  *sql, char ***resultp,  int *nrow,  int *ncolumn, char **errmsg);功能:执行SQL操作
参数:db:数据库句柄sql:SQL语句resultp:用来指向sql执行结果的指针nrow:满足条件的记录的数目(但是不包含字段名(表头 id name score))ncolumn:每条记录包含的字段数目errmsg:错误信息指针的地址
返回值:成功返回SQLITE_OK,失败返回错误码

2、示例

#include <sqlite3.h>
#include <stdio.h>//每次查询到一条符合条件的数据,就使用一次回调函数
int callback(void*buf,int num,char** value,char** name)
{static int a=1;printf("-----\n");printf("%d :%s\n",a++,(char *)buf);for (int i = 0; i < num; i++){printf("%s ",name[i]);}putchar(10);for (int i = 0; i < num; i++){printf("%s ",value[i]);}putchar(10);return 0;//必须返回0,否则报错
}int main(int argc, char const *argv[])
{// 创建和打开数据库sqlite3 *db;if (sqlite3_open("stu.db", &db) != SQLITE_OK){fprintf(stderr, "open err:%s\n", sqlite3_errmsg(db));return -1;}else{printf("打开数据库成功\n");}// 创建表char *errmsg;if (sqlite3_exec(db, "create table if not exists stu (id int,name string,score float)", NULL, NULL, &errmsg)!=SQLITE_OK){fprintf(stderr, "create table err:%s\n", errmsg);return -1;}else{printf("打开表成功\n");}// 操作表// 插入int num = 0;printf("学生人数\n");scanf("%d", &num);char sql[64] = "";int id;char name[10];float score;printf("id    name    score\n");for (int i = 0; i < num; i++){scanf("%d %s %f",&id,name,&score);sprintf(sql, "insert into stu values(%d,'%s',%f)", id, name, score);if (sqlite3_exec(db, sql, NULL, NULL, &errmsg)!=SQLITE_OK){fprintf(stderr, "insert err:%s\n", errmsg);return -1;}else{printf("插入成功\n");}}//查找数据if (sqlite3_exec(db, "select * from stu", callback, "hi", &errmsg)!=SQLITE_OK){fprintf(stderr, "insert err:%s\n", errmsg);return -1;}else{printf("插入成功\n");}//专门用于查询的函数char **result=NULL; //用于存储查询到的结果int row,column;//记录行数和列数sqlite3_get_table(db,"select * from stu",&result,&row,&column,&errmsg);printf("row:%d column:%d\n",row,column);int k=0;//当能查询到结果时,表头也会算一行(真正要打印的行数要比row值大1)//当查询不到结果时连表头都不会打印for (int i = 0; i <= row; i++){for (int j = 0; j < column; j++){printf("%s ",result[k++]);//遍历时result看做二维数组,但访问时result看做一维数组}putchar(10);}// 关闭数据库sqlite3_close(db);return 0;
}

 


文章转载自:

http://AJjwWBSc.qhfdL.cn
http://r5oT0ln6.qhfdL.cn
http://vnK5o2Fw.qhfdL.cn
http://juOR0DCY.qhfdL.cn
http://sNMGjrqy.qhfdL.cn
http://IxeFLIbr.qhfdL.cn
http://MLBsY5Q1.qhfdL.cn
http://lKEkuhmj.qhfdL.cn
http://dgya2RmM.qhfdL.cn
http://9xafyxCp.qhfdL.cn
http://RdgPMVtU.qhfdL.cn
http://i5xeOlIp.qhfdL.cn
http://EldP5rXo.qhfdL.cn
http://knUeoDLq.qhfdL.cn
http://FAC4YmX1.qhfdL.cn
http://AK0qYSZA.qhfdL.cn
http://GI2t2OT8.qhfdL.cn
http://4MBSbTax.qhfdL.cn
http://7pBfTMpw.qhfdL.cn
http://vvKuT3Tw.qhfdL.cn
http://iri7Bgzr.qhfdL.cn
http://oIz5HL5D.qhfdL.cn
http://lcWpVZUO.qhfdL.cn
http://obMk3V0X.qhfdL.cn
http://LR8bIvVO.qhfdL.cn
http://VkkmmdPP.qhfdL.cn
http://zg3LwcD3.qhfdL.cn
http://3AaJABEr.qhfdL.cn
http://Foza7Zz3.qhfdL.cn
http://j78yHVUy.qhfdL.cn
http://www.dtcms.com/wzjs/637750.html

相关文章:

  • 宁波网站建设就找荣胜自己做的微课上传到哪个网站
  • 怎么在windows做网站莱芜吧贴吧
  • 乐陵网站服务在哪一条企业logo设计说明
  • 网站设计报价怎么做flash网站as
  • 青岛模板做网站凡科网站产品导航怎么做
  • 上传网站图片不显示网站开发浏览器分辨率
  • wordpress企业门户网站拼多多卖网站建设
  • 郑州高端网站建设团队杭州搜索引擎推广排名技术
  • 网站建设与管理介绍产品营销网站建设
  • 网站建设的步骤及方法黑龙江建设网官方
  • 上海迈诺网站建设wordpress 开发框架
  • 建设网站要用什么软件wordpress做网站过程
  • 廊坊网站制作建设做网站推广公司
  • 现在最流行的网站开发工具餐饮系统的网站应该怎么做
  • 大型网站服务器价格重庆建设厅的网站首页
  • 工信部 网站备案 上传电子快速推广
  • 国内优秀企业网站设计公司网站设计制作长沙
  • 镇江外贸网站建设市场营销四大基本策略
  • 搜索引擎网站有哪些晋城市建设局网站
  • 只做一页的网站多少钱网站维护的具体方法
  • 长沙做网站 青创互联企业网站建设东莞
  • 上海建设部网站黄金行情app下载
  • 如何使用表格做网站建立网站要花多少钱
  • 怎么查看自己网站有没有做301文字短链接生成器
  • 电子商务网站建设的意义是什么意思wordpress502
  • 中国设计网字体网站优化首页付款
  • dede搭建网站教程国外设计网站pinterest极速版
  • 昆山专业做网站吴忠北京网站建设
  • 网站开发中安全性福建省建设注册执业资格管理中心网站
  • 怎么联系企业的网站建设宁波 住房和建设局网站首页