zoukankan      html  css  js  c++  java
  • ios应用数据存储方式(Sqlite)

    一. 简介
    Sqlite:主要用于大数据的存储
    Sqlite的使用步骤:
    1.导入头文件
    2.一般把数据库文件放入沙盒,所以需要先设定存放路径
    3.打开数据库--用sqlite3_open方法
    4.创建数据列表
    5.然后就可以对Sqlite 数据库进行  增-删-改-查。不能忘记对执行数据库语句
     
    二、简单介绍常用方法
    sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似
    sqlite3_stmt      *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句
    sqlite3_open(),   打开数据库,没有数据库时创建。
    sqlite3_exec(),   执行非查询的sql语句
    Sqlite3_step(), 在调用sqlite3_prepare后,使用这个函数在记录集中移动。
    Sqlite3_close(), 关闭数据库文件
    还有一系列的函数,用于从记录集字段中获取数据,如
    sqlite3_column_text(), 取text类型的数据。
    sqlite3_column_blob(),取blob类型的数据
    sqlite3_column_int(), 取int类型的数据
          
            三.代码
        //1 . 创建沙盒:一般把数据放入沙盒,所以先设定存放路径
        NSString * _dbPath =[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/mySql.sqlite"];
        NSLog(@"%@",_dbPath);
        
        //2. 打开数据库--sqlite3_open方法,打开数据库文件,第一个参数代表数据库文件的路径,需要注意调用UTF8String方法,
          将NSString转换成c的字符串格式,第二个参数代表数据库对象,该方法如果为0SQLITE_OK),代表数据库打开成功,如果该路径
          没有数据库文件,则需要先创建在打开,否则直接打开
        sqlite3_open([_dbPath UTF8String], &_db);
        
        //3 . 创建数据列表 --  create table if not exists(如果表不存在) Student(表名,自己定义)
        (该括好放要保存的信息:字段名 字段格式,多个字段之间用逗号隔开)
       NSString * s = @"create table if not exists Student(name Text,age Integer)";//如果数据库中没有Student表,
            则创建该表,包含 字符串形式的name和整型的age
     
        //4. 执行数据库语句-- --第一个参数代表执行的数据库对象,也就是打开的数据库,第二个参数代表执行语句,
            后面三个直接给NULL即可
        sqlite3_exec(_db, [s UTF8String],NULL,NULL,NULL);
        
        // 5.数据库增加数据
        NSString * insert = @"insert into Student(name,age) values ('我是一把神经刀',23)";
        sqlite3_exec(_db, [insert UTF8String] ,NULL,NULL,NULL);
       
        NSString * insert1 = @"insert into Student (name,age) values ('姑娘你好',22)" ;
        sqlite3_exec(_db ,[insert1 UTF8String], NULL, NULL,NULL);
        
        //6 .删除数据 -- sql删除语句: delete(关键字) from Student(表名) where(条件关键字) name(字段名) = ‘姑娘
           (要删除数据的条件,如果是TEXT,用单引号引起来)
        NSString * delsql = @"delete from Student where name = '我是一把神经刀'";
        sqlite3_exec(_db, [delsql UTF8String], NULL, NULL, NULL);
       
        //7 .--修改数据(更新)---sql更新语句:update(关键字) Student(表名) set(关键字,赋值)
        age(字段名) = 25(要更改的值,如果要更新多个字段,则用逗号隔开) where(条件关键字) rowid(字段名) = 6(条件)
        NSString * updatesql = @"update Student set age = 100,name = '张小花' where rowid = 8";
        sqlite3_exec(_db, [updatesql UTF8String], NULL, NULL, NULL);

         

           

            2.SQLite  (转载大神的总结的SQLite)

    (1)什么是SQLite?

    答:SQLite是一款轻型的嵌入式数据库,安卓和ios开发使用的都是SQLite数据库

    (2)特点(优点)

      答:1)它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了

      2)它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快

    (3)什么是数据库

    答:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

    (4)数据库的分类

    答:可以分为2大种类

    关系型数据库(主流)和对象型数据库(直接把内存中的对象塞入到数据库,对比关系型数据库而言性能不能很好,效率不高)

    (5)常用关系型数据库有哪些?

    答:PC端:Oracle、MySQL、SQL Server、Access、DB2、Sybase

      嵌入式移动客户端:SQLite

    (6)数据库是如何存储数据的?

    答:数据库的存储结构和excel很像,以表(table)为单位 。表由多个字段(列、属性、column)组成,表里面的每一行数据称为记录

    (7)数据库存储数据的步骤?

    1)新建一张表(table)

    2)添加多个字段(column,列,属性)

    3)添加多行记录(row,record,每行存放多个字段对应的值)

  • 相关阅读:
    Fruit Ninja(随机数rand())
    C. A Mist of Florescence ----- Codeforces Round #487 (Div. 2)
    给力的移动 FZU
    FZU 2254 英语考试 (最小生成树)
    6486: An Ordinary Game(规律)
    HDU 1114: Piggy-Bank
    HDU 5916: Harmonic Value Description
    1072 威佐夫游戏
    1069 Nim游戏
    1066 Bash游戏
  • 原文地址:https://www.cnblogs.com/yibadao/p/5022627.html
Copyright © 2011-2022 走看看