首页 > 代码库 > 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数据库