SQLite 学习
Posted 寂智
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite 学习相关的知识,希望对你有一定的参考价值。
SQLite 学习
一. 简介
零配置,无需安装或管理;
无服务器,不需要单独的服务器进程或操作系统;
数据库是存储在一个单一的跨平台的磁盘文件;
事务是完全兼容ACID的,允许从多个进程或者线程安全访问;
二.数据类型
NULL
INTEGER,值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,6或8个字节;
TEXT,所有值都是浮点数值,被存储为8字节的IEEE浮点数;
TEXT,值为文本字符串,使用数据库编码存储,如UTF-8、UTF-16BE或UTF-16-LE;
BLOB(binary large object 二进制大对象),值是数据的二进制对象,如何输入就如何存储,不改变格式;
没有单独的boolean数据类型(通过整数0或1表示),没有单独的日期数据类型;
三. 类型或列亲和性(type or column affinity)
sqlite 不强制数据类型的约束,任何类型都可以插入任何列。
sqlite 使用声明的列类型来指示你所期望的格式,如果向整型列中插入字符串,sqlite 会试图将该字符串转换成一个整数,如果可以转换,它将插入该整数,否则将插入字符串;
优点,1.提升和其他DBMS的兼容性,让用户像用一般的DBMS一样使用它,提高了容错能力。2.sqlite支持的数据类型只有五种,如果能支持的类型太多,系统会很庞大,但sqlite实际上任何类型都支持,这就是亲和性的巧妙之处;
缺点,不一致的数据存在,运算和比较会很混乱,sqlite自定了一套规则解决;
类型 | 解释 |
---|---|
TEXT | 数值型数据在被插入之前,需要先被转换为文本格式,之后再插入到目标字段中 |
NUMERIC | NULL或BLOB类型的数据不转换,浮点型的试图转换成INTEGER,文本视图转换为INTEGER或REAL(转不了存 TEXT) |
INTEGER | 规则等同于NUMERIC,唯一差别是在执行CAST表达式时 |
REAL | 规则基本等同于NUMERIC,唯一的差别是不会将"30000.0"这样的文本数据转换为INTEGER存储方式 |
NONE | 不做任何的转换,直接以该数据所属的数据类型进行存储 |
四. 常用命令
.help
.databases = show databases;
.tables = show tables;
.schema tablename = desc tablename
sqlite3 testDB.db
sqlite3 testDB.db .dump > testDB.sql
ATTACH DATABASE ‘testDB.db’ as ‘TEST’;
DETACH DATABASE ‘Alias-Name’;
创建表
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);
10.其他和mysql基本一致
以上是关于SQLite 学习的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段
SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML
当我从用户获取数据并将其保存到 SQLite 数据库中时,我应该怎么做才能使列表视图在片段中工作
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段