一、数据库的概念:
1.、什么是数据库
  SQL Server 2010、Oracle、MySQL
  关系数据库
  NoSQL数据库-非关系型数据库
 
  数据库主要由表组成
  表由字段组成
  数据 就是表中的记录
 
  表间的关系:一对一、一对多(订单:订单的头和订单明细)
  外键 
  主键:建立索引,不能重复
 
2、SQL(结构化查询语言)语句
  A、数据操作的SQL语句:
     2.1 查询 
       select(字段名) from(表名); 
       where 子句:定义查询条件  
       排序:order by 字段名 (asc,desc) 
       分组:group by 字段名    
    2.2 删除 
      delete from(表名)  where name = @“admin”;   
    2.3 插入
          insert into(表名)(字段列表) values(字段列表对应的字段值);
    2.4 更新
             update(表名) set 字段=值 where 子句;
 
  B、对数据库维护的SQL语句:
    创建表:
    create table (表名) (定义字段:字段名 字段类型);
 
           sqlite3 数据库名    //在终端下进入某一个本地的数据库(如果不存在就自动创建一个)
        .schema 表名  //在终端下可以快速查看某一个表中的所有字段
        .table        //在终端下可以查看创建的所有表   
    .exit/.quit         //在终端下退出某一个数据库 
 
 二、SQLite的基本使用
 
SQLite支持的常见数据类型如下所示。
–INTEGER 有符号的整数类型
–REAL 浮点类型
–TEXT 字符串类型,采用UTF-8和UTF-16字符编码
–BLOB 二进制大对象类型,能够存放任何二进制数据
 
(C语言中)使用步骤:
1.新建项目时,先导入系统框架(C语言). (libsqlite3)
 
2.头文件#import<sqlite3.h>
 
3. sqlite3_open(fileName.UTF8String, &_db); 打开或者创建一个数据

*_db自己定义一个sqlite3的成员变量.进行增删改查时要用

 
4.sqlite3_exec(_db, sql, NULL, NULL,&error);  //不带结果集的语句,只是对表做操作,不会返回出结果
*该函数可进行insert,delete,update操作.
 
5.查询操作select. //带结果集的查询语句,会返回出结果,从表中查询到的数据都会放到stmt结构体中
*sqlite3_prepare_v2(_db, sql, -1, &stmt, NULL);做查询前准备,检测SQL语句是否正确.
*sqlite3_step(stmt) 提取查询到的数据,一次提取一条.//通过循环可以取出所有数据
*sqlite3_column_text(stmt, 0)取出第0列的数据.
 
6.关闭数据库 sqlite3_close(sqlite3 *);
 
————————————————————————————————————————————————————
————————————————————————————————————————————————————
执行带参数的SQL语句

NSString *sqlStr = @"INSERT OR REPLACE INTO note (cdate,content) VALUES (?,?)";

sqlite3_stmt *statement;
//预处理过程,产生结果集
if (sqlite3_prepare_v2(db, [sqlStr UTF8String], -1, &statement,

NULL) == SQLITE_OK)

{

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  NSString *nsdate = [dateFormatter stringFromDate:model.date];

//绑定参数开始
  sqlite3_bind_text(statement, 1, [nsdate UTF8String], -1, NULL);  sqlite3_bind_text(statement, 2, [model.content UTF8String],

-1,    NULL);

//执行插入
if (sqlite3_step(statement) != SQLITE_DONE)

{

NSAssert(NO, @"插入数据失败。"); }

}

}

//清理结果集,防止内存泄露

sqlite3_finalize(statement);

单例模式:(这里主要用来保证初始化的数据库是唯一的,只要创建了一次,那么它就不会被再创建)

+ (NoteDAO*)sharedManager

{

static dispatch_once_t once;

dispatch_once(&once, ^{

sharedManager = [[self alloc] init];

[sharedManager   createEditableCopyOfDatabaseIfNeeded]; }

);

return sharedManager;

}

iOS:本地数据库sqlite的介绍的更多相关文章

  1. [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)

    以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...

  2. iOS基础 - 数据库-SQLite

    一.iOS应用数据存取的常用方式 XML属性列表 —— PList NSKeyedArchiver 归档 Preference(偏好设置) SQLite3 Core Data(以面向对象的方式操作数据 ...

  3. QT 创建本地数据库(SQLite数据库)存储数据

    注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include &l ...

  4. 轻量级本地数据库SQLite在WinRT的使用

    开发环境:Windows 8.1 开发工具:Visual Studio Express 2013 for Windows SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开 ...

  5. iOS开发数据库SQLite的使用

    iOS系统自带Core Data来进行持久化处理,而且Core Data可以使用图形化界面来创建对象,但是Core Data不是关系型数据库,对于Core Data来说比较擅长管理在设备上创建的数据持 ...

  6. Unity连接本地数据库sqlite

    首先要创建一个sqlite的数据库,记住文件地址,拷贝到Assets目录下,创建的数据库文件后缀为.sqlite.具体创建方法百度sqlite 然后百度Mono.Data.Sqlite,这是一个dll ...

  7. android 本地数据库sqlite的封装

    单机android   sqlite数据库的实现,这个数据库可与程序一起生成在安装包中 一.下载sqlite3.exe文件 二.运行 cmd 转到sqlite3.exe 所在目录  运行 sqlite ...

  8. iphone/iOS 访问本地数据库sqlite3

    Phone也支持访问本地数据库Sqlite 3.这里简单的介绍一下iPhone上Sqlite 3的使用方法. 首先需要在项目中引用Sqlite 3的开发包,下面是在iPhone SDK 3.0下的目录 ...

  9. HTML5本地数据库(SQLite)示例

    本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite ...

随机推荐

  1. CentOS7.5安装Mysql5.7.22

    一 下载 下载地址:https://www.mysql.com/downloads/ 1 点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面 2 找到Co ...

  2. python 函数操作

    四.函数 定义: #!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qi ...

  3. 【51nod】1227 平均最小公倍数

    题解 这个故事告诉们数论函数不要往分式上跑,你推不出来 好久没推式子了这么明显的转化我都忘了= = 首先\(A(n) = \frac{1}{n} \sum_{i = 1}^{n} \frac{i * ...

  4. Mybatis处理列名—字段名映射— 驼峰式命名映射

    规范命名,数据库字段名使用 : 下划线命名(user_id) 类属性使用 : 驼峰命名(userId) 配置mybatis 时,全局设置: <settings> <!-- 开启驼峰, ...

  5. dubbo 搭建开发环境

    本文是基于maven的,预先使用,先装maven. dubbo是一个分布式服务框架,提供一个SOA的解决方案.简单的说,dubbo就像在生产者和消费者中间架起了一座桥梁,使之能透明交互. 本文旨在搭建 ...

  6. Java常用工具类之自定义访问对象

    package com.wazn.learn.util; import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象 ...

  7. Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机

    Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现的 ...

  8. 【BZOJ 4403】 4403: 序列统计 (卢卡斯定理)

    4403: 序列统计 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 653  Solved: 320 Description 给定三个正整数N.L和R, ...

  9. Python基础篇:从0开始学python

    目录 数据类型 基本数据类型 整形Int的内置方法 字符串Str的内置方法 列表(待补充) 流程控制 分支结构if...else... for循环 循环控制 while循环 函数 函数的名称与格式 参 ...

  10. herbinate 数据库乱码

    改jdbc或者hibernate编码:   jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&characterEncoding=utf-8    ...