Android 数据库(2)-----SQLite使用

来源:互联网 发布:商场女装品牌推荐 知乎 编辑:程序博客网 时间:2024/04/24 05:52

SQLite 使用


1、SQLite的SQL语句

SQLite引擎和一般的client/service数据库管理系统不同,没有一个应用程序与之通信的独立进程。SQLite库连接到程序中,成为了程序的一部分,应用程序可以直接使用api访问SQLite的功能可以减少延迟(没有进程间通信)

SQL语句

1.创建数据库    sqlite3 name.db2.创建表    create [temp | temporary] table 表名 (字段1 类型 约束条件 , ... , 字段n 类型);SQLite数据类型有 Null , Integer ,REAL(浮点数) , TEXT(字符) , BLOB  约束条件有  NOT NULL(非空) , UNIUE(唯一),PRIMARY KEY(主键),FOREIGN KEY(外键),CHECH(条件检查),DEFAULT(默认值)create table stuents (    id integer primary key autoincrement,  //主键 自动增长    name vchar(20) check(length(name) > 3), //条件检查名字字符大于3    tel_no vchar(11) not null unique, //不为空 ,电话号唯一    cls_id integer not null, // 班级号不为空);3.插入数据 insert into 表名 (字段列表) values(与字段列表对应的值)4.查询数据select [distinct] columns from table  //distinct 去重    where predictatein  //条件限制    group by columns        having predicate        order by columns    //排序    limit count,offset;  //数量限定select * from book limit 1 offset 2; //得到ID为3的数据select * from book where name like "l%" //找到名字以l开头的5.更新数据update table set update_list where predicate;update book set name='bean' where name='cat'; //名字为cat的数据改为bean6.删除数据delete from table where predicate

Linux下使用sqlite实践

chenqain@chenqain-PC:/home/sqlite/test$ sqlite3 book.db SQLite version 3.21.0 2017-08-03 15:50:10Enter ".help" for usage hints.sqlite> CREATE TABLE book (name text , age integer);sqlite> insert into book values('leo',18);sqlite> insert into book values('cat',18);sqlite> select * from book where name='leo';leo|18sqlite> 

2.SQLite的使用

2.1创建数据库

Android提供了SQLiteOpenHelper,我们可以很方便的使用它来进行数据库的创建和升级

public class SQLDataBaseHelper extends SQLiteOpenHelper {    private static final String TAG = "SQLDataBaseHelper";    //建表语句    public static final String CRATE_BOOK = "create table book(" +            "id integer primary key autoincrement," +            " author text," +            "price real," +            "pages integer," +            "name text)";    //表的名字            public static final String NAME = "Book.db";    //@parm name 数据库名字 @parm version 版本号 @parm factory 设为null    public SQLDataBaseHelper(Context context, String name, String factory, int version) {        super(context, name, factory, version);    }    //当数据库不存在时执行    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(CRATE_BOOK) ;  //创建数据库        Log.e(TAG, "onCreate: " + "create table ok" );    }    //在升级时使用,只有改变版本号就会执行,在里面先drop掉前面的表然后创建新的表    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}
2.2.CURD
SQLDataBaseHelper dbHelper = new SQLDataBaseHelper(this , "Book.db" , null , 1);//使用下面的方法当发现没有Book.db就会执行SQLDataBaseHelper的onCreate()方法创建出数据库SQLiteDatabase db = dbHelper.getWritableDatabase();

Create

     /**     *insert(String table, String nullColumnHack, ContentValues values)     * @parm table 表名     * @parm values 数据的一个包装体     **/    SQLiteDatabase db = dbHelper.getWritableDatabase();    ContentValues values = new ContentValues();    values.put("name","a dog name bean");    values.put("author","leo");    values.put("price",12);    values.put("pages",345);    db.insert("Book",null,values);

Update

    /**     *update(String table, ContentValues values, String whereClause, String[] whereArgs     * @parm table 表名  @value 要更新的值       * @parm whereClause 列名约束条件表达式 @parm whereArgs 具体约束值     */    SQLiteDatabase db = dbHelper.getWritableDatabase();    ContentValues values = new ContentValues();    values.put("price",18);    db.update("Book",values1,"author = ?",new String[]{"leo"});

Retrieve

    SQLiteDatabase db3 = dbHelper.getWritableDatabase();    //查询了所有数据    Cursor cursor = db3.query("Book",null,null,null,null,null,null);

Delete

    SQLiteDatabase db2 = dbHelper.getWritableDatabase();    db2.delete("Book","id = ?",new String[]{"1"});

原创粉丝点击