qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          sqlite3數據庫歸納

          sqlite3數據庫是關系型數據庫,體積小,支持ACID事物。
            (ACID,指數據庫事務正確執行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。一個支持事務(Transaction)的數據庫系統,必需要具有這四種特性,否則在事務過程(Transaction processing)當中無法保證數據的正確性,交易過程極可能達不到交易方的要求。)
            /********************************************/
            sqlite是一個輕量級的嵌入式數據庫。
            特征:
            1.零配置,無需安裝和管理配置;
            2.儲存在單一磁盤文件中的一個完整的數據庫;
            3.數據庫文件可以在不同字節順序的機器間自由共享;
            4.支持數據庫大小至2TB;
            5.足夠小,全部源代碼大致3萬行c代碼,250KB;
            6.比以前流行的大多數數據庫對數據的操作要快;
            /*******************************************/
            SQLite數據庫采用模塊化設計,由8個獨立的模塊構成,這些獨立模塊又構成了三個主要的子系統,模塊將復雜的查詢過程分解為細小的工作進行處理。
            /*******************************************/
            手工建數據庫:
            linux@ubuntu:~$ sqlite3 my.db
            查看幫助:
            sqlite> .help
            文件存放位置:
            sqlite> .database
            退出:
            sqlite> .quit
            查看表:
            sqlite> .tables
            顯示表的結構:
            sqlite> .schema
            1.建表:
            sqlite> create table usr(id integer primary key, name text,age integer null, gender text, salary real not null);
            2.刪除表
            sqlite> drop table usr;
            3.增:
            sqlite> insert into usr(id, name, age, salary) values(2, 'liu', 20, 6000);
            4.刪
            sqlite> delete from usr where id = 2;
            5.改:
            sqlite> update usr set gender = 'man' where id = 3;
            6.查:
            sqlite> select * from usr where id = 2;

            7.在表中添加字段
            sqlite>alter table  usr  add  column   country   text;
            /******************************************/
            代碼創建
            sqlite編程接口
            1.打開sqlite數據庫
            int  sqlite3_open(char *path, sqlite3 **db);
            path: 數據庫文件的路徑
            db:     指向sqlite句柄的指針
            返回值: 成功返回0,失敗返回錯誤碼(非零值)
            2.關閉sqlite數據庫
            int  sqlite3_close(sqlite3 *db);
            返回值: 成功返回0,失敗返回錯誤碼
            3.
            const  char  *sqlite3_errmsg(sqlite3 *db);
            返回值: 返回錯誤信息
            程序的編譯方法:
            gcc  -o  test  test.c  -lsqlite3
            4.執行SQL操作
          typedef int (*sqlite3_callback)(void *, int, char **, char **);
          int  sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
          db:     函數庫句柄
          sql:     SQL語句
          callback:回調函數
          errmsg:     錯誤信息指針的地址
            返回值:     成功返回0,失敗返回錯誤碼
            5.每次找到一條記錄自動執行一次回調函數
          typedef  int  (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);
          para: 傳遞回調函數的參數
          f_num: 記錄包含的字段數目
          f_value: 包含每個字段值的指針數組
          f_name: 包含每個字段名稱的指針數組
            返回值: 成功返回0,失敗返回-1
            6.不使用回調函數執行SQL操作
            int  sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg);
            db: 數據庫句柄
            sql: SQL語句
            resultp: 用來指向sql執行結果的指針
            nrow: 滿足條件的記錄的數目
            ncolumn: 每條記錄包含的字段數目
            errmsg: 錯誤信息指針的地址
            返回值: 成功返回0,失敗返回錯誤碼

          posted on 2014-01-22 10:15 順其自然EVO 閱讀(225) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2014年1月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 固始县| 华阴市| 尉氏县| 巴东县| 平阴县| 分宜县| 娄底市| SHOW| 泸州市| 庄浪县| 南昌县| 祥云县| 咸阳市| 大连市| 木兰县| 赣州市| 沛县| 敦化市| 厦门市| 七台河市| 公主岭市| 横峰县| 抚顺市| 泊头市| 咸阳市| 思南县| 耒阳市| 麻阳| 凯里市| 闸北区| 宁晋县| 黑龙江省| 博白县| 凤山市| 济宁市| 清新县| 两当县| 灵武市| 延边| 无锡市| 五大连池市|