zoukankan      html  css  js  c++  java
  • Sqlite/ FMDB

    Sqlite

    1. Sqlite数据库

       > 数据库? 按数据结构来组织,存储和管理数据的仓库。

       > 关系型数据库:使用二维表及其之间的联系组织成一个数据组织。

       关系:可以理解为一张二维表,每个关系都有个关系名,通常说的表名。

       元组:可以理解为二维表中的一行,在数据库中成为记录

       属性: 二维表中的一列,成为字段

       关键字: 一组可以唯一标识元组(记录)的属性,数据库中成为主键,由一个或多个列组成。

       关系模式: 对关系(表)的描述,格式:表名(字段1,字段2,…),即表结构

       > Sqlite 数据库是轻量级的关系型数据库,iOS 和Android都是用的Sqlite.

          (其他类型的数据库:MySQL, SQLServer,Oracle…)

       > Sqlite 表中支持的数据类型:

          NULL-空值

          INTEGER- 有符号整数类型

          REAL - 浮点数类型

          TEXT - 字符串

          BLOB - 二进制数据

    2. SQL :数据库语言,结构化查询语言(Structured Query Language),用于操作数据库。

        > 常用查询语句:

        1).建表语句

        create table if not exists TableName(Field1 DataType, Field2 Data, ...)

        2).插入语句,增

        insert into TableName(Field1, Field2, ...) values(value1, value2, ...)

        3).更新数据,改

        update TableName set Field1=Value1, Field2=Value2  where Field1  = Value1

        4).删除数据,删

        delete from TableName

        5).查询语句,查

        select Field from TableName // 查询指定字段数据

        select * from TableName limit 10 // 查询所有数据并且取最后10条数据

        select * from TableName order by Field asc // 查询结果根据哪个字段来排排序(asc升序/desc降序)

        select count (*) from TableName // 查询数据的数量

        6).条件判断

          select * from TableName where Field=Value   // 等于

      where Field>Value   // 大于

      where Field<Value   // 小于

      where Field<>Value // 不等于

    where Field in ('Value1', 'Value2', 'Value3') // 在集合中的⼀个

    where Field between Value1 and Value2  // 在两个值之间

    3. iOS中直接操作SQLite的接口是C语言的,在开发中可自己封装,但需要调用一些c函数,一般情况下使用封装好的第三方库操作管理数据库。

        使用SQLite,需要导入libsqlite3

        iOS中用到的四种方式: 属性列表,对象归档, sqlite数据库存储,基于sqlite的封装的系统框架CoreData。

    FMDB

    1. 官方地址:https://github.com/ccgus/fmdb

       封装了Sqlite的数据库操作,需要导入 libsqlite3

       > 使用FMDB

          -将该库工程目录下 fmdb 目录拖曳添加到自己的工程下;

          -导入libsqlite3

       > 封装 FMDB的操作(实际开发时一般要封装下)

          // 在封装类里引入

          #import "FMDB.h"

          // 创建数据库(已存在则不创建)

          [FMDatabase databaseWithPath:]  // 注意数据库创建的文件是要保存在应用程序沙盒目录下

          // 打开/关闭数据库

          [db open] / [db close]  // 创建完毕后要执行open方法,否则数据库无法创建

          // 执行sql 语句

          [db executeUpdate:]  // 非查询语句

          [db executeQuery:]    // 查询语句

          

          *多语句执行

          [db executeStatements:]

          // 查询结果集

          FMResultSet *rs = [_dataBase executeQuery:];

          // 循环读取结果集中的记录

          [rs next]

          // 读取记录中的字段值

          intForColumn:

    •               longForColumn:
    •               longLongIntForColumn:
    •               boolForColumn:
    •               doubleForColumn:
    •               stringForColumn:     // 最常用,将读取的数据转换为字符串
  • 相关阅读:
    linux cd命令的重要用法:cd -,cd ~
    linux ls命令的重要用法:按照文件大小排序和按照时间排序
    Linux中默认的shell如何切换为其他类型的shell
    centos 7网卡配置文件详解(ifcfg-ens33)
    linux分区规划
    final关键字
    分布式事务
    读写分离-读仍走主库的问题
    Dockerfile指令
    Docker命令总结【第一本docker书】
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/5712955.html
Copyright © 2011-2022 走看看