sqlite
一个轻量级的数据库,平时写的一些小程序实际上用 sqlite 就能解决了
安装
- osx 上面的安装直接使用
brew install sqlite
就可以安装完成了
常用命令
基本上常见的命令都是以
.
开头的
.help
查看常见命令.databases
查看当前目录下的所有数据库.dump
导出当前数据库的数据
sqlite3 testdb.db .dump >a.sql
导出sqllite3 testdb.db <a.sql
导入
sqlite3 testdb.db
创建数据库attach database 'databasename' as 'aliasname'
新增一个数据库,并另命别名为 xxxdetach database 'alias-name'
给某个数据库换一个别名- 创建表与 mysql 一样,字段也差不多
- 其余语句均和 mysql 差不多,不管是 select,where,or,and,distinct,like 等都可以使用
NULL | 值是一个 NULL 值。 |
---|---|
INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中 |
REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储. |
BLOB | 值是一个 blob 数据,完全根据它的输入存储。 |
注意
实际上 varchar 类型都是可以的,会自动判别为 text, 详细信息请查看 详情
- 重要的是时间节点, sqlite 默认是使用 GMT 的时间,也就是格林尼治时间,不然当前时区,如果要使用当前时区的时间,那么需要使用
localtime
,命令如下select datetime(current_timestamp, 'localtime');
limit 和 offset 的使用
- limit的意义在于只保留多少条数据
- offset 的意义是跳过多少条数据
两个命令结合起来就可以组合成一个只保留最新多少条数据的复合语句
1 | delete from smzdm where id in (select id from |
删除 table 里面的某一列
不支持 alter drop 的操作,只能重新删除表,再次建一个