日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ios 查询mysql数据库操作系统_iOS数据库FMDB--增删改查(模糊查询)详细介绍

發布時間:2023/12/2 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios 查询mysql数据库操作系统_iOS数据库FMDB--增删改查(模糊查询)详细介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:

很早就想整理一下數據庫的使用了,剛好最近接觸較多,加之可以安排出空余的時間,所以瓜子我貢獻出自己喝咖啡的時間整理一下FMDB的使用,以下是對FMDB的介紹以及基本使用 --- insert、delete、update、select。其中select講了兩種比較重要的方式---ID查詢、模糊查詢。

在iOS中,主要有5種數據緩存的策略:

1、plist

2、歸檔

3、偏好設置

4、沙盒文件

5、"SQLite數據庫"

其中,"SQLite數據庫" 是最常用的數據緩存方式,在開發中,在無網絡的狀態下,數據庫常常發揮著非常大的作用!

系統提供的數據存儲方式的弊端 :

1)不方便操作大量的數據

- 系統提供的數據存儲方式都是覆蓋存儲的,新的數據會覆蓋舊的數據.而且當數據量非常大時,如果要添加新的數據,必須先把舊數據全部加載到內存中

2)不方便查找大量的數據

- 當數據量非常龐大時,要查詢其中某些數據,就非常困難。

而數據庫可以輕松解決以上弊端~

存儲方式:(類比于Excel表格)

"Excel" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "SQLite"

- 創建Excel文件 ? ? ? ? ? ? ? ? ? - 創建一個數據庫文件

- 創建表 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?- 創建表

- 確定表頭 ? ? ? ? ? ? ? ? ? ? ? ? ? ?- 創建數據庫的字段名(Excel表頭),并指定數據類型

- 對Excel表進行數據操作 ? ?- 對數據庫進行增刪改查

FMDB的使用流程:

簡單介紹:FMDB 是一個操作數據庫的第三方框架,并且支持多線程環境下的操作,也是需要手動導入'libsqlite3.0.tbd'庫,以OC的方式封裝了SQLite的C語言API。方便靈活并且線程安全。

"FMDatabase" : 單線程;"FMDatabaseQueue" : 多線程;"FMResultSet" : 查詢的結果集。

1、創建數據庫單例對象(一個數據庫可以存在多個表)

2、創建數據庫儲存路徑

3、創建表

4、對表格進行增刪改查等操作

上代碼:

1、創建數據庫單例對象,如圖1

圖 1

注意:創建單例的原因是保證數據庫隊列只創建一次,全局只有一個串行隊列,這樣操作數據更安全。

2、創建數據庫路徑和表格,如圖 2

圖 2

解析:單引號‘’中為表格的字段名,逗號后面為字段所屬類型,字段類型是整形就用interger,字符串就用text。

注意:主鍵要想實現自動增長,不能是text類型。

我們看到,在沙盒中已經建好了表名為:JLcharacterModel 的數據庫。如圖3

圖 3

3、進行數據庫操作 ---增刪改查

提示:建表,增刪改 操作都是方法 "[_db executeUpdate]"或者"[_db executeStatements]",查詢是另外的方法 "[_db executeQuery]" ?。星號(*)是選取所有列的快捷方式。SQL 語句對大小寫不敏感。SELECT 等效于 select。

1 ) INSERT INTO

INSERT INTO 語句用于向表格中插入新的行。

語法:INSERT INTO 表名稱 VALUES (值1, 值2,....)

也可以向指定的列插入數據:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

將數據寫入表格,如圖4(以下數據來源于卓浦士科技所屬的app ---足球技能分析大師TropsX的云端數據,因為安全問題,將部分信息遮擋,敬請諒解)

圖 4

注意!請注意:

1)列名稱和值名稱的順序要一一對應!例如:列名banner要對應自己的類型text。

2)如果列名類型是NSString,則需要加單引號 ‘’ 括住,例如:'%@',只應用于字符串類型。

3)對數據庫進行操作增刪改查之前要先打開數據庫,操作完畢要關閉數據庫。這只是一種嚴謹的寫法,最好這樣,否則可能會操作失敗。

打開app本地數據庫查看我們創建好的表格,如圖 5

圖 5

這時候你會發現,表格是空的!!!!!what ?

仔細一看,原來是創建表格的表名稱寫錯了!!把 CharaterModel 改為 JLCharaterModel ,so,數據庫路徑的表名稱跟插入數據寫的表名稱一定要相同!運行程序。鐺鐺鐺~

圖 6

注釋:圖 6 信息顯示不全。

2)DELETE

DELETE 語句用于刪除表中的行。

語法:DELETE FROM 表名稱 WHERE 列名稱 = 值,刪除所有行:DELETE FROM 表名 或者DELETE * FROM 表名。

現在我們刪除itemid為Shoe0101、Shoe0102這兩行~ 代碼如圖 7。

圖 7

來看看數據庫是否已經刪除成功,如圖8:鐺鐺鐺~

圖 8

已經刪除成功~

3)UPDATE

Update 語句用于修改表中的數據。

語法:更新某行的一列:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值。更新某行的若干列:UPDATE 表名稱 SET 列名稱1 = 新值1 ,列名稱2 = 新值2 WHERE 列名稱 = 某值。

將idNew為10000103的那一行 name改為靜林是真的瓜子,status改為U,看代碼:如圖 9。

圖 9

圖10 看看更新成功了沒有?

圖 10

到這里就非常完美了~~

4)SELECT

SELECT 語句用于從表中選取數據。結果被存儲在一個結果表中(稱為結果集)。

語法:SELECT 列名稱 FROM 表名稱 或者 SELECT * FROM 表名稱。

再次提示:星號(*)是選取所有列的快捷方式。SQL 語句對大小寫不敏感。SELECT 等效于 select。

在講update的時候已經寫了一些select的語句了。通過條件查詢,圖 11看代碼~

圖 11

注意:獲取結果集列順序的時候,一定要取對類型,比如banner類型是字符串就要用stringForColumnIndex,整形就要使用intForColumnIndex,長整型就要使用longForColumnIndex,類型取不對,會導致返回的結果不對,切記!

查詢itemid為Shoe0103的結果,通過斷點,我們可以知道返回了一個帶有屬性的model,如圖12:

圖 12

通過關鍵字查詢結果,如圖13:

圖 13

我們查詢列名name有“瓜子”、expiredays == 90的結果,如圖14:

圖 14

可以看到得出一個結果~~

大坑注意:

1)模糊查詢時,需要自己拼接查詢語句,不要使用框架提供的

2)'%' 是特殊字符,此時需要使用%轉義.即 '%%'

3)自己拼接查詢語句時,就需要自己添加單引號把字符串引起來

錯誤的拼接和執行模糊查詢的方式:FMResultSet *resultSet = [_db executeQueryWithFormat:@"select * from t_heros where name like '%%%@%%'",keyWord];

正確的拼接和執行模糊查詢的方式:NSString *selectSQL = [NSString stringWithFormat:@"select * from t_heros where name like '%%%@%%'",keyWord];

FMResultSet *resultSet = [_db executeQuery:selectSQL];

到這里就寫完啦~希望對你有所幫助!不足之處敬請諒解并希望加以指正!QQ:1002282311 謝謝~~

總結

以上是生活随笔為你收集整理的ios 查询mysql数据库操作系统_iOS数据库FMDB--增删改查(模糊查询)详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。