数据库

数据持久化存储
1.plist 属性列表
2.归档 遵守NSCoding 协议
3.NSUserDefaults — > 沙盒/library/P…./xxx.plist
4.文件 NSFileManager NSFileHandle
5.数据库 (fmdb 操作数据库 ——core)



    需求:     程序保存大量的数据
    解决:        如果使用json,xml或plist可以存储, 但是这样做性能太差
        一般情况下存储的时候选用数据库存储

    应用场合:        
                (1)交规考试---保存交通规则,使用数据库
                (2)爱限免---保存用户的收藏记录, 浏览记录, 下载记录

    常用数据库:    SQLServer 2000-----保存游戏的所有用户的信息
                        Oracle
                        mysql------网上php网站使用较多

                        特点: 网络数据库, 支持的功能多, 程序比较大

    移动开发常用:    sqlite数据库
                        特点:    足够小, 足够快(本地数据库), 使用比较简单
    增删改查  sql语句

    常用软件:                    MesaSQlite数据库操作软件
    数据库操作语言:        SQL(结构化查询语言)
    常用开源库:                FMDB

数据库本身就是一个文件,数据库中 可以有多张表table或者一张表  这个表就是一个二维的 有行 有列,
列称为字段 他和我们之前 讲的数据模型中的属性对应  行表示的就是一个数据模型对象的信息


MesaSQlite使用

        1.创建数据库

        2.创建表(一个数据库中存在多个表, xls文件中存在多个表格)

        3.添加字段        设计表格的结构

        4.添加数据

        5.删除数据

        6.更新数据

        7.查询操作

SQL结构化查询语言

        1.创建一个表格
            create table testtable(username,password)

            CREATE TABLE IF NOT EXISTS user (
                serial INTEGER  PRIMARY KEY AUTOINCREMENT,
                sid Varchar(32) DEFAULT NULL,
                username Varchar(32) DEFAULT NULL,
                password Varchar(32))

            drop table testtable    删除表格

        2. 插入数据(核心和重点)-insert

            insert into user(sid,username,password)                 values('1410001','xiaohong','123')

        3. 查询数据(核心和重点) select

            <1>查询表格中所有字段的数据
                select * from user

            <2>查询指定的字段
                实例:        获取所有用户名
                select username from user
                select username,password from user

            <3>根据指定的条件进行查询   
                实例:        sid为1410001人的信息获取出来
                select * from user where sid='1410001'
    
            <4>根据多个条件进行查询
                实例:        判断用户名为lisi,密码为123456的用户是否存在?
                select * from user where username='lisi' and password='123456'

            <5>查询后需要排序-----淘宝查询按照价格排序,desc表示降序,默认升序
                select * from user order by sid desc

            <6>获取数据行数
                select count(*) from user

        4. 删除数据
            实例:  删除用户名为hanmeimei 的所有行
                delete from user where username='hanmeimei'

        5.更新数据
            实例: 用户名为lisi的密码改为123456
                update user set password='123456' where username='lisi'


//从user表中查找从索引2开始的数两个的记录
select * from  user limit 2 ,2


查找 user 中的所有记录 按照 age 降序排列
select * from user  order by age desc


查找 age=10的所有记录   按照 passwd 升序 排列
select * from user  where age=10  order by passwd asc

查找 age 分别 是 2   3   5 的所有记录
select * from user where age in (2,3,5)

查找 age  在2<=age <= 5 区间的所有记录
select * from user where age between  2 and 5

模糊找到 找到 username 中包含 xiaohong字符串的所有记录
select * from user where username like '%xiaohong%'

查找 指定范围的记录     limit 1,2  表示 从索引 1开始 数两条记录
//索引 值 数字 是从0开始表示
select * from user  limit 1,2

/插入/增加内容
insert into user(username,passwd,age) values('xiaofen','1234567',2)
//查找 user表中的所有内容
select * from user
查找 user表中的所有username字段的内容
select username  from user
从user表 找到username 字段 是xiaohong 所有内容

select username,passwd,age  from user where username='xiaohong'
select username,passwd,age  from user where age>1 and passwd='12345'
//like 就是一个模糊查询  查找 username 中包含 xiaohong 的所有记录

select username,passwd,age  from user where username like '%xiao%'
select username,passwd,age  from user where age between '1' and '2'

select * from user
select sum(age) from user
select avg(age) from user


//求行数  求有多少条记录
select count(*) from use

insert into user(username,passwd,age) values ('xiao','12345','10')
根据 passed 是12345 的按照 age 降序排列
select * from user   where passwd = '12345' order by  age desc
//删除 age 是10 的记录
delete  from user where age = 10


FMDB开源库 操作 sqlite 的一个第三库
增删改查

        使用库:
            (1)导入文件, 直接拖进来
            (2)添加系统库  libsqlite3.dylib
            (3)添加头文件
                #import "FMDatabase.h"
            fmdb  有 arc 和非arc 的代码
        如果是非arc 的代码在arc 环境下编译 要 混编 -fno-objc-arc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值