Android SQLit数据库学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android SQLit数据库学习相关的知识,希望对你有一定的参考价值。

Android中SqLite的使用详情

今天我就和大家分享一下在android中如何使用SQLite。

    首先,我们来了解一下SQLite,SQLite是一款轻型的嵌入式数据库,是遵守ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统。

SQLite的特点:

    1.轻量级
        使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸比较小。
    2.独立性(不需要安装)
        SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
    3.隔离性
        SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
    4.跨平台
        SQLite 目前支持大部分操作系统(windows,linux,Android,ios),不至电脑操作系统更在众多的手机系统也是能够运行
    5.多语言接口
        SQLite 数据库支持多语言编程接口。
    6.安全性
        SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。
        
SQLite数据类型:

    一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。
    
        SQLite具有以下五种常用的数据类型:
        ?
            NULL: 表示一个NULL值
            INTEGER: 用来存储一个整数,根据大小可以使用1,2,3,4,6,8位来存储.
            REAL: IEEE 浮点数
            TEXT: 按照字符串来存储
            BLOB: 按照二进制值存储,不做任何改变.
        
        要注意,这些类型是值本身的属性,而不是列的属性.但是为了和其他DBMS(以及SQL标准)兼容,在其create table语句中可以指定列的类型,为此,SQLite有个列相似性的概念(Column Affinity). 列相似性是列的属性,SQLite有以下几种列相似性:
        
            TEXT: TEXT列使用NULL,TEXT或者BLOB存储任何插入到此列的数据,如果数据是数字,则转换为TEXT.
            NUMERIC: NUMERIC列可以使用任何存储类型,它首先试图将插入的数据转换为REAL或INTEGER型的,如果成功则存储为REAL和INTEGER型,否则不加改变的存入.
            INTEGER:和NUMERIC类似,只是它将可以转换为INTEGER值都转换为INTEGER,如果是REAL型,且没有小数部分,也转为INTEGER
            REAL: 和NUMERIC类型 只是它将可以转换为REAL和INTEGER值都转换为REAL.
            NONE:不做任何改变的尝试.
        
        SQLite根据create table语句来决定每个列的列相似性.规则如下(大小写均忽略):
            1. 如果数据类型中包括INT,则是INTEGER
            2. 如果数据类型中包括CHAR,CLOB,TEXT则是TEXT
            3. 如果数据类型中包括BLOB,或者没有指定数据类型,则是NONE
            4. 如果数据类型中包括REAL,FLOA或者DOUB,则是REAL
            5. 其余的情况都是NUMERIC
            
SQLiteDatabase的常用方法,方法名称及方法表示含义:

        打开或创建数据库
        openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory  factory)


        插入一条记录
        insert(String table,String nullColumnHack,ContentValues  values)
        技术分享

 


        删除一条记录
        delete(String table,String whereClause,String[]  whereArgs)
        技术分享

 


        查询一条记录
        query(String table,String[] columns,String selection,String[]  selectionArgs,String groupBy,String having,String  orderBy)
        技术分享

 


        修改记录
        update(String table,ContentValues values,String whereClause,String[]  whereArgs)
        技术分享

 


        执行一条SQL语句
        execSQL(String sql)
        技术分享

 


        关闭数据库
        close()

     技术分享

 



在使用Sqlite的过程中,我们必须使用到一个辅助类————SQLiteOpenHelper

    SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法.
    
    SQLiteOpenHelper提供的常用方法,方法名称及方法表示含义:
    
        构造方法,一般是传递一个要创建的数据库名称,版本等参数
        SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version)
        技术分享

 


        创建数据库时调用
        onCreate(SQLiteDatabase db)
        技术分享

 


        版本更新时调用
        onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)
        技术分享

 


        创建或打开一个只读数据库
        getReadableDatabase()

          技术分享

 


        创建或打开一个读写数据库
        getWritableDatabase()

    技术分享



   源码下载地址:http://download.csdn.net/detail/littyzhon/9839805

 



























































































以上是关于Android SQLit数据库学习的主要内容,如果未能解决你的问题,请参考以下文章

Sqlit--学习教程(建立数据库表)

Sqlit--学习教程(简介)

Sqlit--学习教程(命令)

Android 手写数据库框架

Android 手写数据库框架

Django学习--数据库的配置