SQLite基本使用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
简单的理解,电脑上的数据库就类似是电子的文件柜,里面装载着数据。
数据库软件如何存储数据
• ● 添加数据大体流程 1. 用数据库软件创建、打开数据库文件; 2. 添加一张表(table)来用于存储; 3. 给这张表设置字段(column); 4. 添加多行数据(row); • 整体流程类似 Microsoft Office Excel 、Apple Numbers 软 件。 • 练习尝试使用 Excel / Numbers 软件来创建一个存储学 生基础信息的表格。需要数据有:姓名、性别、年龄;
• • • • • • • • • ● where where 字段 = 某数值; where 字段 is 某数值; where 字段 != 某数值; where 字段 is not 某数值; where 字段 > 某数值; where 字段 < 某数值; where 字段 = 某数值 and 字段 = 某个值; where 字段 = 某数值 or 字段 = 某个值;
• ● create table if not exists 与 create table 区别 • 前者多了会自动判断当前表是否存在,如果已经存在了则不 会再去创建;后者无论该表是否存在都会去主动创建。 • 如果要创建的表已经存在,则前者不会包凑,后者会报错。
主键字段
• 由于表内数据可能会出现数据相同的数据,这样就无法单 独获取到该数据,所以为了防止数据重复,一般会有一个 唯一并且不为空的字段,这个字段叫做『主键』。 主键字段方式:id integer primary key autoincrement id:主键的名称,可以随便取; integer:主键的类型,要求为整数类型; primary key:会自动约束此字段的数据唯一并且不为空 ; • autoincrement:让改字段数据若不赋值则自动 +1; • • • •
DML – 删除数据
• ● 删除表内所有数据 • delete from t_stu; • ⚠⚠ 注意,此操作会将 t_stu 表内所有数据都删掉 ;
• ● 删除表内指定数据 • delete from t_stu where name = ‘Tom’; • ⚠⚠ 注意数据值 Tom 是区分大小写的;
• ● SQLite 本身无类型(即创建成 text 类型,但是也可以写入 real 类型 的数据) 但是 SQLite 中“主键”字段必须为 Integer 类型,并且值必须为整数 !!
DDL – 创建表
• • • • ● 创建表 create table t_stu (name text, age integer); create table t_stu (name, age); 但是为了方便后期维护、管理和使用,尽量写上数据类型。
• • •
ຫໍສະໝຸດ Baidu
•
• }
// .. 操作数据库
路径参数解释
• • • 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.
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); • ⚠⚠ 注意 • 字符串类型的数据,要使用双引号或者单引号括起来。 但为了更严谨一些,建议使用单引号! • 数字类型的直接书写即可。
数据持久化 – SQLITE
Database 数据库
• 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六 十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再 仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种 类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都 在各个方面得到了广泛的应用。
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 中除了“查询”以外,任何操作都归属于“更 新”行为。
DML – 修改数据
• ● 更新全部字段对应的数据 • update t_stu set age = 10; • ⚠⚠ 这样写的话,会把所有的 age 数据全部改成 10!
• ● 修改特定的数据 • update t_stu set age = 10 where name = ‘Tom’;
DQL - 条件语句
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 等等
• 如何路径指向的文件不存在,则创建它;若已存在, 则获取它; • 如果路径参数是@””空字符串,则数据库创建在一个临 时目录下,当 FMDB 关闭连接的时候,则自动删除该 数据库。 • 如果是 nil 的话,则该数据库文件会创建在系统内存中 ,系统重启、关机后会被电脑自动清空。
执行其它 SQL 语句
数据库软件如何存储数据
SQLite 基本操作
• SQLite 数据库管理软件本身不提供 GUI,所以只能 使用终端。
• ● 启动
• $ sqlite3 <参数>
• ● 退出(任何一个均可以)
• • • • sqlite> .quit sqlite> .q sqlite> .exit sqlite> .ex
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 操作 。
• [fmdb executeUpdate:@"create table t_test (name, text, age integer)"];
执行查询 SQL 语句
• FMResultSet *resultSet = [fmdb executeQuery:@"select * from t_test"]; • while ([resultSet next]) { • int sid = [resultSet intForColumn:@"id"]; • NSString *name = [resultSet stringForColumnIndex:1]; • NSLog(@"%d - %@", sid, name); • }
连接数据库文件
•
• •
1、获取数据库文件
+ (instancetype)databaseWithPath:(NSString*)aPath; FMDatabase *fmdb = [FMDatabase databaseWithPath:@“/Users/Hey/Desktop/student_info.sqlite”]; 2、打开数据库文件 - (BOOL)open; if ([fmdb open]) {
SQLite 基本操作 – 打开、创建数据库
• ● 创建数据库文件(例如新建一个名为 test.db 的数据库文 件)
• sqlite3 test.db
• 如果 studentinfo.db 已经存在,则打开该文件; • 如果 studentinfo.db 不存在,则创建并打开该文件。 • ⚠⚠ 注意 1. 如果只单纯创建数据库文件,而不向文件内写入任何数据 的话,文件不会被真是创建出来,因为不写入任何数据它 自身就是空的。 2. 一般习惯性将 SQLite 的文件名后缀设置为 .db 或 .sqlite 。
DDL – 创建表
• ● 创建表 • create table 表名 (字段1 字段1类型,字段2 字段2类型 …… ); • create table if not exists 表名 (字段1 字段1类型,字段2 字段2类 型 …… ); • ● SQLite 可以存储如下几种类型的数据
integer real text blob 整数值 浮点数 字符串 二进制