sqlite關係型資料庫的使用
資料庫(database): 存放資料的倉庫, 存放的是一張的表, 特別像excel, numbers, 都以**的形式存放資料, 可以建立多張表。
常見的資料庫: sqlite, mysql, sqlserver, oracle, access。
使用資料庫,主要是因為檔案讀寫和歸檔讀取資料需要一次把資料全部讀出來, 占用記憶體開銷大;其次是資料庫資料效率高, 體現在增刪改查。
資料庫儲存資料的步驟
1、新建乙個資料庫
2、新建一張表(table)
3、新增多個字段(column,列,屬性)
4、新增多行記錄(row,每行存放多個字段對應的值)
資料庫的操作語句 (增刪改查),即sql(structured query language)
sql 語句不區分大小寫, 字串需要加""或』』
常用語法:(主鍵: 是一條資料的唯一標示符, 一張表只能有乙個主鍵, 主鍵不能夠重複, 一般把主鍵名設為"id", 不需要賦值, 會自增;*代表所有的字段;where是條件)
1 表操作
(1)建立表: creat table 表名 (欄位名字段資料型別 是否為主鍵, 欄位名 字段資料型別, 欄位名 字段資料型別…)
(2)修改表名:alter table 舊表名 rename to 新錶名
(3)刪除表:drop table 表名
(4)表新增一列:alter table 表名 add column 列名資料型別 限定符
2 表資料操作
(1)查: select 欄位名 (或者*) from 表名 where 欄位名 = 值
(2)加: insert into 表名 (欄位1, 欄位2…) values (值1, 值2…)
(3)改: update 表名 set 字段 = 值 where 字段 = 值
(4)刪: delete from 表名 where 字段 = 值
sqlite是一款輕型的嵌入式資料庫,它占用資源非常的低,在嵌入式裝置中,可能只需要幾百k的記憶體就足夠了。它的處理速度比mysql、postgresql這兩款著名的資料庫都還快。
sqlite名詞解釋
2個重要結構體
1 sqlite3 *pdb(資料庫控制代碼,跟檔案控制代碼file類似)
2 sqlite3_stmt *stmt(這個相當於odbc的command物件,用於儲存編譯好的sql語句)
5個主要函式
1 sqlite3_open()(開啟資料庫)
2 sqlite3_exec()(執行非查詢的sql語句)
3 sqlite3_prepare()(準備sql語句,執行select語句或者要使用parameterbind時,用這個函式(封裝了sqlite3_exec))
4 sqlite3_step()(在呼叫sqlite3_prepare後,使用這個函式在記錄集中移動)
5 sqlite3_close()(關閉資料庫檔案)
sqlite 儲存類
1 null(值是乙個 null 值)
2 integer(值是乙個帶符號的整數,根據值的大小儲存在1、2、3、4、6 或 8 位元組中)
3 real(值是乙個浮點值,儲存為 8 位元組的 ieee 浮點數字)
4 text (值是乙個文字字串,使用資料庫編碼(utf-8、utf-16be 或 utf-16le)儲存)
5 blob (值是乙個 blob 資料,完全根據它的輸入儲存)
sqlite常用語句
1、開啟資料庫 sqlite3_open函式
2、預處理sql語句sqlite3_prepare_v2函式
3、繫結引數sqlite3_bind_text函式
4、執行sql語句sqlite3_step函式(狀態:*sqlite_busy-資料庫被鎖定、*sqlite_done-成功執行過程、*sqlite_row-返回一行結果、*sqlite_error-執行錯誤、*sqlite_misuse-錯誤的使用了本函式)
5、提取字段資料sqlite3_column_text、sqlite3_column_blob、sqlite3_column_int等函式
6、釋放statement物件資源 sqlite3_finalize函式
7、關閉資料庫 sqlite3_close函式
1、由於sqlite3是基於c語言編寫的,而不是純粹的object-c,所以有關字串,我們不能使用nsstring,因為它不識別,所以只能用c語言的字串,char*,好在nsstring提供了轉換的方法,那就是 utf8string。如:
nsstring*sql = @「delete from student where name = ?」;
constchar *execsql = [sql utf8string];
2、sql語句中,不確定值使用?符號。如:
nsstring*sql = @「delete from student where name = ?」;
3、提取查詢資料函式中的數字表示sql語句中的第幾列(0~n)。如:
表示第1列:constchar *name = (char *)sqlite3_column_text(statment, 0);
4、繫結資料時函式中的數字表示sql語句中的第幾個值。如:
nsstring*sql = @「insert or replace into student (name, address, phone) values(?,?,?)」;
表示第1個值:sqlite3_bind_text(statment,1, [@「zhangshaoyu」 utf8string], -1, null);
表示第2個值:sqlite3_bind_text(statment,2, [@「meizhou」 utf8string], -1, null);
表示第3個值:sqlite3_bind_text(statment,3, [@「13510213244」 utf8string], -1, null);
5、建立表時,必須設定乙個主鍵primary key。如:
nsstring*sql = @「create table if not exists student(name text primary key, addresstext, phone text)」;
SQLite關係型資料庫管理系統 開篇
部落格 github sqlite是乙個程序內的庫,實現了自給自足的 無伺服器的 零配置的 事務性的 sql 資料庫引擎。sqlite官方 sqlite的優點如下所示 sqlite的缺點如下所示 特性描述 right outer join 只實現了 left outer join。full oute...
關係型資料與非關係型資料庫
關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...
關係型資料庫 非關係型資料庫
關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...