关于Sqlite的介绍和使用

关于Sqlite的介绍和使用:

    

       一、介绍:

              1、Sqlite数据库是Android内置的轻量级的数据库

              2、Sqlite数据库是关系型数据库,没有用户概念,可以理解成一个可操作的文件

              3、Sqlite数据库占空间小,操作简单

      二、对Sqlite数据库的增、删、改、查操作:

              有两种方式:api和自己写sql语句。对于api方式,这里不讲了,可以自己查看api。

使用api,也可以方便地满足一些需求。比如我们使用sqlitedatabase的replace方法,来满足这种需求---插入时,如果没有这条记录,则插入,如果有这条记录,则更新;更新时,如果有这条记录,则更新,如果没有这条记录,则插入。

当前前提是,对应的数据表必须是有主键(PRIMARY KEY)或者唯一属性(UNIQUE)。 

              使用sql语句:

             

1、创建表

create table 表名(字段 字段数据类型,字段 字段数据类型...)

create table student(_id integer primary key autoincrement,name varchar(10),age integer)

2、删除表

drop table 表名

drop table student

3、插入数据(经常使用)

insert into 表名[(字段,字段...)] values(字段值,字段值....)

insert into student(_id,name) values(1,'zs')

insert into student values(2,'ls',20)

注意:

  1. 如果插入数据时未指定插入的字段  这时values后的数据值应该从表的第一个字段开始按照具体的类型依次插入

  2. 插入数据时要按照条进行插入 不能插入部分数据

    3. 如果存在自动增长的列需要明确指定插入的字段

4、删除数据

delete from 表名 where xx

delete from student where _id=1

5、修改数据

update 表名 set 字段=字段的新值,字段=字段的新值  where xxx

update student set name='we' where _id=1

6、查询数据(经常使用)

    select 字段名 from 表名 where xxx group by 分组字段 having 筛选 order by 排序字段 desc(asc)

    select 字段名 from 表名 where xxx order by 排序字段 desc(asc)

    select * from student where _id=2

    select * from student where _id<>2  <>不等于

    select * from student where _id>2 and name='we' and 同时符合两个条件

    select * from student where _id>2 or name='we'   or 符合其中一个条件

    select * from student where name like '_a'  _ 表示单个字符   %表示任意多个字符

    select * from student where name like '%a%'

    select * from student where name like 'a%'

    select * from student where name is null  判断某个字段的值是否是null

    select _id as id,name as 姓名,age as 年龄  from student

    select * from student where _id between 1 and 3  1-3之间

    select * from student where _id in(1,3) in(在括号范围内) id 1或者3

    select * from student limit 0,5  0表示起始的行数 5表示每页5条

7、聚合函数  sum() avg() max() min() count()

   select sum(age) from student

   select count(*) from student

   select max(age) from student

              三、数据库事务

                    1、保证数据的一致性

                    2、提高效率

                    3、当进行批量操作时(比如批量添加、批量删除)使用事务,提高效率

                    4、默认执行sql语句的操作,底层都会开启事务进行操作。如果数据条目较大,不断地开启事务、提交事务会造成效率下降,所以应该显示地声明事务

如下:

               SQLiteDatabase db=helper.getWritableDatabase();

              //1.显式打开数据库事务
              db.beginTransaction();

             for(int i=1;i<=300;i++){
                  String sql="insert into "+Dbutils.TABLE_NAME+" values("+i+",'zhangsan"+i+"',30)";
                  DbManger.execDataSql(db, sql);
             }

             //2.表示事务提交成功

             db.setTransactionSuccessful();

             //3.结束事务

             db.endTransaction();

             DbManger.closedDb(db);

             四、数据库文件的存储位置:

                    data/data/应用程序包名/databases/xx.db

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值