SQLite 数据库

1.基本使用语句

1.增

cpp 复制代码
CREATE TABLE 表名 (

   column1 datatype  PRIMARY KEY(one or more columns),

   column2 datatype,

   column3 datatype,

   .....

   columnN datatype,

);

PRIMARY KEY //主键 ---- 唯一来区分一个数据

cpp 复制代码
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
 VALUES (value1, value2, value3,...valueN);

中括号代表可以省略的部分;

例:

//全部列都给到

insert into stu values ("tom","male",19,99.5);

//给部分列插入数据

insert into stu (name,sex) values ("jack","male");

2.删

删除记录:

delete from 表名 where 条件; //删除对应行

删除表:

语法: drop table 表名称; //删除表

3.改

alter table 表名 add 列名;

添加表中一列

eg:

alter table stu add sno;

4.查

cpp 复制代码
SELECT column1, column2, columnN FROM table_name;

eg:

  • select 列名1,列名2,... from 表名;
  • select * from stu; //表示查看 stu表中所有列的信息

5.插入时间列

  • CREATE TABLE user1(id int,name char,age int,dt datetime);

  • eg:

    insert into user1 values (2,'张三',23,datetime('now','+8 hours'));

  • 注意要加8小时才是北京时间(东8区)

6.自动增长列

cpp 复制代码
sqlite> CREATE TABLE user3(id INTEGER PRIMARY KEY ASC,name char,age int,dt datetime);
sqlite> insert into user3 (NULL,'李四',23,datetime('now'));

datetime为函数接口

  • asc升序,desc降序

  • 注意此处int必须写成INTEGER 才能实现自动增长

2.编程

1.打开

cpp 复制代码
int sqlite3_open(char *db_name,sqlite3 **db);

功能:

打开数据库。

参数:

  • @db_name: 数据库文件名,若文件名包含 ASCII 码表范围的之外的字符,则其必需是(UTF-8)编码。

    @db: 数据库标识,此结构体为数据库操作句柄。通过此句柄可对数据库文件进行相应操作。

    返回值:

    成功 返回 SQLITE_OK,

    失败 返回 非SQLITE_OK。

2.执行相关的sql语句

cpp 复制代码
int sqlite3_exec(       sqlite3 *db,
			        const char *sql, 
			 exechandler_t callback, 
			              void *arg,
			          char **errmsg
				);

功能:

执行 sql 指向的 SQL 语句,若结果集不为空,函数会调用函数指针 callback 所指向的函数。

参数:

db:数据库的标识。

sql:SQL 语句(一条或多条),以';'结尾。

callback:

是回调函数指针,当这条语句执行之后,sqlite3 会去调用你提供的这个函数。

arg:

当执行 sqlite3_exec 的时候传递给回调函数的参数。

errmsg:

存放错误信息的地址,执行失败后可以查阅这个指针。

返回值:

成功返回 SQLITE_OK,

失败返回 非SQLITE_OK

回调函数指针:

typedef int (*exechandler_t)(void *para,

int n_column,

**char ****column_value,

**char ****column_name)

参数:

@para:

sqlite3_exec 传给此函数的参数,para 为任意数据类型的地址。

@n_column:

结果集的列数。

@column_value:

指针数组的地址,其存放一行信息中各个列值的首地址。

@column_name:

指针数组的地址,其存放一行信息中各个列值对应列名的首地址。

注意是指针数组

返回值:

若为非 0 值,则通知 sqlite3_exec 终止回调

3.关闭

int sqlite3_close(sqlite3 *db);

功能:

关闭数据库、释放打开数据库时申请的资源。

返回值:

成功返回 SQLITE_OK。

失败返回 非 SQLITE_OK。

相关推荐
Decay__2 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
小徐不徐说6 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
Decay__8 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
心梦缘-雪雁9 小时前
SQL Server 查询数据存在哪个表里
数据库
lusklusklusk10 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
GeW11 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
SelectDB11 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
曼岛_11 小时前
[图解密码学]第4章 古典密码
java·数据库·密码学
瀚高PG实验室12 小时前
HGDB V9.0.5 .pgpass 免密登录提示 IsEncryptNon-base64 encoding 警告处理
数据库·postgresql·瀚高数据库