首页 > 代码库 > ios数据库
ios数据库
#define DATABASE_PATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]stringByAppendingString:@"/healthCloud.db”]
用于创建数据库的路径
create TABLE if not EXISTS t_student(id integer,name text)
iOS 的存储方式:
Plist(NSArray\NSDictionary)
NSCoding(NSKeyedArchiver\NSkeyedUnarchiver)
Preference(偏好设置\NSUserDefaults)
SQLite3
core data
sqllite
什么是SQLite
● SQLite是?一款轻型的嵌?入式数据库
● 它占?用资源?非常的低,在嵌?入式设备中,可能只需要?几百K的内存就够了 ● 它的处理速度?比Mysql、PostgreSQL这两款著名的数据库都还快
● 什么是数据库
● 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库 ● 数据库可以分为2?大种类
• 关系型数据库(主流)
• 对象型数据库
常?用关系型数据库
● PC端:Oracle、MySQL、SQL Server、Access、DB2、Sybase
● 嵌?入式\移动客户端:SQLite
什么是SQL
● SQL(structured query language):结构化查询语?言
● SQL是?一种对关系型数据库中的数据进?行定义和操作的语?言
● SQL语?言简洁,语法简单,好学好?用
● 什么是SQL语句
● 使?用SQL语?言编写出来的句?子\代码,就是SQL语句
● 在程序运?行过程中,要想操作(增删改查,CRUD)数据库中的数据,必须使 ?用SQL语句
● SQL语句的特点
● 不区分?大?小写(?比如数据库认为user和UsEr是?一样的)
● 每条语句都必须以分号 ; 结尾
● SQL中的常?用关键字有
● select、insert、update、delete、from、create、where、desc、order、by、group、
table、alter、view、index等等
● 数据库中不可以使?用关键字来命名表、字段
SQL语句的种类
● 数据定义语句(DDL:Data Definition Language)
● 包括create和drop等操作
● 在数据库中创建新表或删除表(create table或 drop table)
● 数据操作语句(DML:Data Manipulation Language)
● 包括insert、update、delete等操作
● 上?面的3种操作分别?用于添加、修改、删除表中的数据
● 数据查询语句(DQL:Data Query Language)
● 可以?用于查询获得表中的数据
● 关键字select是DQL(也是所有SQL)?用得最多的操作
● 其他DQL常?用的关键字有where,order by,group by和having
● 格式
● create table 表名 (字段名1 字段类型1, 字段名2 字段类型2, ...) ;
● create table if not exists 表名 (字段名1 字段类型1, 字段名2 字段类型2, ...) ;
● ?示例
● create table t_student (id integer, name text, age inetger, score real) ;
字段类型
● SQLite将数据划分为以下?几种存储类型:
● integer : 整型值
● real : 浮点值
● text : ?文本字符串
● blob : ?二进制数据(?比如?文件)
● 实际上SQLite是?无类型的
● 就算声明为integer类型,还是能存储字符串?文本(主键除外)
● 建表时声明啥类型或者不声明类型都可以,也就意味着创表语句可以这么写:
• create table t_student(name, age);
● 为了保持良好的编程规范、?方便程序员之间的交流,编写建表语句的时候最好 加上每个字段的具体类型
删表
● 格式
● drop table 表名 ;
● drop table if exists 表名 ;
● ?示例
● drop table t_student ;
插?入数据(insert)
● 格式
● insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...) ;
● ?示例
● insert into t_student (name, age) values (‘mj’, 10) ;
● 注意
● 数据库中的字符串内容应该?用单引号 ’ 括住
更新数据(update)
● 格式
● update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, ... ;
● ?示例
● update t_student set name = ‘jack’, age = 20 ;
● 注意
● 上?面的?示例会将t_student表中所有记录的name都改为jack,age都改为20
删除数据(delete)
● 格式
● delete from 表名 ;
● ?示例
● delete from t_student ;
● 注意
● 上?面的?示例会将t_student表中所有记录都删掉
条件语句
● 如果只想更新或者删除某些固定的记录,那就必须在DML语句后加上?一些条 件
● 条件语句的常见格式
● where字段=某个值; //不能?用两个=
● where字段is某个值; //is相当于=
● where 字段 != 某个值 ;
● where字段isnot某个值; //isnot相当于!=
● where字段>某个值;
● where 字段1 = 某个值 and 字段2 > 某个值 ; // and相当于C语?言中的 &&
● where字段1=某个值or字段2=某个值; // or相当于C语?言中的||
条件语句练习
?示例
将t_student表中年龄?大于10 并且 姓名不等于jack的记录,年龄都改为 5 update t_student set age = 5 where age > 10 and name != ‘jack’ ;
删除t_student表中年龄?小于等于10 或者 年龄?大于30的记录 delete from t_student where age <= 10 or age > 30 ;
猜猜下?面语句的作?用
update t_student set score = age where name = ‘jack’ ; 将t_student表中名字等于haha的记录,height字段的值 都改为 age字段的值
DQL语句
● 格式
● select 字段1, 字段2, ... from 表名 ;
● select * from 表名; // 查询所有的字段
● ?示例
ios数据库