iOS数据处理之SQLite数据库

发表于:2016-5-26 10:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:仗剑走天下    来源:51Testing软件测试网采编

  1. 数据库管理系统
  1> SQL语言概述
  SQL: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集, 是一种功能齐全的数据库语言。
  2> 常见的数据库
  MySQL: MySQL是一个精巧的SQL数据库管理系统, 而且是开源的数据管理系统。MySQL 主要目标是快速、健壮和易用。 由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结果,受到了广大自由软件爱好者甚至是商业软件用户的青睐。
  Oracle:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。系统可移植性好、使用方便、功能强。
  3> 数据库特征:
  以一定的方式存储(表结构)
  能共享数据(很多人都能用)
  具有尽可能少的冗余代码(单表操作的代码相对而言简单,多表操作代码比较复杂)
  与程序彼此独立(与程序本身没有太大的关系)
  4> 数据库管理系统
  SQLite(http://www.sqlite.org/docs.html)是一个轻量级的关系数据库。 SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,目前应用于Android、iOS、Window Phone等智能手机。iOS使用时SQLite,只需要加入libsqlite3.0.tbd依赖以及引入sqlite3.h头文件即可。
  5> 相关概念
  表:是数据库中一个非常重要的对象,是其他对象的基础。根据信息分类情况,一个数据库中可能包含若干个数据表。
  字段:表的"列"称为"字段",每个字段包含某一专题的信息
  记录:是指对应于数据表中一行信息的一组完整的相关信息。
  2. SQL语句
  1> SQLite数据库数据类型
  SQLite是无类型的数据库,可以保存任何类型的数据,对于SQLite来说对字段不指定类型是完全有效的。(注:良好的编程习惯应该要为字段标注类型)
  为了使sqlite和其他数据库间的兼容性最大化,sqlite支持"类型近似"的观点,列的类型近似指的是存储在列上数据的推荐类型。
  2> SQLite近似类型规则
  如果类型字符串中包含"INT",那么该字段的亲缘类型为INTEGER。
  如果类型字符串中包含"CHAR"、"CLOB"或"TEXT",那么该字段的亲缘类型为TEXT,如VARCHAR。
  如果类型字符串中包含"BLOB",那么该字段的亲缘类型为NONE。
  如果类型字符串中包含"REAL"、"FLOA"或"DOUB",那么该字段的亲缘类型为REAL
  其余情况下,字段的亲缘类型为NUMERIC
  3> SQLite字段约束条件
  not null(非空):
  在数据库中允许除主键以为,其他的任何字段可以为空
  unique(唯一):
  表示确定的,只有这个没有重复的
  primary key(主键):
  不能为空(not null);
  不能重复(唯一unique);
  一个表里可以没有主键,但是如果设置完主键,必须遵守主键的特点(最好设置主键,方便我们查找相关信息)
  foreign key(外键):
  在MySQL里面有联表查询,需要使用外键;
  作用: 可以根据外键查询另一张表的某条具体数据
  check 该字段数据用于必须满足一定条件
  default 该字段数据可以给定默认值
  autoincrement(自增变量) 该字段数据如果为整型可以自动加 1
  4> SQL语句
  建表命令
  语法: creat table 表名(字段1 类型 约束1 约束2, 字段2 类型 约束1, ...);
  1 -- 需求:创建一个student表,表中字段有学号,姓名,年龄; 学号作为主键的约束条件,自增,不能为空; 姓名默认为'无名氏'; 年龄大于16
  2
  3 create table if not exists student(s_id integer primary key autoincrement not null, s_name text default '无名氏', s_age integer check (s_age > 16));
  数据插入命令
  语法: insert into 表名(字段1, 字段2, 字段3, ...) values(value1, value2, value3);
  1 --事例:
  2 insert into student(s_name, s_age) values('ff', 18);
  3 insert into student(s_name, s_age) values('zf', 24);
  数据更新命令
  语法: update 表名 set 字段名1 = 修改值1, 字段名2 = 修改值2 where 条件;
  1 update student set s_age = 18 where s_age = 24;
  数据删除命令
  语法: delete from 表名 where 条件
  1 delete from student where s_age = 2;
  数据查询命令
  语法: select 要查找的字段 from 表名 where 条件;
  1 -- * 表示所有的数据
  2 select * from student;
  3 select * from student where s_age = 18;
  4 select s_name from student where s_age = 24;
  3. iOS的数据库计数的实现
  1> SQLite导入的框架
  Xcode 6 中 libsqlite3.0.dylib
  Xcode 7 中 libsqlite3.0.tdb
  2> 导入相应的框架步骤:
  3> 开始使用SQLite
  引入<sqlite3.h>头文件
  打开数据库
  执行SQL命令(建表,增删查改)
  关闭数据库
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号