一、SQLite数据类型(摘自:https://blog.csdn.net/qq_27280457/article/details/51790055)
SQLite具有以下五种常用的数据类型:
NULL: 这个值为空值
VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
CHAR(n):长度固定为n的字串,n不能超过 254。
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改变格式。
DATA :包含了年份、月份、日期。
TIME: 包含了小时、分钟、秒。
二、Android数据库结构
我的易错点:只有数据库是以“xxx.db”命名的,增删查改的表名千万不要画蛇添足的加“.db”,注意区别表和库。。。
建表语句如下:
"create table Book (" + "id integer primary key autoincrement," + "author text," + "price real," + "pages integer," + "name text)"
删表语句如下:
public void clickDeleteDB(View view){ database.execSQL("drop table if exists Book"); Log.d(TAG, "clickDeleteDB: 已删除Book表"); }
三、查询方法参数解析
重点提一下orderBy:“表名 desc”--- 降序排列 “表名 asc”--- 升序排列
顺便一提,如果表被删了还要查询,程序会崩溃,有这种操作的可以对查询方法用try--catch来捕获异常:
try{ …… //查询方法 }catch (SQLException e){ Log.d(TAG, "onClick: 查无此表"); }