国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS數據存儲--數據庫

2019-11-09 18:52:39
字體:
來源:轉載
供稿:網友

iOS中數據存儲方式

PlistNSUserDefaultsNSCodingSQLite3Core Data

SQLite

什么是SQLite SQLite是一款輕量級的嵌入式數據庫占用資源非常低,在嵌入式設備中,可能只需要幾百k的內存就足夠用了處理速度比MySQL、PostgreSQL這兩款著的數據庫還快什么事數據庫 數據庫(Database)是按照數據結構來組織、儲存和管理數據的倉庫數據庫可以分為兩大類:關系型數據庫(主流)和對象型數據庫

常用關系數據庫

SQLiteMySQLOracle

數據庫是如何存儲數據的:數據庫的存儲結構和Excel很像,以表(table)為單位

數據庫儲存數據的步驟 新建一張表(table)添加多個字段(column、列、屬性)添加多個記錄(row、每行存放多個字段對應的值)

SQL語句簡介

SQL語句的特點 不區分大小寫每條語句必須以分號結尾SQL中常用的關鍵詞 select、insert、update、delete、from、create、where、desc、order、by、group、table、alter、view、index等等數據庫中不可以使用關鍵字來命名表、字段

SQL語句的種類

數據定義語句(DDL:Data Definition Language) 包括create和drop等操作在數據庫中創建新表或刪除表(create table或drop table)數據操作語句(DML:Data Manipulation Language) 包括insert、update、delete等操作用于添加、修改、刪除表中的數據數據查詢數據(DQL:Data Query Language) 可以用于查詢獲得表中的數據關鍵字select是所有SQL用的最多的操作其他常用的關鍵字where、order by、group by和having

DDL數據定義

創建表

格式(一般表名以t_作為前綴) create table表名(字段名1 字段類型1,字段名2 字段類型2,…);create table if not exists 表名(字段名1 字段類型1,字段名2 字段類型2,…);

字段類型

integer:整形值real:浮點值text:文本字符串blob:二進制數據(比如文件)例子create table t_student (id integer, name text, age integer, score real);

刪除表

格式

drop table 表名drop table if exists 表名例子:drop table t_student;

DML數據操作

插入數據(insert)

格式:

insert into 表名(字段1,字段2,…)values(字段1的值,字段2的值,…);

注意:數據庫中的字符串應該使用單引號‘括住

例子

insert into t_student (name,age) values ('hyq', 22);

更新數據(update)

格式 update 表名 set 字段1 = 字段1的值,字段2 = 字段2的值,…;

例子

update t_student set name = 'xiaoqiu',age = 99;結果 將t_student表中所有記錄的name改為xiaoqiu,age改為99

刪除數據(delete)

格式 delete from 表名;

例子

delete from t_student;結果 將t_student表中的所有字段的所有記錄都刪除

DQL數據查詢

格式 select 字段1,字段2,… from 表名select * from; //查詢所有字段例子 select name,age from t_student; select * from t_student;

重命名字段名

格式 select 字段1 別名,字段2 別名,… from 表名 別名;select 字段1 別名,字段2 as 別名,… from 表名 as 別名;

例子

給name起個叫做myname的別名,給age起個叫做myage的別名selete name myname, age myage from t_student;給t_student表起個別名叫做s,利用s來引用表中的字段select s.name, s.age from t_student s;統計 格式 select count [字段] from 表名select count [*] from 表名示例 select count(age)from t_student;

SQL語句中的條件限制

如果只想更新或者刪除某些固定的記錄,那就必須在DML語句后加上一些條件條件語句常見的格式 where 字段 = 某個值;where 字段 != 某個值;where 字段1 = 某個值 and 字段2 > 某個值;//and等同于C語言中的&&where 字段1 = 某個值 or 字段2 = 某個值;//or等同于C語言中的||

例子

將t_student表中大于10并且名字不等于hyq的記錄,年齡都改為18update t_student set age = 18 where age > 10 and name != 'hyq';

排序

select * from t_student order by 字段

查詢出來的結果可以用order by進行排序

select * from t_student order by age;

默認是按照升序排序(由小到大),也可以變為降序

select * from t_student order by age asc; //升序select * from t_student order by age desc; //降序

可以按照多個字段進行排序

select * from t_student order by age asc ,height desc; //年齡升序,身高降序

limit查詢數量

使用limit可以精確地控制查詢結果的數量格式 select * from 表名 limit 數值1,數值2;在第6條數據后,然后去10條數據 select *from t_student limit 5, 10;

建表約束

建表時可以給特定的字段設置一些約束條件,常見的約束有

not null:規定字段的值不能為nullunique:規定字段的值必須唯一default:指定字段的默認值create table t_student (id integer,name text not null unique,age integer not null default 1);主鍵 PRimary Key,用來唯一地標識某一條記錄t_student表中,若沒有設置一個字段為主鍵,則難免會出現幾個記錄中name和age完全相等的情況,因此需要一個標識來區分,比如人的省份證id,來區分同名同齡的人主鍵可以是一個或者多個字段主鍵應當不影響用戶記錄的數據,最好是由電腦自動生成主鍵

主鍵聲明

在創建的時候用primary key聲明一個主鍵,eg:用一個integer類型的id字段作為t_student表的主鍵create table t_student(id integer primary key, name text, age integer);主鍵字段默認就包含了not null和unique兩個約束讓integer類型的主鍵自動增長,需要添加autoincrement,一般情況下主鍵自動增加便于管理 create table t_student (id integer primary key autoincrement, name text, age integer) ;

外鍵約束

利用外鍵約束可以用來建立表與表之間的聯系;一個表中的一個字段來自另一個表里的一個字段eg:學生表的班級字段,來自班級表中的id字段 create table t_student (id integer primary key autoincrement, name text, age integer, class_id integer, constraint fk_t_student_class_id_t_class_id foreign key (class_id) (id)) ; references t_class

連接表查詢

如果需要聯合多張表才能查詢到想要的數據,一般需要使用表連接表連接的基礎 內連接:inner join 或者join(顯示的是左右表都有完整字段值得記錄)左外連接:left outer join (保證左表數據的完整性)eg:查詢計算機1班的所有學生 select s.name,s.age from t_student s, t_class c where s.class_id = c.id and c.name = '計算機1班';

SQL語句執行順序

from語句組裝來自不同數據源的數據where語句基于指定的條件對記錄進行篩選 where語句中是不能用狙擊函數作為條件表達式的where語句用于基本表或視圖,從中選擇滿足條件的元組 group by語句將數據劃分為多個分組使用聚合函數進行計算(常用聚合函數:count、sum、avg、max、min) max函數返回一列中的最大值,NULL值不包括在計算中使用having語句篩選分組計算所有表達式使用order by對結果進行排序
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海城市| 金阳县| 宁阳县| 千阳县| 仪陇县| 澎湖县| 大渡口区| 泸定县| 宣汉县| 合肥市| 平邑县| 哈巴河县| 苗栗市| 嘉黎县| 广东省| 盱眙县| 荃湾区| 郴州市| 呼和浩特市| 监利县| 新绛县| 阳东县| 斗六市| 灌南县| 达州市| 什邡市| 司法| 扎兰屯市| 宜都市| 颍上县| 金堂县| 龙川县| 沁源县| 东丰县| 卓尼县| 广元市| 微博| 临澧县| 英德市| 巧家县| 泰州市|