android 数据库总结

1.sqlite的可视化工具有哪些?如何使用?

sqliteStudio 就挺好的;https://sqlitestudio.pl/index.rvt?act=download 官网下载地址。

sqliteStudio操作文档说明:链接

sqlite 语法:链接     

sql语法:链接

2.Sqlite和Sql的区别?

语法区别:

假设现在有表 channel 和 device ,device的数据结构如下图,同时channel的数据和其一样,id为iint,其余为text类型;

sqlite 在修改列名称和列数据类型,和删除列的语法不支持,即

ALTER TABLE table_name DROP COLUMN column_name

ALTER TABLE table_name ALTER COLUMN column_name datatype

扫描二维码关注公众号,回复: 5515950 查看本文章

3.数据库升级思想

看了上面分析,在涉及到相应操作应该怎么办呢?比如说:再修改某个字段名,这时我们可以这样去实现。

就是利用临时表的思想,先把原表A名字改为临时表B,再创建一张表A,这时A表的字段应是你想要的,然后把表B中的数据移到A中,最后删除B表就可以了;

我们可以使用别的方法来实现修改字段名。
1、修改原表的名称
ALTER TABLE table RENAME TO tableOld;
2、新建修改字段后的表

CREATE TABLE table(ID INTEGER PRIMARY KEY AUTOINCREMENT,  Username text not null);

3、从旧表中查询出数据 并插入新表INSERT INTO table SELECT ID,Username FROM tableOld;
4、删除旧表 DROP TABLE tableOld;

或者再针对删除某个字段时,我们可以直接创建一个表,然后把之前的把数据拷贝过来赋值给新表就可以了。

insert into channel select id, deviceID, deviceName from device;

但是注意:在添加列的时候,可以

ALTER TABLE table_name ADD column_name datatype

语句去直接增加列,不必通过复制的思想去实现了。可以参考文章 https://blog.csdn.net/honeysx/article/details/50865649 。

可以去参考 https://blog.csdn.net/honeysx/article/details/50865649 文章表述的,这里针对跨版本升级还可以这样实现,可以参考。

 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        for (int i = oldVersion; i <= newVersion; i++) {
            switch (i) {
                case 2:
                    UpgradeV2(db);
                    break;
                case 3:
                    UpgradeV3(db);
                    break;
                case 4:
                    UpgradeV4(db);
                    break;
            }
        }

4.数据库原理

数据库分为关系型数据库和非关系型数据库 常见的关系型数据库和非关系型数据及其区别 ;Sqlite属于传统关系型数据,一般的,像其他第三方数据框架都会有 实体类对象映射注解功能 对应,像ormLite 、Room(android自带的数据库框架)。而实体类对象映射注解的核心原理就是:注解、反射。通过注解实体类、类的属性字段,在通过反射获取到这些注解并解析执行相应的逻辑,要知道很多框架底层核心就是注解和反射,最后再通过泛型让框架变得通用。(参考示例

猜你喜欢

转载自blog.csdn.net/sjh_389510506/article/details/87864730