《SQLite基本使用》PPT课件.pptx_第1页
《SQLite基本使用》PPT课件.pptx_第2页
《SQLite基本使用》PPT课件.pptx_第3页
《SQLite基本使用》PPT课件.pptx_第4页
《SQLite基本使用》PPT课件.pptx_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据持久化 SQLite,Database 数据库,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 简单的理解,电脑上的数据库就类似是电子的文件柜,里面装载着数据。,数据库软件如何存储数据, 添加数据大体流程 用数据库软件创建、打开数据库文件; 添加一张表(table)来用于存储; 给这张表设置字段(column); 添加多行数据(row); 整体流程类似 Microsoft Office Excel 、Apple Numbers 软件。 练习尝试使用 Excel / Numbers 软件来创建一个存储学生基础信息的表格。需要数据有:姓名、性别、年龄;,数据库软件如何存储数据,SQLite 基本操作,SQLite 数据库管理软件本身不提供 GUI,所以只能使用终端。 启动 $ sqlite3 退出(任何一个均可以) sqlite .quit sqlite .q sqlite .exit sqlite .ex,SQLite 基本操作 打开、创建数据库, 创建数据库文件(例如新建一个名为 test.db 的数据库文件) sqlite3 test.db 如果 studentinfo.db 已经存在,则打开该文件; 如果 studentinfo.db 不存在,则创建并打开该文件。 注意 如果只单纯创建数据库文件,而不向文件内写入任何数据的话,文件不会被真是创建出来,因为不写入任何数据它自身就是空的。 一般习惯性将 SQLite 的文件名后缀设置为 .db 或 .sqlite 。,SQLite 基本操作 查询, 如何查询已经创建了哪些表 sqlite .tables sqlite .ta,Structured Query Language,结构化查询语言,SQL - 结构化查询语言, SQL 语句用来做什么? 对数据库内的数据进行增删改查(CRUD) SQL 语句特点 不区分大小写(USER 和 user 是一个东西) 每条语句必须以分号结尾; SQL 语句常用关键字(不可以用关键字命名) select、insert 、update、delete、from、create、where、desc、order、by、group、table、alter、index 等等,SQL 具体划分种类, 数据定义语句 (DDL,Data Definition Language) 包含 create table、drop table 等操作。 数据操作语句(DML,Data Manipulation Language) 包括 insert、update、delete 等操作。 数据查询语句(DQL,Data Query Language) 包括 select、where、order by、group by、having 操作。,DDL 创建表, 创建表 create table 表名 (字段1 字段1类型,字段2 字段2类型 ); create table if not exists 表名 (字段1 字段1类型,字段2 字段2类型 ); SQLite 可以存储如下几种类型的数据 SQLite 本身无类型(即创建成 text 类型,但是也可以写入 real 类型的数据) 但是 SQLite 中“主键”字段必须为 Integer 类型,并且值必须为整数!,DDL 创建表, 创建表 create table t_stu (name text, age integer); create table t_stu (name, age); 但是为了方便后期维护、管理和使用,尽量写上数据类型。 create table if not exists 与 create table 区别 前者多了会自动判断当前表是否存在,如果已经存在了则不会再去创建;后者无论该表是否存在都会去主动创建。 如果要创建的表已经存在,则前者不会包凑,后者会报错。,主键字段,由于表内数据可能会出现数据相同的数据,这样就无法单独获取到该数据,所以为了防止数据重复,一般会有一个唯一并且不为空的字段,这个字段叫做主键。 主键字段方式:id integer primary key autoincrement id:主键的名称,可以随便取; integer:主键的类型,要求为整数类型; primary key:会自动约束此字段的数据唯一并且不为空; autoincrement:让改字段数据若不赋值则自动 +1;,DDL 删除表, 删除表 drop table t_stu; drop table if exists t_stu; 两者区别:后者会先判断是否该表存在,然后再去删除或不操作。前者会直接去删除对应名字的表,如果不存在则报错。,DML 增加数据, 插入全部字段的数据 insert into t_stu values (Jerry, 1, 20, 30); 直插入部分字段数据 insert into t_stu (age) values (10); 注意 字符串类型的数据,要使用双引号或者单引号括起来。但为了更严谨一些,建议使用单引号! 数字类型的直接书写即可。,DML 删除数据, 删除表内所有数据 delete from t_stu; 注意,此操作会将 t_stu 表内所有数据都删掉; 删除表内指定数据 delete from t_stu where name = Tom; 注意数据值 Tom 是区分大小写的;,DML 修改数据, 更新全部字段对应的数据 update t_stu set age = 10; 这样写的话,会把所有的 age 数据全部改成 10! 修改特定的数据 update t_stu set age = 10 where name = Tom;,DQL - 条件语句, where where 字段 = 某数值; where 字段 is 某数值; where 字段 != 某数值; where 字段 is not 某数值; where 字段 某数值; where 字段 某数值; where 字段 = 某数值 and 字段 = 某个值; where 字段 = 某数值 or 字段 = 某个值;,DQL - 查询语句, 查询某个表内所有数据 select * from t_stu; 只查看特定字段的数据 select name, age from t_stu;,iOS App 开发环境中使用SQLite,FMDB,FMDB 是对 SQLite API 轻量级二次封装。所以整体使用思路还是类似 SQLite API 的思路。由于 FMDB 是基于 SQLite API 的,所以使用 FMDB 也需要导入 SQLite 的动态库文件。 FMDB 中除了“查询”以外,任何操作都归属于“更新”行为。,连接数据库文件,1、获取数据库文件 + (instancetype)databaseWithPath:(NSString*)aPath; FMDatabase *fmdb = FMDatabase databaseWithPath:“/Users/Hey/Desktop/student_info.sqlite”; 2、打开数据库文件 - (BOOL)open; if (fmdb open) / 操作数据库 ,路径参数解释,A file system path. The file does not have to exist on disk. If it does not exist, it is created for you. An empty string (“”). An empty database is created at a temporary location. This database is deleted with the FMDatabase connection is closed. NULL. An in-memory database is created. This database will be destroyed with the FMDatabase connection is closed. 如何路径指向的文件不存在,则创建它;若已存在,则获取它; 如果路径参数是”空字符串,则数据库创建在一个临时目录下,当 FMDB 关闭连接的时候,则自动删除该数据库。 如果是 nil 的话,则该数据库文件会创建在系统内存中,系统重启、关机后会被电脑自动清空。,执行其它 SQL 语句,fmdb executeUpdate:“create table t_test (name, text, age integer)“;,执行查询 SQL 语句,FMResultSet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论