SQL语句增删改查
1.增加信息:insert into 表名(字段列表)values(值列表)
2.删除信息:delete from 表名 where 条件子句
3.修改信息:update 表名 set 字段名 = 值 where 条件子句
4.查询星系:select * from 表名
SQL表关系
1.一对一
2.一对多
3.多对多
SQLiteDatabase操作SQLite数据库
1.打开或创建数据库:openOrCreateDatabase(Stringpath,SQLiteDatabase.CursorFactory factory)
2.添加一条记录:insert(String table,String nullColumnHack,ContentValues values)
3.删除一条记录:delect(String table,String whereClause,String[] whereArgs)
4.查询一条记录:query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)
5.修改记录:update(String table,ContentValues values,String whereClause,String[] whereArgs)
6.执行一条SQL语句:execSQL(String sql)
7.关闭数据库:close()
SQLiteOpenHelper的实现
一、抽象类:SQLiteOpenHelper
二、抽象方法:
onCreate(建表,存放在/data/data/packagename/databases/)
onUpgrade
三、实例方法,可以创建或者打开一个数据库,返回可对数据库进行读写操作的对象
1.getReadableDatabase:创建或打开一个仅仅可读的(read-only)数据库
2.getWritableDatabase:创建或打开一个可读可写的数据库
四、构造方法:一般用参数较少的那个
四个参数:1.context、2.库名、3.null(自定义cursor一般为null)、4.版本号
五、数据类型
integer整型、real浮点型、text文本类型、blob二进制类型
六、操作方法
查询:db.rawQuery(),其他:db.execSQL()
七、SQLite支持事务
事务的特性可以保证让一系列的操作要么全部完成,要么一个都不完成
db.beginTransaction();//开启事务
db.setTransactionSuccessful();//事务执行成功
db.endTransaction();//结束事务
八、升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (newVersion){
//没有break为了跨版本升级成功
case 1:
db.execSQL("");
case 2:
db.execSQL("");
default:
}
}
Cursor常用方法
getCount():获得总的数据条数
isFirst():判断是否为第一条数据
isLast():判断是否为最后一条数据
moveToFirst():移动到第一条数据
moveToLast():移动到最后一条数据
move(int offset):移动到指定记录
moveToNext():移动到下一条记录
moveToPrevious():移动到上一条记录
getColumnIndexOrThrow(String columnName):根据列名获得列索引
getInt(int columnIndex):获得指定列索引的int类型值
getString(int columnIndex):获得指定列索引的String类型值