从零开始学 SQLite:从基础命令到 C 语言编程实战

一、数据库 :

高效对大批量数据管理的一种软件
二、分类:

关系型数据库

Oracle

Mysql

SQLServer

SQLite

非关系型数据库

Redit
三、SQLite数据库

所有数据库支持:SQL编程语言
四、SQLite数据库的安装:

  1. 虚拟机网络连通

  2. apt-get工具集配置成功

  3. 安装SQlite软件

sudo apt-get install sqlite3

sudo apt-get install libsqlite3-dev

sudo apt-get install sqlitebrowser

navicat

  1. 运行sqlite3软件

sqlite3

SQLite version 3.22.0 2018-01-22 18:45:57

Enter ".help" for usage hints.

Connected to a transient in-memory database.

Use ".open FILENAME" to reopen on a persistent database.

sqlite> .quit

五、Sqlite3命令

  1. .databases

查看数据库中的信息

  1. .tables

查看表名称

  1. .header(s) ON|OFF

开启/关闭头部显示

  1. .mode MODE

设置数据的显示格式

csv

column

html

insert

line

list

tabs

tcl

  1. .schema ?TABLE?

显示创建表时的格式

  1. .quit

退出
六、SQL语句

  1. create table

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

....

)

例:create table student (学号 integer primary key, 姓名 text, 性别 text,年龄 integer, 成绩 integer);

  1. drop table

drop table 表名称;

例:drop table student;

  1. insert into

INSERT INTO 表名称 VALUES (值1, 值2,....)

例:insert into student values (1002, "李四", "女", 13, 80);

insert into student (学号,姓名,性别) values (1009, "熊大", "男");

  1. delete from

DELETE FROM 表名称 WHERE 列名称 = 值

例:delete from student where 姓名 = "赵五";

  1. update

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

例:update student set 年龄=16,成绩=85 where 姓名="熊大";

  1. select

SELECT 列名称 FROM 表名称

例:select * from student;

select 学号,成绩 from student;

select 姓名 from student where 成绩<60 and 性别="男";

select 姓名 from student where 姓名 like "%田%";

  1. order by

ORDER BY 语句用于根据指定的列对结果集进行排序

例:select 学号,姓名 from student where 成绩 > 60 order by 成绩 desc;

select 学号,姓名 from student where 成绩 > 60 order by 成绩 asc;

七、SQL类型

  1. INTEGER

  2. REAL

  3. TEXT
    八、多表联合查询

  4. cross join

例:select 学生信息.姓名 as 姓名, 学生课程.名称 as 课程 from 学生信息 cross join 学生课程;

  1. inner join

例:select 学生信息.姓名 as 姓名, 学生成绩.成绩 as 成绩 from 学生信息 inner join学生成绩 on 学生信息.学号 = 学生成绩.学号;

  1. outer join

select 学生信息.姓名 as 姓名, 学生成绩.成绩 as 成绩 from 学生信息 left outerjoin 学生成绩 on 学生信息.学号 = 学生成绩.学号;

  1. 三表联合查询

select 学生信息.姓名 as 姓名, 学生课程.名称 as 课程, 学生成绩.成绩 as 成绩

from 学生信息 left outer join 学生成绩 on 学生信息.学号 = 学生成绩.学号

left outer join 学生课程 on 学生成绩.课程编号 = 学生课程.编号

where 成绩 > 60

order by 成绩 desc;

九、数据库编程

  1. sqlite3_open

int sqlite3_open(

const char *filename, /* Database filename (UTF-8) */

sqlite3 **ppDb /* OUT: SQLite db handle */

);

功能:

打开数据库获得操作数据库的句柄

参数:

filename:打开文件的路径

ppDb:存放数据库句柄空间的首地址

返回值:

成功返回SQLITE_OK

失败返回错误码,可以通过sqlite3_errmsg来获得其对应的英文描述

  1. sqlite3_errmsg

const char *sqlite3_errmsg(sqlite3*);

功能:

传入sqlite3的句柄返回句柄出错的英文字符串

  1. sqlite3_exec

int sqlite3_exec(

sqlite3*, /* An open database */

const char *sql,

/* SQL to be evaluated*/

int (*callback)(void*,int,char**,char**), /* Callback function */

void *, /* 1st argument to

callback */

char **errmsg /* Error msg written

here */

);

功能:

执行一条SQL语句

参数:

数据库句柄

要执行的sql语句

callback:只有select才会用到,执行找到匹配的数据后的操作

对callback回调函数的传参

errmsg:存放出错字符串空间的首地址

返回值:

成功返回SQLITE_OK

失败返回错误码

  1. sqlite3_free

void sqlite3_free(void*);

功能:

释放申请的空间

  1. sqlite3_close

int sqlite3_close(sqlite3*);

功能:

关闭sqlite3连接句柄

-----使用示例

相关推荐
IanSkunk20 分钟前
从检查设备到训练方案:眼科与视光中心设备联动的数据通路、字段口径与校验规则
服务器·数据库·负载均衡
ShineWinsu35 分钟前
对于Redis:事务的解析
数据库·redis·mysql·缓存·面试·事务·acid
福大大架构师每日一题1 小时前
Rust 1.99.0发布:C 可变参数、裸函数、Cargo 配置、Rustdoc 性能与大量兼容性调整全解析
c语言·开发语言·rust
动词ing2 小时前
【C语言题目练习】算法 整数反转
c语言·开发语言·算法
ao-weilai2 小时前
MySQL数据库:内置函数
android·数据库·mysql
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-10-02
数据库·人工智能·深度学习·神经网络·搜索引擎
她说彩礼65万2 小时前
C语言 assert
java·linux·c语言
天疆说3 小时前
腾讯会议 Linux 版在 NVIDIA 显卡上看不到画面:EGL 像素配置与窗口视觉不匹配的排查与修复
linux·数据库·腾讯会议
沐欣工作室_lvyiyi3 小时前
基于单片机的跑步机控制系统设计(论文+源码)
c语言·单片机·嵌入式硬件·课程设计·keil·跑步机设计
苏辰澈3 小时前
C++自己的族谱规则:继承详解下
c语言·开发语言·c++·visualstudio