zoukankan      html  css  js  c++  java
  • 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数据库就完成了

  • 相关阅读:
    缅怀我的第一台平板——Surface RT
    【万里征程——Windows App开发】DatePicker&Timepicker
    【万里征程——Windows App开发】用浮出控件做预览效果
    【万里征程——Windows App开发】应用栏
    【万里征程——Windows App开发】画笔和图像
    【万里征程——Windows App开发】绘制图形
    稻香
    【万里征程——Windows App开发】动画1
    【SICP练习】152 练习4.8
    【SICP练习】151 练习4.7
  • 原文地址:https://www.cnblogs.com/ljl696/p/7658520.html
Copyright © 2011-2022 走看看