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。