68 lines
3.8 KiB
C
68 lines
3.8 KiB
C
//integer:带符号整形(最多64位)
|
||
//real:8字节浮点
|
||
//text:字符,无大小限制
|
||
//bolb:任意类型,无大小限制
|
||
//null:空值
|
||
//! sqlite3 *.db 创建或打开*.db文件
|
||
//! .quit或.exit 退出数据库
|
||
//create table 表名称 (列名称 数据类型,……); 创建表
|
||
//primary key 主键,每个表只能有一个,其列数据不可重复
|
||
//.tables 查看表
|
||
//.schema 查看表结构
|
||
//alter table 表名 add 列名 数据类型; 添加新列
|
||
//alter table 表名 rename to 新表名; 修改表名
|
||
//drop table 表名称; 删除表
|
||
//insert into 表名 values (列值……); 插入新行并赋值,字符串加‘’号
|
||
//insert into 表名 (列名……) values (列值……); 插入新行部分赋值
|
||
//update 表名 set 列……=值…… 匹配条件; 修改where匹配行的列值,空匹配所有
|
||
//delete from 表名 匹配条件; 删除匹配行
|
||
//select * from 表名 匹配条件;
|
||
//select 列名…… from 表名 匹配条件; 从表中选取数据
|
||
//.mode colum 左对齐列
|
||
//.headers on 列名显示
|
||
//where 列名 in (列值……) 在where子句中规定多个值
|
||
//where 列1=值1 and 列2=值2 and ... 多个条件与
|
||
//where 列1=值1 or 列2=值2 or ... 多个条件或
|
||
//where 列名 between A and B 选取A、B之间的数据范围
|
||
//where 列名 like 列值 数字相当于“=”,字符串可用“%”通配
|
||
//where 列名 not in/between/like ...
|
||
//where not 列1=值1 and/or 列2=值2 and/or ... 原结果集补集
|
||
//order by 列名 (desc) 根据指定列对结果集排序,用dest降序
|
||
//begin; 开始一个事务
|
||
//commit; 确认begin后的全部命令
|
||
//rollback; 取消begin后的所有操作
|
||
int sqlite3_open(char *db_name,sqlite3 **db); //打开数据库,成功返回SQLITE_OK
|
||
int sqlite3_close(sqlite3 *db); //关闭数据库,成功返回SQLITE_OK,链接时添加 -lpthread 和 -ldl两个库
|
||
int sqlite3_exec(sqlite3 *db,const char *sql,exechandler_t callback,void *arg,char **errmsg); //执行sql语句,若结果集不空,回调下面callback
|
||
typedef int (*exechandler_t)(void *para,int n_column,char **column_value,char **column_name);
|
||
int sqlite3_get_table(sqlite3 *db,const char *sql,char ***resultp,int *nrow,int *ncolumn,char **errmsg); //执行sql语句,结果集保存在resultp中
|
||
void sqlite3_free_table(char **resultp); //释放sqlite3_get_table分配的内存
|
||
//函数
|
||
//length() 返回字符串长度
|
||
//lower() 将字符串转换为小写
|
||
//upper() 将字符串转换为大写
|
||
//select 函数名(列名) from 表名;
|
||
//聚集函数
|
||
//avg() 返回某列的平均值
|
||
//count() 返回某列的行数
|
||
//max() 返回某列的最大值
|
||
//min() 返回某列的最小值
|
||
//sum() 返回某列值之和
|
||
//select 列名…… from 表名 group by 列名; 根据某一属性重新分组,出现在where子句之后
|
||
//select 函数名 (列名) …… from 表名 group by 列名 having 函数名 (列名) 限制值; 查看满足having条件的分组
|
||
//主键惟一标识一行,对用户无意义,常用语索引,勿更新,无动态变化数据,由计算机自动生成
|
||
//unique 用法同主键,保证一个列中数据惟一,可以有多个,可以修改和更新
|
||
//create table 表名 (列名 数据类型 check (判断语句)); 保证某列数据满足一定条件
|
||
//select 列名…… from 表…… where 判断语句; 用“.”分隔表名和列名
|
||
//create view 视图名 as 语句; 创建视图
|
||
//drop view 视图名; 删除视图
|
||
//create trigger 触发器名 before/after insert/update/delete on 表名
|
||
//begin 语句; end;
|
||
//datetime('now') 获取当前系统时间
|
||
//.tables 查看触发器
|
||
//drop trigger 触发器名; 删除触发器
|
||
//create index 索引名 on 表名(列名); //创建索引
|
||
//.indices 查看索引
|
||
//drop index 索引名; 删除索引
|
||
|