qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          sqlite3數(shù)據(jù)庫歸納

          sqlite3數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫,體積小,支持ACID事物。
            (ACID,指數(shù)據(jù)庫事務(wù)正確執(zhí)行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。一個支持事務(wù)(Transaction)的數(shù)據(jù)庫系統(tǒng),必需要具有這四種特性,否則在事務(wù)過程(Transaction processing)當(dāng)中無法保證數(shù)據(jù)的正確性,交易過程極可能達(dá)不到交易方的要求。)
            /********************************************/
            sqlite是一個輕量級的嵌入式數(shù)據(jù)庫。
            特征:
            1.零配置,無需安裝和管理配置;
            2.儲存在單一磁盤文件中的一個完整的數(shù)據(jù)庫;
            3.數(shù)據(jù)庫文件可以在不同字節(jié)順序的機器間自由共享;
            4.支持?jǐn)?shù)據(jù)庫大小至2TB;
            5.足夠小,全部源代碼大致3萬行c代碼,250KB;
            6.比以前流行的大多數(shù)數(shù)據(jù)庫對數(shù)據(jù)的操作要快;
            /*******************************************/
            SQLite數(shù)據(jù)庫采用模塊化設(shè)計,由8個獨立的模塊構(gòu)成,這些獨立模塊又構(gòu)成了三個主要的子系統(tǒng),模塊將復(fù)雜的查詢過程分解為細(xì)小的工作進(jìn)行處理。
            /*******************************************/
            手工建數(shù)據(jù)庫:
            linux@ubuntu:~$ sqlite3 my.db
            查看幫助:
            sqlite> .help
            文件存放位置:
            sqlite> .database
            退出:
            sqlite> .quit
            查看表:
            sqlite> .tables
            顯示表的結(jié)構(gòu):
            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;
            /******************************************/
            代碼創(chuàng)建
            sqlite編程接口
            1.打開sqlite數(shù)據(jù)庫
            int  sqlite3_open(char *path, sqlite3 **db);
            path: 數(shù)據(jù)庫文件的路徑
            db:     指向sqlite句柄的指針
            返回值: 成功返回0,失敗返回錯誤碼(非零值)
            2.關(guān)閉sqlite數(shù)據(jù)庫
            int  sqlite3_close(sqlite3 *db);
            返回值: 成功返回0,失敗返回錯誤碼
            3.
            const  char  *sqlite3_errmsg(sqlite3 *db);
            返回值: 返回錯誤信息
            程序的編譯方法:
            gcc  -o  test  test.c  -lsqlite3
            4.執(zhí)行SQL操作
          typedef int (*sqlite3_callback)(void *, int, char **, char **);
          int  sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
          db:     函數(shù)庫句柄
          sql:     SQL語句
          callback:回調(diào)函數(shù)
          errmsg:     錯誤信息指針的地址
            返回值:     成功返回0,失敗返回錯誤碼
            5.每次找到一條記錄自動執(zhí)行一次回調(diào)函數(shù)
          typedef  int  (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);
          para: 傳遞回調(diào)函數(shù)的參數(shù)
          f_num: 記錄包含的字段數(shù)目
          f_value: 包含每個字段值的指針數(shù)組
          f_name: 包含每個字段名稱的指針數(shù)組
            返回值: 成功返回0,失敗返回-1
            6.不使用回調(diào)函數(shù)執(zhí)行SQL操作
            int  sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg);
            db: 數(shù)據(jù)庫句柄
            sql: SQL語句
            resultp: 用來指向sql執(zhí)行結(jié)果的指針
            nrow: 滿足條件的記錄的數(shù)目
            ncolumn: 每條記錄包含的字段數(shù)目
            errmsg: 錯誤信息指針的地址
            返回值: 成功返回0,失敗返回錯誤碼

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

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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 水城县| 永宁县| 五指山市| 潍坊市| 峡江县| 深泽县| 灵宝市| 广元市| 乌拉特中旗| 罗城| 汾阳市| 高邮市| 恩施市| 揭西县| 洛川县| 塔城市| 达孜县| 商城县| 兰西县| 榆树市| 盘山县| 凉山| 铜梁县| 金湖县| 桃园市| 唐海县| 兴文县| 定兴县| 盈江县| 镶黄旗| 九江县| 太原市| 平泉县| 邮箱| 洪湖市| 来凤县| 马尔康县| 乐亭县| 武夷山市| 海南省| 旬阳县|