网络编程:SQLite3数据库
文章目录
前言
一、下载及安装SQLite3
二、以“.”开头的命令
三、SQL语句
示例:
四、sqlite3支持的语言与框架
数据库的打开(sqlite3_open函数)
数据库的关闭(sqlite3_close函数)
五、执行SQL语句(sqlite3_exec函数)
sqlite3_exec函数介绍
sqlite3_exec()函数应用
使用sqlite3_exec()函数创建表
使用sqlite3_exec()函数向表中插入数据
使用sqlite3_exec()函数查询数据
void *data的作用是什么?
六、项目名称:简单的联系人管理系统
创建一个名为contacts.db的数据库
实现“添加联系人”功能的代码:
CH05_3_联系人管理系统完整代码
总结
一、下载及安装SQLite3
- 下载SQLite3二进制文件:可以从SQLite网站的下载页面(SQLite Download Page)下载适用于相应系统的SQLite3二进制文件
- 安装SQLite3二进制文件:
- 对于Windows,只需运行安装程序并按照提示进行即可
- 对于macOS,您需要将二进制文件移动到/usr/local/bin目录中
brew install sqlite
- 对于Linux,您需要使用包管理器来安装SQLite3软件包
sudo apt-get update
sudo apt-get install sqlite3
- 验证SQLite3是否已正确安装:
- 在命令行终端上输入sqlite3命令并回车
- 如果成功安装,则会进入SQLite3的命令行客户端
- 可选地,安装SQLite3 GUI工具:如果您需要一个GUI工具来管理SQLite3数据库,则可以使用一些第三方工具
- SQLiteStudio
- DBeaver
- 这些工具可免费下载和使用
注意:安装sqlite3和安装sqlite3依赖库不是一个概念,安装sqlite3依赖库,需要执行
sudo apt-get install libsqlite3-dev
二、以“.”开头的命令
| 命令 | 说明 |
|---|---|
| .archive ... | 管理SQL归档文件 |
| .auth ON|OFF | 显示授权回调函数 |
| .backup ?DB? FILE | 将数据库DB(默认为“main”)备份到FILE |
| .bail on|off | 在错误发生后停止。默认为OFF |
| .binary on|off | 打开或关闭二进制输出。默认为OFF |
| .cd DIRECTORY | 将工作目录更改为DIRECTORY |
| .changes on|off | 显示SQL更改的行数 |
| .check GLOB | 如果自从.testcase以来的输出不匹配,则失败 |
| .clone NEWDB | 从现有数据库克隆数据到NEWDB中 |
| .databases | 列出附加数据库的名称和文件 |
| .dbconfig ?op? ?val? | 列出或更改sqlite3_db_config()选项 |
| .dbinfo ?DB? | 显示有关数据库的状态信息 |
| .dump ?TABLE? ... | 将所有数据库内容呈现为SQL |
| .echo on|off | 打开或关闭命令回显 |
| .eqp on|off|full|... | 启用或禁用自动EXPLAIN QUERY PLAN |
| .excel | 在电子表格中显示下一个命令的输出 |
| .exit ?CODE? | 以返回代码CODE退出此程序 |
| .expert | 实验性功能。为查询建议索引 |
| .explain ?on|off|auto? | 更改EXPLAIN格式模式。默认值:auto |
| .filectrl CMD ... | 运行各种sqlite3_file_control()操作 |
| .fullschema ?--indent? | 显示模式和sqlite_stat表的内容 |
| .headers on|off | 打开或关闭标题的显示 |
| .help ?-all? ?PATTERN? | 显示有关PATTERN的帮助文本 |
| .import FILE TABLE | 将数据从FILE导入TABLE |
| .imposter INDEX TABLE | 在索引INDEX上创建仿冒表TABLE |
| .indexes ?TABLE? | 显示索引的名称 |
| .limit ?LIMIT? ?VAL? | 显示或更改SQLITE_LIMIT的值 |
| .lint OPTIONS | 报告潜在的模式问题。 |
| .load FILE ?ENTRY? | 加载扩展库 |
| .log FILE|off | 打开或关闭日志记录。文件可以是stderr/stdout |
| .mode MODE ?TABLE? | 设置输出模式 |
| .nullvalue STRING | 在NULL值的位置使用字符串STRING |
| .once (-e|-x|FILE) | 仅将下一个SQL命令的输出发送到FILE |
| .open ?OPTIONS? ?FILE? | 关闭现有数据库并重新打开FILE |
| .output ?FILE? | 将输出发送到FILE,如果省略FILE,则发送到stdout |
| .parameter CMD ... | 管理SQL参数绑定 |
| .print STRING... | 打印文本字符串STRING |
| .progress N | 在每个N操作码后调用进度处理程序 |
| .prompt MAIN CONTINUE | 替换标准提示符 |
| .quit | 退出此程序 |
| .read FILE | 从FILE读取输入 |
| .recover | 尝试从损坏的数据库中恢复尽可能多的数据。 |
| .restore ?DB? FILE | 从FILE还原数据库DB(默认为“main”)的内容 |
| .save FILE | 将内存中的数据库写入FILE |
| .scanstats on|off | 打开或关闭sqlite3_stmt_scanstatus()指标 |
| .schema ?PATTERN? | 显示与PATTERN匹配的CREATE语句 |
| .selftest ?OPTIONS? | 运行在SELFTEST表中定义的测试 |
| .separator COL ?ROW? | 更改列和行分隔符 |
| .session ?NAME? CMD ... | 创建或控制会话 |
| .sha3sum ... | 计算数据库内容的SHA3哈希值 |
| .shell CMD ARGS... | 在系统Shell中运行CMD ARGS... |
| .show | 显示各种设置的当前值 |
| .stats ?on|off? | 显示统计信息或打开/关闭统计信息 |
| .system CMD ARGS... | 在系统Shell中运行CMD ARGS... |
| .tables ?TABLE? | 列出LIKE模式为TABLE的表名 |
| .testcase NAME | 开始将输出重定向到“testcase-out.txt” |
| .testctrl CMD ... | 运行各种sqlite3_test_control()操作 |
| .timeout MS | 尝试以MS毫秒为间隔打开已锁定表 |
| .timer on|off | 打开或关闭SQL计时器 |
| .trace ?OPTIONS? | 在每个SQL语句执行时输出 |
| .vfsinfo ?AUX? | 有关顶级VFS的信息 |
| .vfslist | 列出所有可用的VFS |
| .vfsname ?AUX? | 打印VFS堆栈的名称 |
| .width NUM1 NUM2 ... | 设置“ column”模式的列宽度 |
三、SQL语句
以下是SQLite 3中常用的SQL语句:
- 创建表格
CREATE TABLE table_name (column_1 data_type constraints,column_2 data_type constraints,...,column_n data_type constraints
);
- 删除表格
DROP TABLE table_name;
- 查询数据
SELECT column_1, column_2, ..., column_n
FROM table_name;
- 插入数据
INSERT INTO table_name (column_1, column_2, ..., column_n)
VALUES (value_1, value_2, ..., value_n);
- 更新数据
UPDATE table_name
SET column_1 = value_1, column_2 = value_2, ..., column_n = value_n
WH