SQLite语法:


Java 的数据类型short/intet/long/float/doiuble/byte[],分别对应SQlite中的数据类型为short/integer/long/float/double/blob.


SQLite支持常用的SQL 如下:

创建表:create table 表名(_id 类型 约束,……)

Create table if not xists user( _id integer primary key autoincrement, name text,level interger)

查询数据:select * from 表名 where 条件字句 group by 分组字句 having 分组过滤 order by 排序字句。

Select * from user
Select * from user where user_id=1002"
Select user_name frorm user group by age having count(*)>1

分页查询:使用limit 关键字,下面的SQL 表示获取8条记录,跳过前面2条记录。

Select * from user limit 8 offset 2 或者 select * from Account limit 2,8

插入数据:insert into 表名(字段列表) values(值列表)

Insert into user(name,age ) values('android',3)

更新数据:update 表名 set 字段名=where条件语句

Update user set user_name='android2' where user_id='1002'

删除数据:delete from 表名 where 条件语句

Delete from user where user_id='1002'

SQlite 数据操作:

Android SQlite对数据库的增删改查主要是通过SQliteDataBase类完成。下面看一个具体的例子:

首先建一个MySQLite的类,继承SQLiteOpenHelper

public class MySQLite extends SQLiteOpenHelper {
                     
    public MySQLite(Context context) {
        super(context, "hs.db", null, 3);
    }
    /**
     * 1.建库建表
     * 2.曾删改查
     * 3.更新的时候注意版本
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE user( _id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL)");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS user");// 如果数据库存在了这个表,那么删除这个表,重新创建
        db.execSQL("CREATE TABLE user( _id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT NOT NULL )");
    }
}


MainActivity类:


public class MainActivity extends ListActivity {
    private MySQLite sqLite;
    private SQLiteDatabase dbWriter;
    private SQLiteDatabase dbReader;
    private SimpleCursorAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sqLite = new MySQLite(this);
        dbWriter = sqLite.getWritableDatabase();// 实现数据库的可写权限
        dbReader = sqLite.getReadableDatabase();// 实现数据库的可读权限
        updateDB();
        addDB();
        adapter = new SimpleCursorAdapter(this, R.layout.cell, null,
                new String[] { "title", "content" }, new int[] { R.id.tv1,
                        R.id.tv2 });
        setListAdapter(adapter);
        selectDB();
               
               
    }
    public void addDB() {
        // contentvaluse
        ContentValues cv = new ContentValues();//必须通过此方法进行添加数据
        cv.put("title", "Helloword111");
        cv.put("content", "欢迎大家111");
        dbWriter.insert("user", null, cv);// 插入到数据库
    }
    public void updateDB() {
        ContentValues cv = new ContentValues();
        cv.put("title", "Hello");
        cv.put("content", "大家好");
        dbWriter.update("user", cv, "_id=3", null);
    }
    public void deleteDB() {
        dbWriter.delete("user", "_id=4", null);
    }
    public void selectDB() {
        // Cursor
        Cursor cursor = dbReader.query("user", null, null, null, null, null,
                null);             
        // 重新适配
        adapter.changeCursor(cursor);
        while (cursor.moveToNext()) {
            System.out
                    .println(cursor.getString(cursor.getColumnIndex("title")));
            System.out.println(cursor.getString(cursor
                    .getColumnIndex("content")));
        }
    }
}


运行结果:

Android -- SQLite_SQLite