114 lines
2.3 KiB
Markdown
Executable File
114 lines
2.3 KiB
Markdown
Executable File
# sqlite3
|
|
|
|
> 关系型数据库
|
|
> 只能本地存储, 适合小型本地项目, 或者应用和数据库在同台服务器上, 多读少写
|
|
|
|
UnQLite
|
|
|
|
[SQLite 教程 | 菜鸟教程](https://www.runoob.com/sqlite/sqlite-tutorial.html)
|
|
|
|
macos自带, 终端输入 sqlite3 就可以进入命令
|
|
|
|
```sh
|
|
sqlite3 mydatabase.db # 创建文件
|
|
```
|
|
|
|
## 指令
|
|
|
|
```sqlite
|
|
--这是注释
|
|
.open filename -- 打开文件, 没有该文件就创建
|
|
.show -- 显示帮助信息
|
|
.q -- 退出
|
|
.databases -- 显示数据库
|
|
```
|
|
|
|
## 数据导入导出
|
|
|
|
```sh
|
|
sqlite3 test.db .dump > testDB.sql # 导出
|
|
sqlite3 test.db < testDB.sql # 导入
|
|
```
|
|
|
|
## 数据类型
|
|
|
|
|存储类型 |描述|
|
|
|:--|:--|
|
|
|null|空值|
|
|
|int|整型|
|
|
|text|字符串|
|
|
|blob|布尔值|
|
|
|integer|带符号的整数, 根据值大小存储在1, 2, 3, 4, 6或8字节中, 一般当id用|
|
|
|real|浮点值, 8字节|
|
|
|
|
## 创建表
|
|
|
|
```sqlite
|
|
create table database_name.table_name(
|
|
column1 datatype primary key not null,
|
|
column2 datatype
|
|
);
|
|
|
|
.tables -- 显示表
|
|
.schema -- 获取表信息
|
|
```
|
|
|
|
## 删除表
|
|
|
|
```sqlite
|
|
drop table database_name.table_name;
|
|
```
|
|
|
|
## 插入
|
|
|
|
```sqlite
|
|
insert into table_name[(column1,column2)] values(value1,value2);
|
|
```
|
|
|
|
## 一个表填充到另一个表
|
|
|
|
```sqlite
|
|
insert into first_table_name [(column1,column2)] select column1, column2 from second_table_name [where condition];
|
|
```
|
|
|
|
## beter-sqlite
|
|
|
|
[koa2+better-sqlite3实现增删改查\_疆\~的博客-CSDN博客](https://blog.csdn.net/qq_40323256/article/details/125508713)
|
|
|
|
## 连接远程的sqlite数据库
|
|
|
|
> 起源: alist关掉索引后db文件仍然非常大, 清除对缩小体积没效果
|
|
> 解决方法:
|
|
> 1. 导出备份数据
|
|
> 2. 停止docker服务
|
|
> 3. 重命名data.db 为 data_bak.db
|
|
> 4. 重启动docker服务, 自动生成 新的 data.db
|
|
> 5. 编辑新数据库的用户名和密码为旧的
|
|
> 6. 登录并导入
|
|
|
|
1. sqlite不支持网络连接
|
|
2. 网上教程推荐创建web服务, 通过http访问 `.db` 文件
|
|
3. 个人喜欢使用 sshfs 挂载远程目录到本地
|
|
1. macos 安装 `sshfs`: https://osxfuse.github.io/ (可能需要先装 macFUSE )
|
|
|
|
```sh
|
|
# 或者安装
|
|
brew install Caskroom/cask/osxfuse
|
|
brew install sshfs
|
|
```
|
|
|
|
3. 连接
|
|
|
|
```sh
|
|
sshfs -C -o reconnect 用户名@ip:远程路径 本地路径
|
|
```
|
|
|
|
3. 卸载
|
|
|
|
```sh
|
|
umount 本地路径
|
|
```
|
|
|
|
## 外键约束
|
|
|
|
`foreign` |