iOS數(shù)據(jù)庫(kù)之基礎(chǔ)知識(shí)get

iOS中進(jìn)行數(shù)據(jù)持久化存儲(chǔ)有幾種方式

  • plist(NSArray NSDictionary只用來(lái)存儲(chǔ)數(shù)組和字典,并且數(shù)組和字典中不能有自定義對(duì)象,有自定義對(duì)象)
  • preference偏好設(shè)置也不能存儲(chǔ)自定義對(duì)象
  • nscoding歸檔:用來(lái)存儲(chǔ)自定義對(duì)象.局限性:一次性做存儲(chǔ)/讀取操作.------------------而離線緩存是有時(shí)是一次一次增加,如果用歸檔,就需要,從數(shù)組中讀取出來(lái)加入數(shù)組,再重新存入.不能單獨(dú)添加某一個(gè)東西.必須一次性添加進(jìn)去.
    比如有
    80條數(shù)據(jù),需要再增加20條,我們就需要取出放入數(shù)組,再一次性存入100條
  • Sqlite數(shù)據(jù)庫(kù)就是用來(lái)做離線緩存的

做離線緩存,目的是為了在沒(méi)有網(wǎng)絡(luò)時(shí),可以進(jìn)行加載數(shù)據(jù)

1.什么是SQLite,

SQLite是一款輕型的嵌入式數(shù)據(jù)庫(kù),占用資源非常低,在嵌入式的設(shè)備中,可能只需要幾百k的內(nèi)存就夠了.她的處理速度比Mysql postgreSQL這兩款數(shù)據(jù)庫(kù)都快.Mysql postgreSQL這兩種是大型數(shù)據(jù)庫(kù).我們手機(jī)不需要用到這種大型數(shù)據(jù)庫(kù).

2.什么數(shù)據(jù)庫(kù)

是用來(lái)存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)

3.數(shù)據(jù)庫(kù)的兩大分類

關(guān)系型數(shù)據(jù)庫(kù)
對(duì)象性數(shù)據(jù)庫(kù)coredata

關(guān)系型數(shù)據(jù)庫(kù)

4.sqlited數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)

  1. 操作數(shù)據(jù)比較快,讀取比較方便
  1. 可以局部讀取
  2. 比較小型,占用內(nèi)存小符合手機(jī)的特點(diǎn)≈

5.sqlited數(shù)據(jù)庫(kù)是如何存取數(shù)據(jù)的

數(shù)據(jù)庫(kù)和excel類似,是以表為單位的.表的名字

6.操作數(shù)據(jù)的步驟

  1. 創(chuàng)建數(shù)據(jù)庫(kù)表,表名通常以t_開(kāi)頭,比如t_student
  1. 設(shè)計(jì)表,根據(jù)表需要存儲(chǔ)什么數(shù)據(jù),比如,學(xué)生有學(xué)號(hào) 姓名 年齡等等
  2. 記錄數(shù)據(jù) 設(shè)置學(xué)生 12號(hào) 張明 15歲
  3. 插入其他數(shù)據(jù),13號(hào) 李敏 15歲;這種每一條信息叫一條記錄每一列叫一個(gè)字段
  4. 主鍵,數(shù)據(jù)庫(kù)中每一條數(shù)據(jù)的唯一標(biāo)識(shí),一般每個(gè)表只用一個(gè)主鍵
  5. 數(shù)據(jù)類型
    Integer(整形)
    real 浮點(diǎn)型 text(文本)
    blob(二進(jìn)制數(shù)據(jù)比如文件挂滓,NSDate本身就是二進(jìn)制) 無(wú)類型

7.什么是SQL?

結(jié)構(gòu)化查詢語(yǔ)言是一種對(duì)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行定義和操作的語(yǔ)言
SQL語(yǔ)句是使用SQL語(yǔ)言編寫(xiě)出來(lái)的句子/代碼
在程序運(yùn)行期間,要想操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)(增刪改查),必須使用SQL語(yǔ)句

8.SQL語(yǔ)句的規(guī)則

  1. 不區(qū)分大小寫(xiě)
  1. 每條語(yǔ)句都必須以;分號(hào)結(jié)尾
  2. 不能以關(guān)鍵字來(lái)命名表/字段

9.SQL語(yǔ)句的種類

  • 數(shù)據(jù)定義語(yǔ)句DDL(data definition language)
    create table drop table在數(shù)據(jù)庫(kù)中創(chuàng)建新表或刪除表
  • 數(shù)據(jù)庫(kù)操作語(yǔ)句DML(data manipulation language)
    insert update delete 在數(shù)據(jù)庫(kù)中對(duì)表進(jìn)行插入添加.修改.刪除表中的數(shù)據(jù)
  • 數(shù)據(jù)查詢語(yǔ)句DQL(data query language)
    select where orderly groupie having用于查詢表中數(shù)據(jù)

10.DDL數(shù)據(jù)創(chuàng)建語(yǔ)句
創(chuàng)建表格

  1. create table 表名(字段1,字段類型1,字段2,字段類型2.....)
  1. create table if not exists 表名 (字段1 字段類型1,字段2 字段類型2)
  2. create table if not exists stu(s_id integer primary key autoincrement not null)順序不能調(diào)貨,主鍵是整形的只有整形才能自增

刪除表格

  1. drop table 表名
  1. drop table if exists 表名

11.DML數(shù)據(jù)庫(kù)操作語(yǔ)句----增刪改
數(shù)據(jù)庫(kù)中的字符串內(nèi)容應(yīng)該用單引號(hào)’括住
插入數(shù)據(jù)

  1. insert into 表名(字段名1,字段名2.奸攻。斤儿。筛圆。)values(字段1值决摧,字段2值政基。凶杖。胁艰。。)
  1. insert into stu (s_name,s_age) values ('aa',18)
    id 是系統(tǒng)自增的
    insert into mall (m_name,m_price,m_date) values ('牙膏',12.5,'20150101')

更改數(shù)據(jù)

  1. update 表名 set 字段名1 = 修改值1,字段名2 = 修改值2腾么, (無(wú)條件全部更新)
    條件
    where 字段名 條件 條件值(<,>,!=.....)
    and or 關(guān)鍵詞:并且 或
  1. update stu set s_age = 9999 where s_age >10 and s_age<20
  2. update stu set s_age = 18 where s_age =1000 or s_age=9999

刪除
delete from stu 無(wú)條件全部刪除
delete from stu where s_age = 26

12.數(shù)據(jù)查詢語(yǔ)句DQL
查找 ** select * 通配符代表所有字段**
select 字段1奈梳,字段2,解虱。攘须。。from 表名 where 字段名 條件 條件值

  1. select * from stu where s_age = 18
  1. select * from stu(表名)

模糊查詢 所有字段全查

  1. select * from stu where s_name like ‘a(chǎn)_d’下劃線代表一個(gè)字母 所有字段全查
  1. select * from stu where s_name like 'a_'
  2. select * from stu where s_name like 'a%’不確定a后面有幾個(gè)字母用%

單查某個(gè)字段

  1. select s_name from stu
    查找某幾個(gè)字段用逗號(hào)隔開(kāi)
  1. select s_name,s_age from stu

排序

  1. selected * from 表名 order by 字段名 升序asc/降序desc
  1. select * from stu order by s_age asc 按照年齡升序排列
  2. select * from stu where s_age > 50 order by s_age asc 年齡大于50并按照升序排列

limit 可以精確控制查詢結(jié)果的數(shù)量,比如每次只查詢10條數(shù)據(jù)

  1. select * from 表名 limit 數(shù)值1, 數(shù)值2; 跳過(guò)數(shù)值1條數(shù)據(jù)開(kāi)始查找數(shù)值2條
  1. select * from stu limit 5; 只查前5條只跟1個(gè)數(shù)值殴泰,從頭開(kāi)始查多少個(gè)
  2. select * from stu limit 3,7; 從第4條開(kāi)始查7條
  3. select * from stu where s_age > 50 order by s_age asc limit 3; 年齡大于50的3條,并按照升序排列
51B9C947-EA20-4517-BA5D-76DE5A2231EA.png
69A5A743-911D-41EE-8903-C2B2FAF74308.png

13.外鍵約束
利用外鍵約束創(chuàng)建表與表之間的關(guān)系
某個(gè)表的字段引用其他表的主鍵
t_students表->編輯->Foreign keys -> + -> fk_status_user

create table t_student(id integer primary key auto increment,name text,age integer,class_id integer,constraint fk_t_student_class_id_t_class_id foreign key(class_id) references t_class(id));

主鍵:唯一標(biāo)識(shí)/自增/不能為空
id integer primary key auto increment 主鍵
name text,
age integer
class_id integer
constraint約束的意思 外鍵名稱: fk_t_student_class_id_t_class_id
foreign key(class_id) references t_class(id)這個(gè)外鍵的作用是用t_student表中的class_id字段引用t_class表的id字段

69A5A743-911D-41EE-8903-C2B2FAF74308.png

14.表連接查詢----需要聯(lián)合多張表才能查到想要的數(shù)據(jù)
表連接的類型

內(nèi)連接:inner join或者join (顯示的是左右表都有完整字段值的記錄)
外連接:left outer join (保證左表數(shù)據(jù)的連接性)
查詢0316班的所有學(xué)生(給表替換名稱,使用.語(yǔ)法)
select s.name,s.age from t_students s,t_class c where s.class_id = c.id and.name = “0316”;

以上均來(lái)自網(wǎng)上查詢于宙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市悍汛,隨后出現(xiàn)的幾起案子捞魁,更是在濱河造成了極大的恐慌,老刑警劉巖离咐,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谱俭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宵蛀,警方通過(guò)查閱死者的電腦和手機(jī)昆著,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)术陶,“玉大人凑懂,你說(shuō)我怎么就攤上這事∥喙” “怎么了接谨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)塘匣。 經(jīng)常有香客問(wèn)我疤坝,道長(zhǎng),這世上最難降的妖魔是什么馆铁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮锅睛,結(jié)果婚禮上埠巨,老公的妹妹穿的比我還像新娘。我一直安慰自己现拒,他們只是感情好辣垒,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著印蔬,像睡著了一般勋桶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天例驹,我揣著相機(jī)與錄音捐韩,去河邊找鬼。 笑死鹃锈,一個(gè)胖子當(dāng)著我的面吹牛荤胁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屎债,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼仅政,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了盆驹?” 一聲冷哼從身側(cè)響起圆丹,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躯喇,沒(méi)想到半個(gè)月后辫封,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玖瘸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年秸讹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雅倒。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡璃诀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔑匣,到底是詐尸還是另有隱情劣欢,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布裁良,位于F島的核電站凿将,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏价脾。R本人自食惡果不足惜牧抵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望侨把。 院中可真熱鬧犀变,春花似錦、人聲如沸秋柄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)骇笔。三九已至省店,卻和暖如春嚣崭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背懦傍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工雹舀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谎脯。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓葱跋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親源梭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娱俺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法废麻,內(nèi)部類的語(yǔ)法荠卷,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法烛愧,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,665評(píng)論 18 399
  • 一油宜、iOS應(yīng)用數(shù)據(jù)存儲(chǔ)的常用方式: 1> XML屬性列表(plist)歸檔2> Preference(偏好設(shè)置)3...
    DB001閱讀 1,482評(píng)論 0 5
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,815評(píng)論 0 11
  • 我想給你看清晨金色澄凈的樹(shù)影 我想給你看深夜流云里碎裂的星子 有幼獸青灰色的眼眸 還有陽(yáng)光清淺、水波溫柔 所以我把...
    一咕閱讀 155評(píng)論 0 0
  • 爆竹聲震千家戶怜姿,側(cè)耳聞聽(tīng)暫避孤慎冤。 浪子誰(shuí)知心意苦,通宵獨(dú)坐飲屠蘇沧卢。 殘燭搖曳猶為伴蚁堤,好夢(mèng)新成舊恨除。 去歲經(jīng)塵全忘...
    竹影齋主人閱讀 184評(píng)論 5 9