久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > linux中sqlite數據庫的簡單使用

linux中sqlite數據庫的簡單使用 時間:2018-09-29      來源:未知

一、 數據庫的安裝

1. 網絡安裝:

配置好網絡源后

sudo apt-get install sqlite3  

2.

使用給出的deb包安裝:

Sudo dpkg -i *.deb

安裝三個deb包

使用源碼包安裝:

 解壓:tar xzf sqlite-autoconf-3140100.tar.gz 

執行./configure 

執行make && make install

3.

執行sqlite3 -version進行測試

二、 sqllite命令

創建數據庫:sqlite3 company.db

1.幫助:.help

2.退出sqlite3:.quit

3.顯示當前打開的數據庫文件:.database

4.顯示數據庫中所有表名:.tables

5.查看表的結構:.schema  <table_name>

6.控制顯示格式:.mode column   .header on

三、SQLite 數據類型

表結構:行:記錄  列:字段 值:字段值

 

每個存儲在 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 數據,完全根據它的輸入存儲。

四、sql命令(以';'結尾)

1.創建表(主鍵)

create table table_name(

    column1 datatype  primary key,

    column2 datatype,

    column3 datatype,

    .....

    columnn datatype,

);  //primary保證字段唯一性

 

實例:(not null 表示記錄被插入時候字段不能為空)

 下面是一個實例,它創建了一個 COMPANY 表,ID 作為主鍵,NOT NULL 的約束表示在表中創建紀錄時這些字段不能為 NULL:

create table company(

    id int primary key     not null,

    name           text    not null,

    age            int     not null,

    address        char(50),

    salary         real

);

2.刪除表

drop  table  <table_name>

drop  table company;

3.插入數據

3.1 指定列插入數據

 insert into table_name (column1, column2, column3,...columnn)  values (value1, value2, value3,...valuen);

 

3.2 所有列插入數據

 insert into table_name values (value1,value2,value3,...valuen);

4.查詢語句

查詢所有

select * from table_name;

查詢指定列

 select column1, column2, columnn from table_name;

條件查找

select * from table_name where <表達式>

例:select * from company where id = 7;

5.刪除記錄

delete from table_name where [condition];

如果不使用條件,那么會刪除整個表數據

 

舉例:

刪除ID=7的表

delete from company where id = 7;

 

6.修改

 update table_name set column1 = value1, column2 = value2...., columnn = valuen where [condition];

如果不使用where指定條件,那么會更新所有的記錄

五、linux編程接口

 

包含:#include<sqlite3.h>

編譯方式:gcc sqlite1.c -lsqlite3

 

 1.int sqlite3_open(char  *path, sqlite3 **db);

 

功能:打開sqlite數據庫,如果數據庫不存在則創建它

path: 數據庫文件路徑

db: 指向sqlite句柄的指針

返回值:成功返回SQLITE_OK,失敗返回錯誤碼(非零值)

 

2.int sqlite3_close(sqlite3 *db);

 

功能:關閉sqlite數據庫

返回值:成功返回SQLITE_OK,失敗返回錯誤碼

 

返回值:返回錯誤信息

 

 

3.執行sql語句接口

int sqlite3_exec(

   sqlite3 *db,                                  /* An open database */

   const char *sql,                           /* SQL to be evaluated */

   int (*callback)(void*,int,char**,char**),  /* Callback function */

   void *arg,                                    /* 1st argument to callback */

   char **errmsg                              /* Error msg written here */

);

 

功能:執行SQL操作

db:數據庫句柄

sql:要執行SQL語句

callback:回調函數(滿足一次條件,調用一次函數,用于查詢)

arg:傳遞給回調函數的參數

errmsg:錯誤信息指針的地址

返回值:成功返回SQLITE_OK,失敗返回錯誤碼

 

回調函數:

 typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);

 

功能:每找到一條記錄自動執行一次回調函數

para:傳遞給回調函數的參數(由 sqlite3_exec() 的第四個參數傳遞而來)

f_num:記錄中包含的字段數目

f_value:包含每個字段值的指針數組(列值)

f_name:包含每個字段名稱的指針數組(列名)

返回值:成功返回SQLITE_OK,失敗返回-1,每次回調必須返回0后才能繼續下次回調

 

4.不使用回調函數執行SQL語句

 int sqlite3_get_table(sqlite3 *db, const  char  *sql,  char ***resultp,  int*nrow,  int *ncolumn, char **errmsg);

 

功能:執行SQL操作

db:數據庫句柄

sql:SQL語句

resultp:用來指向sql執行結果的指針

nrow:滿足條件的記錄的數目(但是不包含字段名)

ncolumn:每條記錄包含的字段數目

errmsg:錯誤信息指針的地址

 

返回值:成功返回SQLITE_OK,失敗返回錯誤碼

上一篇:C#錯誤調試方法

下一篇:LCD驅動程序

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部