按照惯例,百度一下:地址 官网地址
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
特点
轻量级
SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB。不需要”安装”
SQLite的核心引擎本身不依赖第三方的软件,使用它也不需要”安装”。有点类似那种绿色软件。单一文件
数据库中所有的信息(比如表、视图等)都包含在一个文件内。这个文件可以自由复制到其它目录或其它机器上。跨平台/可移植性
除了主流操作系统windows,linux之后,SQLite还支持其它一些不常用的操作系统。弱类型的字段
同一列中的数据可以是不同类型开源
数据类型
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 | 包含了 小时、分钟、秒。 | 
SQLite创建和打开数据库的简单使用
方式一:继承SQLiteOpenHelper
继承 SQLiteOpenHelper 打开或创建数据库。(打开链接,可以看见这是一个抽象类,故而我们需要继承它)
按照Mars视频讲解,这里我先看能否创建成功数据库。
先写一个类DatabaseHelper继承SQLiteOpenHelper,DatabaseHelper.java:
package com.weizu.intent;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
    //Create a helper object to create, open, and/or manage a database.
    public DatabaseHelper(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
    }
    //Called when the database is created for the first time.
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table weizu(id int, name varchar(20), age int)");
    }
    //Called when the database needs to be upgraded.
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
然后在MainActivity.java中简单创建表:
布局文件就是一个Button,这里就不给出了。MainActivity.java
package com.weizu.intent;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.weizu.intent.DatabaseHelper;
public class MainActivity extends Activity{
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button)findViewById(R.id.btn);    
        btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View arg0) {
                DatabaseHelper helper = new DatabaseHelper(MainActivity.this, "weizu", null, 1);
                //Create and/or open a database.
                SQLiteDatabase db = helper.getReadableDatabase();
            }
        });
    }
}
运行就是一个按钮,当我们点击了按钮后,按照逻辑应该创建一个表weizu。接着就看看表的位置:
使用adb工具,我这里没有配置到环境变量,故而直接在我安装的路径的SDK的文件夹中的tools中找到adb.exe。按住Shift键,然后右键,在当前文件夹中打开cmd命令窗口:
输入adb shell,进入安卓的文件系统,如图:
然后,切换目录到运行的应用目录,我这里是data/data/com.weizu.intent,就可以看见databases文件夹,我们进入,就可以看见创建的数据库weizu:
不妨输入命令sqlite3 weizu,进入,然后可以看见表weizu:
这个博客写得很全面:地址
当然,要操作数据库,需要先了解SQLiteDatabase。SQLiteDatabase has methods to create, delete, execute SQL commands, and perform other common database management tasks.
方式二:Context.openOrCreateDatabase
先找文档,看看这个函数的说明:
abstract SQLiteDatabase!    
openOrCreateDatabase(name: String!, mode: Int, factory: SQLiteDatabase.CursorFactory!)
Open a new private SQLiteDatabase associated with this Context's application package.
| name: | The name (unique in the application package) of the database. | 
| mode: | Operating mode. Value is either 0 or a combination of android.content.Context#MODE_PRIVATE, android.content.Context#MODE_WORLD_READABLE, android.content.Context#MODE_WORLD_WRITEABLE, android.content.Context#MODE_ENABLE_WRITE_AHEAD_LOGGING, and android.content.Context#MODE_NO_LOCALIZED_COLLATORS | 
| factory: | An optional factory class that is called to instantiate a cursor when query is called. | 
这里就是简单的改一下上面的按钮监听事件如下:
btn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View arg0) {
        SQLiteDatabase db = MainActivity.this.openOrCreateDatabase("intent.db", MODE_WORLD_WRITEABLE, null);
    }
});
我这里还是按照上面的方法,查看一下,如下图: