Linux数据库sqlite3

数据类型

REAL:浮点值         TEXT:文本字符串          INTEGER:带符号整形

数据库的操作

创建数据库:sqlite3 DataName.db

创建表:create table demo(id integer,name text)

查看表:select 列名称 from 表名称 where 条件 like '%%s%'

插入表:insert into zhiguoxin values(1001,'刘尧',18);

数据库的函数接口

打开数据库:

int sqlite3_open(
  const char *filename,   /* 数据库的文件路径 */
  sqlite3 **ppDb          /* 代表打开数据库 */
);
执行SQL语句:(回调函数,处理SQL语句执行返回的结果(查询),一条结果调用一次)
int sqlite3_exec(
  sqlite3 *pDb,                              /* 打开的数据库 */
  const char *sql,                           /* 要执行的SQL语句 */
  int (*callback)(void *arg,int col,char **str,char **name),  
  /* 回调函数,处理SQL语句执行返回的结果(查询),一条结果调用一次 
      arg - exec的第四个参数
      col - 本条结果的字段数
      str - 记录字段值的数组
      name - 记录字段名的数组
     回调函数必须返回SQLITE_OK */
  void *arg,                                 /* 传递给回调函数的第一个参数 */
  char **errmsg                              /* 错误信息 */
);
//成功返回SQLITE_OK,否则执行失败

关闭数据库:sqlite3_close(sqlite3 *pDb)

编译 SQL 语句:sqlite3_prepare_v2(准备好一个语句对象,以便稍后执行和绑定参数)

执行准备好的语句对象:sqlite3_step(一次执行一步)

将整数值绑定到 SQL 语句中的参数位置:sqlite3_bind_int

释放准备好的语句对象:sqlite3_finalize

性能提升

如果向数据库中插入100万条数据,在默认的情况下如果仅仅是执行sqlite3_exec(db, “insert into name values ‘lxkxf', ‘24'; ”, 0, 0, &zErrMsg);将会重复的打开关闭数据库文件100万次,所以速度会很慢。

事务机制

开始事务qlite3_exec(db, "BEGIN;", NULL, NULL, &zErrMsg);

执行SQL语句】】......

提交事务sqlite3_exec(db, "COMMIT;", NULL, NULL, &zErrMsg);

回滚sqlite3_exec(ppdb, "rollback",NULL,NULL,NULL);

这样SQLite将把全部要执行的SQL语句先缓存在内存当中,然后等到COMMIT的时候一次性的写入数据库,这样数据库文件只被打开关闭了一次,效率自然大大的提高。

增加主键的优缺点

  • 优点:提高数据唯一性、完整性和查询性能;
  • 缺点:则可能包括在现有数据上添加主键时的复杂性(如处理重复值)、对插入性能的影响(尤其是使用AUTOINCREMENT时),以及在大数据集上添加主键可能导致的额外资源消耗。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值