所有的 SQL 语句都是以分号结尾的,SQL 语句不区分大小写。两个减号“ - - ”则代表注释
SQLite 具有以下五种基本数据类型:
1、integer:带符号的整型(最多 64 位)
2、real:8 字节表示的浮点类型
3、text:字符类型,支持多种编码(如 UTF-8、UTF-16),大小无限制
4、blob:任意类型的数据,大小无限制。 BLOB(binary large object)二进制大对象,使用二进制保存数据
5、null:表示空值
1.创建、打开数据库
sqlite3 *.db
当*.db 文件不存在时,sqlite 会创建并打开数据库文件。
当*.db 文件存在时,sqlite 会打开数据库文件。
2.退出数据库
.quit 或 .exit
3.创建表
create table 表名称(列名称1 数据类型,列名称2 数据类型, …);
- 设置主键
create table 表名称 (列名称 1 数据类型 primary key, 列名称 2 数据类型, …);
4.查看表
.table 或 .tables
- 查看数据表的结构:.schema[表名] 或 .schema
5.修改表
在已有的表中添加或删除列以及修改表名
sqlite3 不支持删除列
- 添加列
alter table 表名 add 列名 数据类型; - 修改表名
alter table 表名 rename to 新表名;
6.删除表
用于删除表,表的结构、属性以及表的索引也会被删除
drop table 表名称;
7.插入新行
insert into 表名 values (列值 1, 列值 2, 列值 3,列值 4, …);
列值为字符串时要加上 ‘ ’ 号
8.插入部分数据
insert into 表名 (列名 1, 列名 2, …) values (列值 1, 列值 2, …);
9.修改表中的数据
update 表名 set 列 1 = 值 1[, 列 2 = 值 2 , … ] [匹配条件];
使用 where 根据匹配条件,查找一行或多行,根据查找的结果修改表中相应行的列值(修改哪一列由列名指定)
where 列名 操作符 列值where 子句用于规定匹配的条件:
| 操作符 | 描述 |
|---|---|
| = | 等于 |
| <> | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
#注意#
当表中有多列、多行符合匹配条件时会修改相应的多行。
当匹配条件为空时则匹配所有。
10.删除表中数据
delete from 表名 [匹配条件];
#注意#
当表中有多列、多行符合匹配条件时会删除相应的多行
11.查看表的内容
- 查看满足指定条件的信息
select * from 表名 [匹配条件]; - 查看某一列的信息
select 列名 1[, 列名 2, …] from 表名 [匹配条件]; - 直接查看表的所有内容
select * from 表名称;
星号(*)是选取所有列的通配符
- 美观的查看内容
左对齐列:
.mode column
列名显示:
.headers on
12.更多的匹配条件
- in 操作符
where 列名 in (列值 1, 列值 2, …)
in允许我们在where子句中规定多个值
- and 操作符
where 列 1 = 值 1 [and 列 2 = 值 2 and …]
and 可在 where 子语句中把两个或多个条件结合起来(多个条件之间是与的关系)
- or 操作符
where 列 1 = 值 1 [or 列 2 = 值 2 or …]
or 可在 where 子语句中把两个或多个条件结合起来(多个条件之间是或的关系)
- between and 操作符
where 列名 between A and B
操作符 between A and B 会选取介于 A、B 之间的数据范围。这些值可以是数值、文本或者日期。
不同的数据库对 between A and B 操作符的处理方式是有差异的。
(1) 有些数据库包含 A 不包含 B。
(2) 有些包含 B 不包含 A。
(3) 有些既不包括 A 也不包括 B。
(4) 有些既包括 A 又包括 B。
匹配字符串时会以 ascii 顺序匹配。
- like 操作符
where 列名 like 列值
1、若列值为数字 相当于列名=列值。
2、若列值为字符串 可以用通配符“%”代表缺少的字符(一个或多个)。
- not 操作符
如where 列名 notin 列值等
13.排序
order by 语句
根据指定的列对结果集进行排序。
默认按照升序对结果集进行排序,可使用 desc 关键字按照降序对结果集进行排序。
升序
select * from 表名 order by 列名;
降序
select * from 表名 order by 列名 desc;
只是对结果集排序,再次查看,原表仍为乱序
14.事务
事务(Transaction)可以使用 BEGIN TRANSACTION 命令或简单的 BEGIN 命令来启动。此类事务通常会持续执行下去,直到遇到下一个 COMMIT 或 ROLLBACK 命令。不过在数据库关闭或发生错误时,事务处理也会回滚。
SQLite 中,默认情况下,每条 SQL 语句自成事务。
- begin:开始一个事务,之后的所有操作都可以取消
- commit:使 begin 后的所有命令得到确认
- rollback:回滚操作,取消 begin 后的所有操作