ios-SQLite

来源:互联网 发布:桌面软件 知乎 编辑:程序博客网 时间:2024/06/05 07:52

也简单的学习了下SQLite的基本概念,SQLite是一个轻型的数据库,占用资源少,处理速度快,所以在移动端运用广泛。

它不需要任何外部的依赖,也不需要服务器。一个完整的SQLite数据库其实就是一个独立的文件。

数据库当中的表其实就是用于存储一组结构相同,内容不同的数据。就和我们在实际的开发中使用的一个存储对象的数组是相似的。

在数据库当中可以保存多张表。在有些表当中,一行当中如果存储的是一条完整的记录的话,那么这一行记录其实就和我们在实际开发中的一个对象是类似的,因为就比如说你这一行存储的是一个学生的姓名,年龄,家庭住址,我们也完全可以定义一个类,然后定义属性,然后创建对象,进行赋值。

至于列的话,就类似于我们上面比喻的类当中的一个属性。也可以说是每一个对象的属性。

有一点我们要明确,数据库的用处,其实不仅仅是保存数据,还有就是可以用于对数据的检索和查询。数据库文件是放在应用程序沙盒中的。

SQLite中采用的是动态数据的类型,即使我们在创建的时候定义了一种类型,但是我们在实际操作的时候也可以去存储其他类型。

摘抄网络:

一个SQLite数据库文件有5种锁的状态:

    UNLOCKED:表示数据库此时并未被读写。
    SHARED:表示数据库可以被读取。SHARED锁可以同时被多个线程拥有。一旦某个线程持有SHARED锁,就没有任何线程可以进行写操作。
    RESERVED:表示准备写入数据库。RESERVED锁最多只能被一个线程拥有,此后它可以进入PENDING状态。
    PENDING:表示即将写入数据库,正在等待其他读线程释放SHARED锁。一旦某个线程持有PENDING锁,其他线程就不能获取SHARED锁。这样一来,只要等所有读线程完成,释放SHARED锁后,它就可以进入EXCLUSIVE状态了。
    EXCLUSIVE:表示它可以写入数据库了。进入这个状态后,其他任何线程都不能访问数据库文件。因此为了并发性,它的持有时间越短越好。

介绍一篇文章:https://www.cnblogs.com/huozhong/p/5973938.html


原创粉丝点击