Sqlite

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();

  }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值