数据库知识点

 

SQLite相关命令


.tables:查看数据库中的表
.headers on/off:开启或关闭表头显示
.mode column:设置输出模式为列对齐
.width 列宽1 列宽2:这个命令实际上是.width 列名1 列宽1 列名2 列宽2,用于设置特定列的宽度
.schema 表名:查看表的结构

SQLite的SQL语句

基本数据类型


INTEGER:整形
REAL:浮点型
TEXT:文本类型,字符串
NULL:空


SQL 操作

增,删, 改, 查

创建表:

CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);


插入数据:

INSERT INTO 表名 VALUES (值1, 值2, ...); 或 INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);


查询:


SELECT 列名1, 列名2 FROM 表名;
SELECT * FROM 表名;
条件查找:SELECT * FROM 表名 WHERE 列名 关系运算符 值;
模糊匹配:SELECT * FROM 表名 WHERE 列名 LIKE '内容%';


排序:


升序:SELECT * FROM 表名 ORDER BY 列名 ASC;
降序:SELECT * FROM 表名 ORDER BY 列名 DESC;


删除表:

删除数据(注意这里是删除数据行,不是列):DELETE FROM 表名 WHERE 列名 关系运算符 值;DROP TABLE 表名;


修改数据:

UPDATE 表名 SET 列名 = 新值 WHERE 列名 = 条件值;


设置主键值自动增长:

确保主键列是INTEGER PRIMARY KEY AUTOINCREMENT


多表联查:

使用INNER JOIN、LEFT OUTER JOIN等

sqlite数据库编程:


1.编程框架


打开数据库---》读写数据库(增,删,改,查)---》关闭数据库

sqlite3.h
-lsqlite3
 

2.sqlite3函数接口:


1.sqlite3_open


int sqlite3_open(
const char *filename,   /* Database filename (UTF-8) */
sqlite3 **ppDb          /* OUT: SQLite db handle */
);
功能:
打开一个数据库文件获得操作数据库文件的句柄
如果数据库存在,则打开;不存在,则创建
参数:
filename:数据库文件路径 
ppDb:存放句柄指针空间的首地址
返回值:
成功返回SQLITE_OK



2.sqlite3_errmsg


  const char *sqlite3_errmsg(sqlite3*);
  功能:
获得出错原因



3.sqlite3_close


  int sqlite3_close(sqlite3*);
  功能:
关闭数据库句柄,释放空间


4.sqlite3_exec


int sqlite3_exec(
sqlite3* pDb,                                  /* 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语句
参数:
sqlite3*:数据库句柄 
sql     :SQL语句字符串首地址
callback:回调函数(只有select时使用)
void *  :回调函数的传参(只有select时使用)
char **errmsg:出错信息存放空间首地址
返回值:
成功返回SQLITE_OK 0


回调函数类型:


int fun(void* para,int n_column,char** column_value,char** column_name);
参数:
para  : sqlite3_exec传递的第四个参数
n_column :查询到数据的列数
column_value:查询结果每个字段的首地址集合
column_name :查询结果每个字段的字段名称首地址集合

注意: 
      1. 回调函数查询到几行数据就执行几次;
      2.回调函数必须要返回0,否则sqlite3_exec调用失败
  3.数据库中查出的数据均为字符串
 


5.sqlite3_free


  void sqlite3_free(void*);
  功能:释放保存出错信息的空间

  • 18
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值