[root@localhost data]# sqlite3 #调用二进制文件直接进入命令交互界面 [root@localhost data]# sqlite3 /data/my_test.db #建立一个名为my_test的schema后缀用什么都可以但是要注意不同的文件名后缀相同的文件名就是不同的文件,是完全2个完全独立的schema,建议是用.db是标准的容易区分,如果有这个文件名的schema则不创建数据文件,建好了默认有一个main的database,其次默认建立的schema是不加密的,如果是重要数据建议加密 [root@localhost data]# sqlite3 /data/my_test.db #进入my_test的schema,要注意的是,如果是新建立的schema在其中没有建立任何项目时是不会产生相应的数据文件的 SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .database #查看当前的schema下的database信息 seq name file --- --------------- ---------------------------------------------------------- 0 main /data/my_test.db sqlite> .help #帮助信息 sqlite> .exit #退出 sqlite> SELECT * FROM sqlite_master; #系统表,在SQLite中唯一的一张,是只读的,是无法删除的执行删除该表是是在做类似于flush的操作 sqlite> .show echo: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" width:
以上就是SQLlite数据库比较常用的交互命令,至于其他更多可以通过help查看,在这个就不做过多的介绍,在平时可以通过查询SQLlite数据库中唯一的一张系统表sqlite_master表获知当前的schema下所有表、视图、索引、触发器相关等等信息,在sqlite_master表中有4个列:
type列记录了项目的类型,如表、视图、索引、触发器 name列记录了项目的名称,如表名、索引名、视图名等 tbl_name列记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身 rootpage列记录项目在数据库页中存储的编号。对于视图该列值为0,触发器该列值NULL。 sql列记录建表的DDL
一些常用的系统表查询:
sqlite> SELECT * FROM sqlite_master WHERE type = 'table'; #查看当前schema下所有表信息 sqlite> SELECT * FROM sqlite_master WHERE rootpage = 0; #查看当前schema下所有的视图信息 sqlite> SELECT * FROM sqlite_master WHERE rootpage IS NULL; #查看当前schema下所有的视图信息 sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'tablename'; #查看tablenameDDL
在SQLlite目前下有5种数据存储类型:
数据存储类型 | 说明 |
---|---|
NULL | 值是一个 NULL 值 |
INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中 |
REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字 |
TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储 |
BLOB | 值是一个 blob 数据,完全根据它的输入存储 |
而SQLlite其自身有支持列的亲和数据类型、亲和数据名称概念。任何列仍然可以存储任何类型的数据,当数据插入时,该字段的数据将会优先采用亲缘类型作为该值的存储方式,
如各种int型存入INTEGER中,在建好的表中用的是INTEGER类型,或者还是用其它的数据类型名称,但是实际中还是存在INTEGER中,要注意的是SQLlite本身仅仅是一个很小的轻量级数据库平时不要把SQLlite当成其它大型数据来使用
原文:http://blog.51cto.com/jim123/2056290