數據存儲的幾種方式

---恢復內容開始---

iOS有四種數據持久化的方式

1.屬性列表(plist文件)

2.對象歸檔(NSKeyedArchiver , NSKeyedUnarchiver)

//3.偏好設置(NSUserDefault)

4.SQLite 數據庫

5.CoreData

持久化方式的比較:

1.屬性列表、對象歸檔適合小數據量存儲和查詢操作

2.SQLite CoreData 適合大數據量的存儲和查詢操作

一、SQLite的使用

1.簡要說明: SQlite 是一個開源的、內嵌式的關系型數據庫。它是最初發布于2000年,在便攜性、易用性、緊湊型、有效性和可靠性方面有很大的突破;

2.SQLite數據庫結構簡單 ,適用于嵌入式 小型應用

二、SQL語句

數據定義語句(DDL :Data Definition Language)

? 其語句包括動詞Creat(創建表)Drop (刪除表)

數據操作語言(DML:Data Manipulation language)

其語句包括 Insert(插入行)、update(修改行)、delete (刪除)

數據查詢語句 (DQL : Data Query language)

其語句包括 select 用于查詢數據

詳細說明:

表的創建:?

creat table 表名 (字段名1 字段類型1,字段名2 字段類型2....);

creat table if not exists 表名 (字段名1 字段類型1,字段名2 字段類型2.......);

?實例: creat table t_student (id integer, name text,age integer);

刪表:

drop table 表名;

例: drop table t_person

SQLite 將數據的存儲劃分為以下幾種存儲類型:

1.NULL :表示該值為NULL值

2.INTEGER:無符號

?3.REAL :浮點值

4.TEXT :文本字符串

5.BOOL :二進制數據

簡單約束:

建表的時候可以給特定的字段設置一些約束條件 :

1. ?用not null 指定字段的值不能為空

2.用unique 指定字段的值必須唯一

3.用default 指定字段的默認值

實例: creat table t_student(id integer,name text not null unique,age integer not null ?default 1)

?表示: name 字段的值不能為空 ?,并且唯一

age 字段:的值為null ,并且默認值是1;

? ? DML 語句

插入數據(insert ?into)

?1.語法: insert into 表名 (字段一,字段二,。。。。。)values(值一,值二,。。。。。。)

2.舉例: insert into t_tudent(name,age)values(“peter”,“20”);

3.注意:數據庫的字符串的內容應該用單引號或是雙引號

更新數據(update)

1.語法: update 表名 set 字段1 = 字段1 的值 ,字段2 = 字段2的值;

2.舉例: update t_student set name = “peter”,age = 12;

3.注意:這里會將t_student中的所有記錄的名字全部改成peter ,年齡全部改成12;

刪除數據(delete)

1.語法 :delete from 表名

2.舉例: delete from t_student?

3.注意:這里會將t_student表中的記錄都刪掉

? ? ? ?條件語句

如果只想更新或者刪除某些固定的記錄,那就必須在DML語句后面加上一些條件限制

條件語句的格式如下:

1.where 字段 = ?某個值 and 字段 >某個值 //and 相當于&&

2.where 字段 = 某個值 or 字段 = 某個值 //or 相當于 ||

條件舉例:

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語句 (查詢語句)

1.查詢格式:

select 字段一,字段二,from 表名;

select name,age,from t_student;

2.如果想查詢所有字段可以用:

select *from 表名;

select *from t_student;

3.也可以添加設置條件語句

select * from t_student where age>20;

4.計算記錄的數量 可以用count(字段)或者count(*)

select count(*)from t _student;

select count (age)from t_student where height <1.80;

5.排序語法:

1. 查詢出來的結果用order by 進行排序

select *from t_student order by 字段;

例:select *from t_student order by age;

2. ?默認情況下是按照升序進行排序的 (由小到大)

實例; select *from t_student order by age desc;//降序、

? select *from t_student order by age asc;//升序(默認的)

限制查詢數量:

select *from 表名 limit 數值1,數值2;

select *from t_student limit 4,8;

以上語法; 跳過前面的四條語句,然后取出8條記錄

主鍵約束: (primary key)

保證每條記錄的唯一性:

主鍵是唯一的標識某一條記錄的,可以是一個字段或是多個字段,比如t_student 可以增加一個id字段來作為主鍵,相當于人的身份證;

注意: 主鍵的設計原則;

1.主鍵應當是對用戶沒有用意義的

2.永遠不能更新主鍵;

3.主鍵不能包含動態變化的數據

4.主鍵應該有計算機自動生成

?

轉載于:https://www.cnblogs.com/ztlucky/p/5158742.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375117.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375117.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375117.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機原理學習(6)-- x86-32 CPU和內存管理之分頁管理

前言 上一篇我們了解了x86-16 CPU計算機的內存訪問方式&#xff0c;尋址方式&#xff0c;以及基于MS-DOS的應用程序的內存布局。這一篇會主要介紹32位處理器的內存訪問&#xff0c;內存管理以及應用程序的內存布局。雖然目前64位CPU已經非常普及了&#xff0c;不過相對于32位的…

ESP定律

當程序載入OD之后 004AC460 > $ 60 pushad;程序停在這里 F8 指向pushad指令 pushad是把寄存器中數據入棧 棧中數據如下&#xff1a; 0012FFA4 7C930208 |EDI <-- ESP指向棧頂 0012FFA8 FFFFFFFF |ESI 0012FFAC 0012FFF0 |EBP 0012FFB0 0012F…

socket通信簡介

前言 我們深諳信息交流的價值&#xff0c;那網絡中進程之間如何通信&#xff0c;如我們每天打開瀏覽器瀏覽網頁時&#xff0c;瀏覽器的進程怎么與web服務器通信的&#xff1f;當你用QQ聊天時&#xff0c;QQ進程怎么與服務器或你好友所在的QQ進程通信&#xff1f;這些都得靠sock…

SQL Server自動化運維系列——關于郵件通知那點事(.Net開發人員的福利)

需求描述 在我們的生產環境中&#xff0c;大部分情況下需要有自己的運維體制&#xff0c;包括自己健康狀態的檢測等。如果發生異常&#xff0c;需要提前預警的&#xff0c;通知形式一般為發郵件告知。 郵件作為一種非常便利的預警實現方式&#xff0c;在及時性和易用性方面也有…

So easy Webservice 1.Socket建設web服務

socket 是用來進行網絡通訊的&#xff0c;簡單來說&#xff0c;遠程機器和本地機器各建一個socket&#xff0c;然后通過該socket進行連接通訊 socket簡單模型圖&#xff1a; socket的原理圖&#xff1a; 代碼實現&#xff1a; 1.創建socket服務端&#xff1a;用于處理客戶端發送…

去除字符串中重復字符

題目 設計算法并寫出代碼移除字符串中重復的字符&#xff0c;不能使用額外的緩存空間。注意&#xff1a; 可以使用額外的一個或兩個變量&#xff0c;但不允許額外再開一個數組拷貝。 進一步地&#xff0c; 為你的程序寫測試用例。 解答 這道題目其實是要你就地(in place)將字符…

MyEclipse 6.5安裝maven插件

MyEclipse 6.5安裝maven插件 原文 http://www.blogjava.net/caojianhua/archive/2013/11/05/406013.html 一、卸載原有maven插件 MyEclipse 6.5集成了Maven插件&#xff0c;不過有不少bug&#xff0c;用習慣了m2eclipse&#xff0c;不想在這上面浪費時間。要安裝m2eclipse&…

兩列右側自適應布局--(來自網易)

<div class"g-bd1 f-cb"><div class"g-sd1"><p>左側定寬</p></div><div class"g-mn1"><div class"g-mn1c"><p>右側自適應</p></div></div> </div> /* 兩列右…

Gradle 筆記

網上有一篇文章說的很明白&#xff0c;圖文來教你在eclipse下用gradle 來打包Androidhttp://blog.csdn.net/x605940745/article/details/41242687 步驟為&#xff1a; 1. Elipse里面導出&#xff0c;Generate Gradle build files 2. 找到生成的gradle文件夾&#xff0c;里面有…

sql server 自定義函數的使用

sql server 自定義函數的使用自定義函數 用戶定義自定義函數像內置函數一樣返回標量值&#xff0c;也可以將結果集用表格變量返回 用戶自定義函數的類型: 標量函數:返回一個標量值 表格值函數{內聯表格值函數、多表格值函數}:返回行集&#xff08;即返回多個值&#xff09; 1、…

怎么設置才能讓外網ip可以訪問mysql數據庫[轉]

轉自&#xff1a; http://www.hongyanliren.com/89.html 使用mysql中&#xff0c;很多人都會遇到這樣的問題&#xff1a;在vps服務器或者云服務器上安裝了mysql后&#xff0c;使用其他工具在外網ip之下根本就連接不上mysql&#xff0c;到底是什么原因導致外網ip無法訪問mysql數…

Java 自帶MD5 校驗文件

http://www.iteye.com/topic/1127319 前天第一次發表博客到論壇&#xff0c;關于Java文件監控一文&#xff0c;帖子地址在&#xff1a;http://www.iteye.com/topic/1127281 評論的朋友很多&#xff0c;下載代碼的朋友很不少&#xff0c;感謝在論壇上看我帖子的朋友&#xff0c;…

決策樹資料匯總

2012年8月26日決策樹&#xff08;Decision tree&#xff09;決策樹是以實例為基礎的歸納學習算法。它從一組無次序、無規則的元組中推理出決策樹表示形式的分類規則。它采用自頂向下的遞歸方式&#xff0c;在決策樹的內部結點進行屬性值的比較&#xff0c;并根據不同的屬性值從…

metasploitable2滲透測試

一、系統弱密碼登錄 1、在kali上執行命令行telnet 192.168.26.129 2、Login和password都輸入msfadmin 3、登錄成功&#xff0c;進入系統 4、測試如下&#xff1a; 二、MySQL弱密碼登錄&#xff1a; 1、在kali上執行mysql –h 192.168.26.129 –u root 2、登錄成功&#…

Portainer.io:讓容器管理變得更加直觀

在現代軟件開發和部署中&#xff0c;容器化技術已經變得越來越流行。Docker 是其中一種領先的容器化平臺&#xff0c;而 Portainer.io 則是一個優秀的管理工具&#xff0c;使得 Docker 的使用變得更加簡單和可視化。本文將介紹 Portainer.io 的基本功能和如何在 Docker 上安裝和…

倉庫信息查詢練習

use cangku create table cangkubiao ( cno varchar(50) primary key not null, city varchar(50)not null, mianji int not null ) insert into cangkubiao values(wh1,北京,370) insert into cangkubiao values(wh2,上海,500) insert into cangkubiao values(wh3,廣州,200) …

python開發的一些tips

1. Notepad編寫python腳本 1&#xff09;新建文件&#xff0c;編寫代碼 2&#xff09;點擊菜單欄&#xff0c;“語言”—>“P”—>“Python”&#xff0c;設置腳本為Python語言的高亮&#xff08;這樣保存文本的時候&#xff0c;Notepad也可以自動識別文件類型為.py&…

metasploitable3滲透測試

1、攻擊windows服務器漏洞 用nmap對網段進行掃描nmap -sP 192.168.123 在進行IP掃描 發現Windows服務器漏洞 步驟: msfconsole---進入滲透模塊

以前寫的一個下載小說的工具

因為當時發現只有一個站點有。但是時時聯網的要求太讓人不爽。就寫了一個給全下下來了。 用到了: 1. 正則表達式&#xff0c;分析章節和內容&#xff1b; 2. 線程池下載&#xff0c;并且對下載中的相關超時做了一些處理&#xff1b; 3. 文件生成與寫入&#xff0c;注意格式問題…

數學之路-python計算實戰(14)-機器視覺-圖像增強(直方圖均衡化)

我們來看一個灰度圖像&#xff0c;讓表示灰度出現的次數&#xff0c;這樣圖像中灰度為 的像素的出現概率是是圖像中全部的灰度數&#xff0c; 是圖像中全部的像素數, 實際上是圖像的直方圖&#xff0c;歸一化到 。把 作為相應于 的累計概率函數, 定義為&#xff1a;是圖像的…