iOS:本機資料庫sqlite3的使用

來源:互聯網
上載者:User

標籤:

一、資料庫的概念:1.、什麼是資料庫   SQL Server 2010、Oracle、MySQL   關聯式資料庫   NoSQL資料庫-非關係型資料庫    資料庫主要由表組成   表由欄位組成   資料 就是表中的記錄    表間的關係:一對一、一對多(訂單:訂單的頭和訂單明細)   外鍵    主鍵:建立索引,不能重複 2、SQL(結構化查詢語言 (SQL))語句   A、資料操作的SQL語句:      2.1 查詢         select(欄位名) from(表名);         where 子句:定義查詢條件          排序:order by 欄位名 (asc,desc)         分組:group by 欄位名         2.2 刪除       delete from(表名)  where name = @“admin”;        2.3 插入          insert into(表名)(欄位列表) values(欄位列表對應的欄位值);     2.4 更新             update(表名) set 欄位=值 where 子句;    B、對資料庫維護的SQL語句:     建立表:     create table (表名) (定義欄位:欄位名 欄位類型);            sqlite3 資料庫名    //在終端下進入某一個本地的資料庫(如果不存在就自動建立一個)        .schema 表名  //在終端下可以快速查看某一個表中的所有欄位         .table        //在終端下可以查看建立的所有表       .exit/.quit         //在終端下退出某一個資料庫   二、SQLite的基本使用 SQLite支援的常見資料類型如下所示。–INTEGER 有符號的整數類型–REAL 浮點類型–TEXT 字串類型,採用UTF-8和UTF-16字元編碼–BLOB 二進位大物件類型,能夠存放任何位元據 (C語言中)使用步驟:1.建立項目時,先匯入系統架構(C語言). (libsqlite3) 2.標頭檔#import<sqlite3.h> 3. sqlite3_open(fileName.UTF8String, &_db); 開啟或者建立一個資料

    *_db自己定義一個sqlite3的成員變數.進行增刪改查時要用

 4.sqlite3_exec(_db, sql, NULL, NULL,&error);  //不帶結果集的語句,只是對錶做操作,不會返回出結果*該函數可進行insert,delete,update操作. 5.查詢操作select. //帶結果集的查詢語句,會返回出結果,從表中查詢到的資料都會放到stmt結構體中*sqlite3_prepare_v2(_db, sql, -1, &stmt, NULL);做查詢前準備,檢測SQL語句是否正確.*sqlite3_step(stmt) 提取查詢到的資料,一次提取一條.//通過迴圈可以取出所有資料*sqlite3_column_text(stmt, 0)取出第0列的資料. 6.關閉資料庫 sqlite3_close(sqlite3 *); ————————————————————————————————————————————————————————————————————————————————————————————————————————執行帶參數的SQL語句

NSString *sqlStr = @"INSERT OR REPLACE INTO note (cdate,content) VALUES (?,?)";

sqlite3_stmt *statement;
//預先處理過程,產生結果集
if (sqlite3_prepare_v2(db, [sqlStr UTF8String], -1, &statement, 

NULL) == SQLITE_OK)

 {

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
 NSString *nsdate = [dateFormatter stringFromDate:model.date]; 

 //綁定參數開始
 sqlite3_bind_text(statement, 1, [nsdate UTF8String], -1, NULL);  sqlite3_bind_text(statement, 2, [model.content UTF8String], 

-1,    NULL);

 //執行插入
if (sqlite3_step(statement) != SQLITE_DONE)

 {  

NSAssert(NO, @"插入資料失敗。"); } 

 } 

}

//清理結果集,防止記憶體泄露

 sqlite3_finalize(statement);

 

單例模式:(這裡主要用來保證初始化的資料庫是唯一的,只要建立了一次,那麼它就不會被再建立)

+ (NoteDAO*)sharedManager 

  static dispatch_once_t once; 

  dispatch_once(&once, ^{ 

  sharedManager = [[self alloc] init]; 

  [sharedManager   createEditableCopyOfDatabaseIfNeeded]; }

  );

   return sharedManager;

 

 }

 

iOS:本機資料庫sqlite3的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.