sqlite的使用

1.sqlite 简介

  • SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

  • 轻量化

  • 无需安装 ,sqlite核心引擎不需依赖第三方,使用也不需要安装

  • 单一文件 表、视图等都包含在同一个文件里

  • 跨平台 可移植性高

  • 开源 免费使用

2.sqlite数据类型

数据类型 描述
NULL 空值
INTEGER 带符号的整型,具体取决有存入数字的范围大小。
REAL 浮点数字,存储为8-byte IEEE浮点数。
TEXT 字符串文本。
BLOB 二进制对象。

3.sqlite常用语法

语法 | 名称|
-- | - | -
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)|修改记录
execSQL(String sql)|执行一条SQL语句
close()|关闭数据库

4.具体语法实现

  • 创建一个数据表
CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);
  • 创建一个索引
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);
  • 插入一条记录
INSERT INTO tablename VALUES(?,?,?)
SELECT * FROM tablename;
  • 更改一条记录
UPDATE tablename SET column1='newname';
SELECT * FROM Teachers;
  • 根据字段删除一条记录
DELETE FROM tablename WHERE id='1';
SELECT * FROM tablename;

数据的增删改查来源

5.安卓代码的实现

  • 定义数据表字段
public static final class Cols {
            public static final String UUID = "uuid";
            public static final String TITLE = "title";
            public static final String DATE = "date";
            public static final String SOLVED = "solved";
            public static final String SUSPECT = "suspect";
        }
  • 创建数据表
public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + CrimeTable.NAME + "(" +
                " _id integer primary key autoincrement, " +
                CrimeTable.Cols.UUID + ", " +
                CrimeTable.Cols.TITLE + ", " +
                CrimeTable.Cols.DATE + ", " +
                CrimeTable.Cols.SOLVED + ", "+
                CrimeTable.Cols.SUSPECT  +
                ")"
        );
    }
  • 写入数据库
public static ContentValues getContentValues(Crime crime){
        ContentValues values=new ContentValues();
        values.put(CrimeDbSchema.CrimeTable.Cols.UUID,crime.getId().toString());
        values.put(CrimeDbSchema.CrimeTable.Cols.TITLE,crime.getTitle());
        values.put(CrimeDbSchema.CrimeTable.Cols.DATE,crime.getDate().getTime());
        values.put(CrimeDbSchema.CrimeTable.Cols.SOLVED,crime.isSolved()?1:0);
        values.put(CrimeDbSchema.CrimeTable.Cols.SUSPECT,crime.getSuspect());
        return values;
    }

-插入数据

        mDatabase.insert(CrimeDbSchema.CrimeTable.NAME,null,values);

-更新数据

        mDatabase.update(CrimeDbSchema.CrimeTable.NAME,values,
                CrimeDbSchema.CrimeTable.Cols.UUID + " = ?",new String[]{uuidString});

6.使用AndroidStudio 自带工具查看创建的数据表

  • 在FileExplorer视图下 找到data文件夹 并打开 打不开data文件夹解决办法

  • 然后找到对应的安卓项目文件名

  • 找到databases文件夹 数据库在下面

  • 选中我们创建的数据库,然后在右上角把他导出到本地

  • 我们在可视化工具里可以看到创建的数据库


  • 到这里 sqlite数据库就完成了

posted on 2017-10-12 22:21  少年梦游记  阅读(131)  评论(0编辑  收藏  举报

导航