前言
Android中自带的数据库为Sqlite,与上篇博客类似,属于冷门知识点,往往都是写完DB模块,下一次再接触就不知猴年马月了,所以这里记录下一些常用操作。
查看数据库
Android数据库保存位置为:/data/data/package-name/databases/下面。
进入Sqlite命令行模式
#sqlite3 database_name.db >>
查看所有表
sqlite> .table
查看建表的SQL命令
sqlite> .schema ####你也可以指定表名,不指明表名则显示所有的 sqlite> .schema table_name
显示表头
.headers on/off 显示表头 默认off
改变输出格式
.mode list|column|insert|line|tabs|tcl|csv 改变输出格式 sqlite> .mode list sqlite> select * from emp; 7369|SMITH|CLERK|7902|17-12-1980|800||20 7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30 如果字段值为NULL 默认不显示 也就是显示空字符串 sqlite> .mode column sqlite> select * from emp; 7369 SMITH CLERK 7902 17-12-1980 800 20 7499 ALLEN SALESMAN 7698 20-02-1981 1600 300 30 7521 WARD SALESMAN 7698 22-02-1981 1250 500 30 sqlite> .mode insert sqlite> select * from dept; INSERT INTO table VALUES(10,'ACCOUNTING','NEW YORK'); INSERT INTO table VALUES(20,'RESEARCH','DALLAS'); INSERT INTO table VALUES(30,'SALES','CHICAGO'); INSERT INTO table VALUES(40,'OPERATIONS','BOSTON'); sqlite> .mode line sqlite> select * from dept; DEPTNO = 10 DNAME = ACCOUNTING LOC = NEW YORK DEPTNO = 20 DNAME = RESEARCH LOC = DALLAS DEPTNO = 30 DNAME = SALES LOC = CHICAGO DEPTNO = 40 DNAME = OPERATIONS LOC = BOSTON sqlite> .mode tabs sqlite> select * from dept; 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON sqlite> .mode tcl sqlite> select * from dept; "10" "ACCOUNTING""NEW YORK" "20" "RESEARCH""DALLAS" "30" "SALES" "CHICAGO" "40" "OPERATIONS""BOSTON" sqlite> .mode csv sqlite> select * from dept; 10,ACCOUNTING,"NEW YORK" 20,RESEARCH,DALLAS 30,SALES,CHICAGO 40,OPERATIONS,BOSTON
退出Sqlite3命令行
sqlite> .exit
上面介绍的都是Sqlite3的默认命令,我们可以看到,这些命令都是以.开头的,我们也可以输入sql命令,不过需要使用;分号结尾。
Sqlite那些数据类型
NULL: 这个值为空值
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8个字节
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 文本. 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据,如何输入就如何存储,不改变格式.
Sqlite建表小技巧
对于我们来说,使用sql命令一句句的建表肯定是不能忍受的,别和我说高手都是用命令行,那是没有图形界面可以用好不,不信你看看个人电脑上面装的linux谁没有一个图形界面?
首先下载一个Navicat for SQLite,然后新建数据库->新建表,建立完成以后点击下图中的SQL预览即可得到建表的SQL语句
两个超级常用的建表语句
某一个字段默认为当前时间
// 创建table @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLE_NAME + " (" + BOOK_ID + " INTEGER primary key autoincrement, " + BOOK_NAME + " text, " + BOOK_AUTHOR + " text, oderdate DATETIME DEFAULT CURRENT_TIMESTAMP );"; db.execSQL(sql); }
某一个字段自增
CREATE TABLE TABLE_NAME ( _id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
参考链接:
http://blog.csdn.net/linchunhua/article/details/7184439