sqlite简单使用

sqlite

一个轻量级的数据库,平时写的一些小程序实际上用 sqlite 就能解决了

安装

  • osx 上面的安装直接使用 brew install sqlite 就可以安装完成了

常用命令

基本上常见的命令都是以.开头的

  • .help 查看常见命令
  • .databases 查看当前目录下的所有数据库
  • .dump 导出当前数据库的数据

sqlite3 testdb.db .dump >a.sql 导出
sqllite3 testdb.db <a.sql 导入

  1. sqlite3 testdb.db 创建数据库
  2. attach database 'databasename' as 'aliasname' 新增一个数据库,并另命别名为 xxx
  3. detach database 'alias-name' 给某个数据库换一个别名
  4. 创建表与 mysql 一样,字段也差不多
  5. 其余语句均和 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
2
delete from smzdm where id in (select id from 
smzdm order by id desc limit (select count(*) from smzdm) offset 40) and user_id=1;

删除 table 里面的某一列

不支持 alter drop 的操作,只能重新删除表,再次建一个