华清作业day56

SQLite特性:

  1. 零配置一无需安装和管理配置;
  2. 储存在单一磁盘文件中的一个完整的数据库;
  3. 数据库文件可以在不同字节顺序的机器间自由共享;
  4. 支持数据库大小至2TB;
  5. 足够小,全部源码大致3万行c代码,250KB;
  6. 比目前流行的大多数数据库对数据的操作要快;

安装:

sudo apt-get update 安装软件及开发环境

sudo apt-get install sqlite3 --->sqlite3数据库软件

sudo apt-get install libsqlite3-dev --->sqlite3数据库开发支持库

sudo apt-get install sqlitebrowser --->sqlite3数据库操作软件

1.sqlite数据库创建:

sqlite3 sq.db 如果sq.db存在则直接打开sq.db数据库,如果不存在则先创建再打开;

  1. 系统命令

.quit 退出数据库

.exit 退出数据库

.help 显示帮助信息,获取所有系统命令; ​

.table 查看当前数据库下的所有表格;

.schema 查看表的结构

1)创建表格

create table 表名 (字段名 数据类型, 字段名 数据类型);

create table if not exists 表名 (字段名 数据类型, 字段名 数据类型);

2)删除表格

drop table 表名;

3)插入记录

  1. 全字段插入 insert into 表名 values (数据1, 数据2, 数据3);

  2. 部分字段插入 insert into 表名 (字段名1, 字段名2) values (数据1, 数据2);

4)查看记录

.header on 打开表头 .mode column 对齐 在终端输入shell指令:sqlitebrowser sq.db 图形化界面

5)修改记录

update 表名 set 字段=数值 where 限制条件;

6)删除记录

delete from 表名 where 限制条件;

7)主键

primary key 主键;

create table 表名(字段名 数据类型 primary key, 字段名 数据类型);

primary key主键:唯一标识表格中的每一条记录;

8)拷贝

从a中拷贝所有数据到b中: create table b as select * from a;

API:

1)sqlite3_open

int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ );

功能:打开一个数据库,如果数据库不存在,则创建一个数据库

2)sqlite3_close

int sqlite3_close(sqlite3*); 功能:关闭数据库,断开句柄所拥有的资源

3)sqlite3_errmsg

const char *sqlite3_errmsg(sqlite3*); 功能:通过出错的句柄返回错误信息

4)sqlite3_errcode

int sqlite3_errcode(sqlite3 *db) 功能:通过错误句柄返回错误码

5)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语句

6)回调函数

int callback(void* arg,int cols,char** col_text, char** col_name)

功能:处理sqlite3_exec执行sql语句后的结果集,每有一条记录,就会执行一次callback函数

7)sqlite3_get_table

int sqlite3_get_table( sqlite3 *db, /* An open database */ const char *zSql, /* SQL to be evaluated */ char ***pazResult, /* Results of the query */ int *pnRow, /* Number of result rows written here */ int *pnColumn, /* Number of result columns written here */ char **pzErrmsg /* Error msg written here */ );

功能:通过执行sql语句,得到结果集中的内容

8)sqltie3_free_table

void sqlite3_free_table(char **result); 功能:释放表的空间

相关推荐
Elastic 中国社区官方博客27 分钟前
使用 Elasticsearch 导航检索增强生成图表
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小金的学习笔记32 分钟前
RedisTemplate和Redisson的使用和区别
数据库·redis·缓存
新知图书1 小时前
MySQL用户授权、收回权限与查看权限
数据库·mysql·安全
文城5211 小时前
Mysql存储过程(学习自用)
数据库·学习·mysql
沉默的煎蛋1 小时前
MyBatis 注解开发详解
java·数据库·mysql·算法·mybatis
呼啦啦啦啦啦啦啦啦1 小时前
【Redis】事务
数据库·redis·缓存
HaoHao_0101 小时前
AWS Serverless Application Repository
服务器·数据库·云计算·aws·云服务器
C语言扫地僧1 小时前
MySQL 事务及MVCC机制详解
数据库·mysql
小镇cxy1 小时前
MySQL事物,MVCC机制
数据库·mysql
书生-w2 小时前
Redis Windows 解压版安装
数据库·windows·redis