1 、
sql语句:
创建表:
create table 表名(字段 类型);
create table person(
_id integer autoincrement primary key,
name varchar(20),
age integer
);
插入记录:
insert into 表名(字段) values(值)
insert into person(name,age) values('tom',20);
修改:
update 表名 set 字段=值 where 条件
update person set age=21 where _id=1;
删除:
delete from 表名 where 条件
delete from person;
delete from person where _id=1;
查询:
select 字段 from 表 where 条件
select * from person
select name,age from person where _id=1
条件:
=,!=,《………………
模糊查询:
like
通配符:
%,代表0个或多个字符
_,代表任意一个字符
排序:asc 升序,desc,降序
order by字段
分组:
group by 字段
having 条件,分组之后在进行过滤
crud:
create
retrieve
update
delete
2、数据库存储
存储位置:data/data/包名/databases/*.db
案例一:
//负责数据库的创建以及版本更新的帮助类
public class DBHelper extends SQLiteOpenHelper {
// 数据库名称
private static String DB_NAME = "person.db";
// 数据库版本,必须》=1
private static int DB_VERSION = 1;
// 创建数据库
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
// TODO Auto-generated constructor stub
}
// 创建表以及初始化工作,只执行一次,在数据库第一次创建的时候执行
// db:数据库对象,该对象包含创建,删除以及操作其他 的sql语句的方法
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "create table person(_id integer primary key autoincrement,name varchar(20),age integer)";
// 执行sq语句,创建表
db.execSQL(sql);
}
// 版本更新,判断newVersion是否大于oldVerson
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
在MainActivity中:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建帮助类对象
DBHelper helper = new DBHelper(this);
// 获得一个可读可写的数据库对象,第一次被调用时,打开数据库,
// 并且调用onCrate,onUpgrade,onOpen方法
// 一旦数据库成功打开,数据库成功创建,可以在任何时候对数据库进行写操作(直到确认不在使用数据库调用close)
// 错误的权限或者磁盘空间满了会报错,问题解决可以继续使用
// 数据库的更新操作会花费很长时间,不建议在主线程中调用该方法
// SQLiteDatabase db = helper.getWritableDatabase();
// 与getWritableDatabase()方法类似,返回数据库对象
// 当磁盘满了,会返回一个只读的数据库对象,问题解决之后,可以进行读写操作
SQLiteDatabase db = helper.getReadableDatabase();
// 插入记录
// String sql = "insert into person(name,age) values('tom',20)";
// db.execSQL(sql);
// map集合,存储键值对,键,表中的字段,值,字段对应的值
ContentValues values = new ContentValues();
values.put("name", "jack");
values.put("age", 20);
// 参数1:表名
// 2:null
// 3:values:字段以及对应的值
// 返回值:插入成功,返回行的id;不成功(报错),返回-1
long result = db.insert("person", null, values);
if (result > 0) {
Toast.makeText(this, "插入成功!" + result, 1).show();
} else {
Toast.makeText(this, "插入失败!", 1).show();
}
}
}