sqlite学习归总

简介
  • SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还快,专门用于移动设备上进行适量的数据存取,它只是一个文件,不需要服务器进程
  • SQL语句是SQL操作的指令,我们用C/C++访问数据库时,需要用char*即C字符串来保存SQL语句,然后调用相应sqlite3库的函数,传入C字符串,来执行SQL指令。
  • 常用术语:表(table)、字段(column,列,属性)、记录(row,record)。
使用sqlite3命令进行查看tables
.tables
SQL(structured query language)语句
  • 特点:不区分大小写,每条语句后加";"结尾。
  • 关键字:select、insert、update、delete、from、creat、where、desc、order、by、group、table、alter、view、index等,数据库中不能使用关键字命名表和字段。
数据定义语句(DDL:Data Definition Language)

新建表 ⟹ createcreate table 表名 (字段名1 字段类型1,字段名2 字段类型2,。。。); 
create table if not exists 表名 (字段名1 字段类型1,字段名2 字段类型2,。。。);

CREATE TABLE IF NOT EXISTS t_person (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL); 
删除表 ⟹ drop:
dorp table 表名;
drop table if exists 表名;

DROP TABLE IF EXISTS t_person; 
数据操作语句(DML:Data Manipulation language)
添加表中的数据 ⟹ insertinsert into 表名 (字段1,字段2,。。。) values (字段1的值,字段2的值);字符串内容用单引号。

INSERT INTO t_person (name, age) VALUES ('大明', 22); 
修改表中的数据 ⟹ updateupdate 表名 set 字段1 = 字段1的值,字段2 = 字段2的值,。。。;

UPDATE t_person SET name = '小明', age = 10; // 把表中name字段的值全部改成小明,age字段的值全部改成10。  
UPDATE t_person SET age = 12 WHERE name = '小明'; // 把表中name字段值是小明的age值改为12。
删除表中的数据 ⟹ deletedelete from 表名;delete from 表名 where 字段 = 字段值。

DELETE FROM t_person; // 删除表中的所有记录。 
DELETE FROM t_person WHERE age = 25; // 删除表中字段age等于25的这条记录。 
DELETE FROM t_person WHERE age > 12 AND age < 15; // 删除表中年龄大于12且小于15的记录。 
数据查询语句(DQL:Data Query Language)
selectselect 字段1, 字段2, 。。。 from 表名;
select 字段1, 字段2, 。。。 from 表名 where 字段 = 某值;
select * from 表名;(查询所有的字段)
表别名:select 字段1 别名, 字段2 别名,。。。from 表名 别名;
select 字段1 别名, 字段2 as 别名,。。。from 表名 as 别名;select 别名.字段1,别名.字段2,。。。from 表名 别名;

SELECT name, age FROM t_person WHERE age < 80; 
SELECT name, age nianling FROM t_person ren WHERE ren.age > 80 AND nianling < 90; 

C/C++上使用SQLite3

环境
  • 配置好C/C++项目环境:导入sqlite3.lib和sqlite3.dll,包含头文件#include <sqlite3.h>。
打开或创建数据库
sqlite3 *sql = NULL; // 一个打开的数据库实例
    const char * path = "..../test.db";//某个sql文件的路径

    // 根据文件路径打开数据库连接。如果数据库不存在,则创建。
    // 数据库文件的路径必须以C字符串传入。
    int result = sqlite3_open_v2(path, &sql, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_SHAREDCACHE, NULL);

    if (result == SQLITE_OK) {
        std::clog << "打开数据库连接成功";
    }
    else {
        std::clog << "打开数据库连接失败";
    }
关闭数据库 sqlite3_close_v2(sqlite3* sql)
if (sql) {
        sqlite3_close_v2(sql);
        sql = nullptr;
}
参考

sqlite库安装
C++ SQLite的使用总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值