数据存储的几种方式
---恢復(fù)內(nèi)容開(kāi)始---
iOS有四種數(shù)據(jù)持久化的方式
1.屬性列表(plist文件)
2.對(duì)象歸檔(NSKeyedArchiver , NSKeyedUnarchiver)
//3.偏好設(shè)置(NSUserDefault)
4.SQLite 數(shù)據(jù)庫(kù)
5.CoreData
持久化方式的比較:
1.屬性列表、對(duì)象歸檔適合小數(shù)據(jù)量存儲(chǔ)和查詢操作
2.SQLite CoreData 適合大數(shù)據(jù)量的存儲(chǔ)和查詢操作
一、SQLite的使用
1.簡(jiǎn)要說(shuō)明: SQlite 是一個(gè)開(kāi)源的、內(nèi)嵌式的關(guān)系型數(shù)據(jù)庫(kù)。它是最初發(fā)布于2000年,在便攜性、易用性、緊湊型、有效性和可靠性方面有很大的突破;
2.SQLite數(shù)據(jù)庫(kù)結(jié)構(gòu)簡(jiǎn)單 ,適用于嵌入式 小型應(yīng)用
二、SQL語(yǔ)句
數(shù)據(jù)定義語(yǔ)句(DDL :Data Definition Language)
? 其語(yǔ)句包括動(dòng)詞Creat(創(chuàng)建表)Drop (刪除表)
數(shù)據(jù)操作語(yǔ)言(DML:Data Manipulation language)
其語(yǔ)句包括 Insert(插入行)、update(修改行)、delete (刪除)
數(shù)據(jù)查詢語(yǔ)句 (DQL : Data Query language)
其語(yǔ)句包括 select 用于查詢數(shù)據(jù)
詳細(xì)說(shuō)明:
表的創(chuàng)建:?
creat table 表名 (字段名1 字段類(lèi)型1,字段名2 字段類(lèi)型2....);
creat table if not exists 表名 (字段名1 字段類(lèi)型1,字段名2 字段類(lèi)型2.......);
?實(shí)例: creat table t_student (id integer, name text,age integer);
刪表:
drop table 表名;
例: drop table t_person
SQLite 將數(shù)據(jù)的存儲(chǔ)劃分為以下幾種存儲(chǔ)類(lèi)型:
1.NULL :表示該值為NULL值
2.INTEGER:無(wú)符號(hào)
?3.REAL :浮點(diǎn)值
4.TEXT :文本字符串
5.BOOL :二進(jìn)制數(shù)據(jù)
簡(jiǎn)單約束:
建表的時(shí)候可以給特定的字段設(shè)置一些約束條件 :
1. ?用not null 指定字段的值不能為空
2.用unique 指定字段的值必須唯一
3.用default 指定字段的默認(rèn)值
實(shí)例: creat table t_student(id integer,name text not null unique,age integer not null ?default 1)
?表示: name 字段的值不能為空 ?,并且唯一
age 字段:的值為null ,并且默認(rèn)值是1;
? ? DML 語(yǔ)句
插入數(shù)據(jù)(insert ?into)
?1.語(yǔ)法: insert into 表名 (字段一,字段二,。。。。。)values(值一,值二,。。。。。。)
2.舉例: insert into t_tudent(name,age)values(“peter”,“20”);
3.注意:數(shù)據(jù)庫(kù)的字符串的內(nèi)容應(yīng)該用單引號(hào)或是雙引號(hào)
更新數(shù)據(jù)(update)
1.語(yǔ)法: update 表名 set 字段1 = 字段1 的值 ,字段2 = 字段2的值;
2.舉例: update t_student set name = “peter”,age = 12;
3.注意:這里會(huì)將t_student中的所有記錄的名字全部改成peter ,年齡全部改成12;
刪除數(shù)據(jù)(delete)
1.語(yǔ)法 :delete from 表名
2.舉例: delete from t_student?
3.注意:這里會(huì)將t_student表中的記錄都刪掉
? ? ? ?條件語(yǔ)句
如果只想更新或者刪除某些固定的記錄,那就必須在DML語(yǔ)句后面加上一些條件限制
條件語(yǔ)句的格式如下:
1.where 字段 = ?某個(gè)值 and 字段 >某個(gè)值 //and 相當(dāng)于&&
2.where 字段 = 某個(gè)值 or 字段 = 某個(gè)值 //or 相當(dāng)于 ||
條件舉例:
1.將年齡大于10并且姓名不等于jack的記錄年齡都改為5;
update t_student age = 5 where age >10 and name != "jack";
2.刪除年齡小于等于 10 或年齡大于30 的記錄
delete from t_student where age <=10 or age>=30;
DQL語(yǔ)句 (查詢語(yǔ)句)
1.查詢格式:
select 字段一,字段二,from 表名;
select name,age,from t_student;
2.如果想查詢所有字段可以用:
select *from 表名;
select *from t_student;
3.也可以添加設(shè)置條件語(yǔ)句
select * from t_student where age>20;
4.計(jì)算記錄的數(shù)量 可以用count(字段)或者count(*)
select count(*)from t _student;
select count (age)from t_student where height <1.80;
5.排序語(yǔ)法:
1. 查詢出來(lái)的結(jié)果用order by 進(jìn)行排序
select *from t_student order by 字段;
例:select *from t_student order by age;
2. ?默認(rèn)情況下是按照升序進(jìn)行排序的 (由小到大)
實(shí)例; select *from t_student order by age desc;//降序、
? select *from t_student order by age asc;//升序(默認(rèn)的)
限制查詢數(shù)量:
select *from 表名 limit 數(shù)值1,數(shù)值2;
select *from t_student limit 4,8;
以上語(yǔ)法; 跳過(guò)前面的四條語(yǔ)句,然后取出8條記錄
主鍵約束: (primary key)
保證每條記錄的唯一性:
主鍵是唯一的標(biāo)識(shí)某一條記錄的,可以是一個(gè)字段或是多個(gè)字段,比如t_student 可以增加一個(gè)id字段來(lái)作為主鍵,相當(dāng)于人的身份證;
注意: 主鍵的設(shè)計(jì)原則;
1.主鍵應(yīng)當(dāng)是對(duì)用戶沒(méi)有用意義的
2.永遠(yuǎn)不能更新主鍵;
3.主鍵不能包含動(dòng)態(tài)變化的數(shù)據(jù)
4.主鍵應(yīng)該有計(jì)算機(jī)自動(dòng)生成
?
轉(zhuǎn)載于:https://www.cnblogs.com/ztlucky/p/5158742.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
- 上一篇: Jquery提交form表单
- 下一篇: socket通信简介