iOS:本地数据库sqlite的介绍

简介:
一、数据库的概念:
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;

 

 }

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!


本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4824272.html,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
462 15
|
4月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
91 8
|
5月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
86 4
|
5月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
115 3
|
5月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
6月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
145 2
|
6月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
347 1
|
5月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
109 0
|
7月前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
334 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
6月前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
278 0

热门文章

最新文章