iOS-数据持久化-数据库
sqlite:关系型数据库以表格的形式存储
在sqlite中类似表格的表头的位置叫做《字段》(字段名不能重复)字段是用来查找数据的关键字(每张表格的关键字不能重名)
可以通过这张表的任意一个字段查找到对应的数据(横着)
在字段的下面是每条数据(存储的内容)
sqlite中可以有多个表表与表之间是通过主键和外键关联起来的
操作数据库:
1、sql语句(structured query language)结构化查询语言
sql语句:结构化查询语言组成的一条语句
2、操作数据库的函数(通过C语言来操作的)
1、sql语句
常用关键字:select、insert、update、delete、from、create、where、desc、order、by、group、table、drop、alter、view、index等等
类型:
integer:整型值
real:浮点值
text:文本字符串
blob:二进制数据
功能性:建表删表
建表:create(创建) table(表)
建表公式:create table表名(字段名类型,字段名类型);
如果不存在这个表就去创建:create
table if not exists表名(字段名类型,字段名类型);
例子:create tableifnot exists user (name
text, age integer)
让ID自动增长把某个字段设置成主键并让它自动增长(primary key autoincrement)
例子:create tableifnot exists user (idinteger primary key autoincrement, name text, age integer)
删表:drop(删除) table
删表公式:drop table表名
如果表存在就去删除:drop table if exists user
操作:增删改查
增:insert into values
公式:insert into表名(字段名) values(值)
删:delete from
公式:delete from表名where字段= '值';
改:update from where set
公式:update 表名 set 字段名= '新值' where字段名= '值';
查:selectfrom where
公式:
1、查询某条数据:select字段(整条数据所有包含的字段)
from表名where字段like ?;
2、查询整个表:select
* from表名
步骤:
1、核对sql语句的合法性
2、绑定要查询的数据
3、开始查询
ios操作数据的函数步骤
1、导入sqlite3这个框架*****
2、打开、关闭数据库
sqlite3_open(char*类型的文件路径,数据库对象的内存地址)
sqlite3_close(数据库对象)
3、(如果没有建表需要建表)①增删改对应的操作
对表格进行操作:sqlite3_exec(数据库对象, [@"建表(增删改)的语句"UTF8String]char*类型的sql语句(要干什么),NULL,NULL,char*类型的字符串(如果有错误会返回一个错误信息))
②查对应的操作
1、核对sql语句的合法性
2、绑定要查询的数据
3、开始查询、分离查询结果
使用完数据库及时关闭数据库
1、核对sql语句的合法性
sqlite3_stmt
*stmt;结果集查询的数据放入里面
sqlite3_prepare_v2(数据库的对象,
sql语句,查询语句的长度(-1),结果集的内存地址,NULL)
2、绑定要查询的数据
sqlite3_bind_text(数据集的对象,绑定的第几个问号,要查询的内容(char*),要查询内容的长度,NULL)
3、开始查询、分离查询结果
while(sqlite3_step(stmt) ==SQLITE_ROW) {
sqlite3_column_查询的类型(结果集的对象,列数)
}