sqlite的基本操作(一)

iOS开发中常用的数据存储方式主要有以下几种:

1,XML属性列表;2,Preference;3,归档;4,sqlite3;5,CoreData.

因为近期刚换公司,公司项目的数据存储主要由sqlite完成,项目主管也提前打了招呼,因为项目中的数据存储也会比较复杂,需要复习sqlite的知识.所以本文主要复习sqlite的基本操作.

一:数据库管理

test.db //创建数据库,创建表的时候才会真的创建数据库

.schema //获得数据库的Schema信息

.output file.sql ; .dump; .output stdout //导出数据

.read file.sql //用来导入.dump命令创建的文件

test2.db < file.sql //备份数据库

create table foods (id integer primary key,type_id integer,name test) //创建表

alter table foods add column email text not null default ” //修改表,添加列

二:数据库查询

过滤:

       select * from foods where name = ‘egg’ and type_id = 9; //支持逻辑操作符 AND,OR,NOT,IN

       select * from foods where name like ‘%egg%’; // %是贪婪匹配符

限定和排序

       select * from foods order by id limit 1 offset 1 //limit限制数量,offset 指定偏移的记录数

       select * from foods where name like ‘B%’ order by type_id desc, name limit 10; //desc(降序),asc(默认的升序)

函数和聚合

     函数包括upper(),lower(),length(),abs()等数学函数,也包括聚合函数:sum(),avg(),count(),min(),max().

     select count(*) from foods where type_id=1; //计算type_id = 1 的行的数量

分组(grouping)

     select type_id from foods group by type_id;

去掉重复

    select distinct type_id from foods;

多表连接,分为内连接,交叉连接,外连接(外连接又分为左连接,右连接,全外连接),以及自然连接.

   select foods.name, food_types.name from foods, food_types where        foods.type_id=food_types.id ;

    Select * From foods inner join food_types on foods.type_id = food_types.id; //内连接

  select * from foods, food_types; //交叉连接

   select *from foods left outer join foods_episodes on  foods.id=foods_episodes.food_id; //左外连接

子查询,子查询是指select语句中又嵌套select语句

select count(*) from foods where type_id in (select id from food_types where name=’Bakery’ or name=’Cereal’);

    原文作者:我系哆啦
    原文地址: https://www.jianshu.com/p/489dc11383b5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞