iOS 数据库存储 sqlite

OC系统用的是sqlite数据库,下面来总结一些常用的sqlite数据库语言

新建表

    CREATE TABLE IF NOT EXISTS 'table_name' ('timeStamp' text,'money' text,'remark' text ,'createTime' date,primary key(timeStamp))

    //IF NOT EXISTS,添加这一句表示如果不存在该表才创建,可以防止重复创建

    //primary key(timeStamp),添加每条记录的唯一参数,可以添加多个参数名,进行组合匹配,类似于系统自动生成的id的作用。

对已存在的表插入一个参数

    ALTER TABLE table_name ADD createTime date

    //createTime date就是要插入参数的参数名和类型

对已存在的表删除一个参数

    ALTER TABLE table_name DROP COLUMN createTime

    //createTime date就是要插入参数的参数名和类型

增加插入一条数据

    INSERT INTO table_name(timeStamp,remark)values(1657908293,333,'张三')

修改一条数据

    UPDATE table_name SET remark = '王五' WHERE timeStamp = 1657908293

如果我们不清楚记录是否已添加,可以直接对已经存在的记录进行更新或添加

    INSERT OR REPLACE INTO table_name VALUES(1657908293,'张三',2021-01-01)

    //这种添加方法需要所有的value和创建表的value进行一一对应,并且会根据设置的primary key进行更新或新增,比如timeStamp为primary key,那么如果表里已经有一条timeStamp=1657908293的数据时,在插入一条timeStamp=1657908293的数据,则会更新旧数据,否则则新增一条timeStamp=1657908293的数据。

删除一条数据

    DELETE FROM table_nameWHERE timeStamp = 1657908293

删除一张表

    DROP TABLE table_name

查询表

    SELECT * FROM table_name

查询表的某一列数据

    SELECT timeStamp FROM table_name

条件查询

    SELECT * FROM table_name WHERE timeStamp = 1657908293

查询结果排序

    SELECT * FROM table_name ORDER BY timeStamp ASC //升序

    SELECT * FROM table_name ORDER BY timeStamp DESC //降序

统计某一列参数的总和

    SELECT SUM(money) totalMoney FROM table_name

    //totalMoney为统计出结果的参数名

分别统计出不同条件的总和

    SELECT SUM(CASE WHEN money <0 THEN money ELSE 0 END) totalPay,SUM(CASE WHEN money >=0 THEN money ELSE 0 END) totalIncome FROM table_name

    //totalPay为所有money值大于0的统计,totalIncome为所有money值小于0的统计

    //CASE WHEN money <0 THEN money ELSE 0 END,表示只有当money <0的时候数据才会被统计,否则以0记

月统计

    SELECT SUM(CASE WHEN %@ THEN money ELSE 0 END) totalPay,SUM(CASE WHEN %@ THEN money ELSE 0 END) totalIncome ,strftime('%Y年-%m月',createTime) monthDay FROM table_name GROUP BY strftime('%Y-%m',createTime)

    //totalPay为每月money值大于0的统计,totalIncome为每月money值小于0的统计,monthDay为月份,日统计,年统计可以用类似的方式

    //strftime('%Y年-%m月',createTime),表示对createTime这个参数内容进行格式强转,那么相同月份的时间戳强转后他们的值会相同,也就能把相同月份的数据统计到一起

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 13,282评论 0 44
  • 1.存储过程简述 存储过程:它是大型数据库中常用的、一组为了完成特定功能的SQL语句集。 存储过程在Oracl中是...
    流泪海棠阅读 5,017评论 0 1
  • 1、数据库介绍篇 1.1什么是数据库 数据库:保存数据的仓库。它体现我们电脑中,就是一个文件系统。然后把数据都保存...
    投石机阅读 4,095评论 0 0
  • 常用语句: sql/plus sqlplus 'amdocs/Amdocs.Jx.China.110#@ysdb1...
    好好学习的蜗牛阅读 8,329评论 0 0
  • 1. MySQL 索引使用有哪些注意事项呢? 可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,...
    寂水流深阅读 6,353评论 0 1