- 创建或进入一个数据库
$sqlite3 dbName.db
- 退出sqlite提示符
sqlite>.quit
- 导出完整的数据库到一个文本文件中
$sqlite3 dbName.db .dump > test.sql
- 从SQL文件中恢复
$sqlite3 dbName.db < test.sql
- 选择数据库,附加数据库。当同一时间有多个数据库可用,想使用其中的任何一个
sqlite>ATTACH DATABASE "dbName.db" as "test";
如果数据库未创建,则创建一个数据库,如果 数据库已经存在,则把数据库文件名称与逻辑数据库”test”绑定在一起。
- 分离数据库
SQLite的DETACH DTABASE语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的。如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。您无法分离main或temp数据库。
DETACH DATABASE "test";
这里test与之前使用 ATTACH 语句附加数据库时所用到的别名相同。
- 创建表
create table student(
ID int preimary key not null,
name text not null,
age int not null);
可以用.tables命令来验证表是否已经成功创建
sqlite>.tables
student
可以使用.schema命令得到表的完整的信息
sqlite>.schema student
CREATE TABLE student(
ID int preimary key not null,
name text not null,
age int not null);
- 删除表
DROP TABLE语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。
sqlite>.tables
student
sqlite>drop table student;
sqlite>
sqlite>.tables
sqlite>
成功将表student从数据库删除
- 插入insert
insert into student(id,name,age) values(1,"python",18);
insert into student values(2,"python3",20);
- 查询 select
sqlite>.header on
sqlite>.mode column
sqlite>select * from student;
ID name age
---------- ---------- ----------
1 python 18
2 python3 20
- GLOB
SQLite 的GLOB运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的。
星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'
WHERE column GLOB '200*'
查找以 200 开头的任意值
WHERE column GLOB '*200*'
查找任意位置包含 200 的任意值
WHERE column GLOB '?00*'
查找第二位和第三位为 00 的任意值
WHERE column GLOB '2??'
查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE column GLOB '*2'
查找以 2 结尾的任意值
WHERE column GLOB '?2*3'
查找第二位为 2,且以 3 结尾的任意值
WHERE column GLOB '2???3'
查找长度为 5 位数,且以 2 开头以 3 结尾的任意值
- limit
SQLite 的LIMIT子句用于限制由 SELECT 语句返回的数据数量
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows] OFFSET [row num]
sqlit>select * from student limit 3 offset 1