SQLite 备忘清单 & sqlite cheatsheet & Quick Reference

SQLite 备忘清单

本备忘单旨在快速理解 SQLite 所涉及的主要概念,提供了最常用的SQL语句,供您参考。

入门

介绍

SQLite 是一个轻量级的嵌入式关系数据库管理系统,遵循 ACID 原则,广泛用于浏览器、操作系统等应用中,实现本地数据存储。

安装

windows

  • SQLite 下载两个压缩文件:sqlite-tools-win32-*.zipsqlite-dll-win32-*.zip
  • 创建文件夹 C:\sqlite,将这两个压缩文件解压到该文件夹下。
  • 解压后,您将看到 3 个文件: sqlite3.defsqlite3.dllsqlite3.exe
  • 将 C:\sqlite 添加到 PATH 环境变量中,以便在命令行中使用 SQLite。

linux

linux 自带 sqlite3,或者通过 apt-get/yum/brew 等安装。

macOS

brew install sqlite 安装

连接 SQLite 数据库

SQLite 通常无需复杂配置,当指定的数据库文件不存在时,它会自动创建一个新文件。

sqlite3 mydatabase.db

若数据库文件不存在则会自动创建

数据库操作

显示数据库名称及对应文件

sqlite> .databases
main: /home/user/sqlite/database.db r/w

备份数据库

sqlite> .backup back

显示已经设置的值

sqlite> .show 
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width:
    filename: api.db

备份单张表

sqlite> .dump user

退出

sqlite> .exit

以 sql 的形式 dump 数据库

sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE api (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    host TEXT NOT NULL,
    port INTEGER NOT NULL,
    path TEXT NOT NULL
);
INSERT INTO api VALUES(1,'example.com',8080,'/api/v1');

导入与导出数据库

导出数据库

sqlite3 mydatabase.db .dump > backup.sql

导入数据库

sqlite3 mydatabase.db < backup.sql

输出模式设置

设置输出模式为 csv

sqlite> .mode csv
sqlite> select * from api;
id,host,port,path
1,example.com,8080,/api/v1

输出为 markdown

sqlite> select * from api;
| id |      host       | port |  path   |
|----|-----------------|------|---------|
| 1  | example.com     | 8080 | /api/v1 |

支持 ascii box column csv html insert json line list markdown qbox quote table tabs tcl 等类型

数据表操作

常用表操作

创建表

sqlite> create table user(id integer primary key, name text);

查看所有表

sqlite> .tables

查看表结构

sqlite> .schema user

导入文件到表中

sqlite> .import user.csv user

设置查询显示列名称

sqlite> .head on

常用 SQL

-- 创建表
create table user(id integer primary key, name text);

-- 删除表
drop table user;

-- 重命名表
alter table user rename to user_new;

-- 插入
-- 单条
insert into user(name) values('test');
-- 多条
insert into user(name) values('test1'),('test2');

-- 查询
select * from user;
-- 去重查询
select distinct name from user;
-- 统计
select count(id) from user;
-- limit
select * from user limit 2;
-- 条件查询
select * from user where id > 1;
-- 模糊查询
select * from user where name like '%test%';
-- group by
select name, count(id) from user group by name;
-- 排序
select * from user order by id desc;
-- 聚合函数
select max(id) from user;

-- 更新
update user set name='test3' where id=1;

-- 删除
delete from user where id=1;

事务支持

事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个标准属性,缩写为 ACID。

-- 开始事务
begin transaction;
-- 操作
update user set name='test4' where id=1;
-- 回滚
rollback;
-- 提交
commit;

命令行帮助

在命令行中通过 .help 命令显示帮助文档