天天看點

sqlite3操作指南1.重定向輸出2.查詢操作3.查詢某個表的建表語句4.建立表格5.c/c++操作sqlite資料庫

sqlite3操作目錄

  • 1.重定向輸出
  • 2.查詢操作
    • 2.1随機查詢
  • 3.查詢某個表的建表語句
  • 4.建立表格
  • 5.c/c++操作sqlite資料庫

1.重定向輸出

//重定向輸出到檔案
.output ceshi.txt
//重定向輸出到螢幕
.output stdout
           

2.查詢操作

2.1随機查詢

3.查詢某個表的建表語句

4.建立表格

CREATE TABLE word
(id integer primary key autoincrement not null,
word text not null,
translate text not null,
ofGroup int not null, 
difficulty int default 0, 
kk int default 0, 
analogue int default 99999)
           

5.c/c++操作sqlite資料庫

#include<stdio.h>
#include<stdlib.h>
#include<sqlite3.h>
static int callback(void *NotUsed,int argc,char **argv,char **azColName){
    int i;
    for(i = 0 ; i < argc ; i ++)
    {
        printf("%s = %s\n",azColName[i],argv[i]?argv[i]:"NULL");
    }
    printf("\n");
    return 0;
}
int main(int argc,char ** argv)
{
    sqlite3 *db;
    char *zErrMsg = 0 ;
    int rc;
    char *sql;
    rc=sqlite3_open("word.db",&db);
    if(rc){
        fprintf(stderr,"Can't open database:%s\n",sqlite3_errmsg(db));
    }else
    {
        fprintf(stderr,"Opened database successfully\n");
    }
    sql = "insert into CPlusPlus(question,answer) values("\
    "'C++中,為什麼需要定義析構函數為虛函數?',"\
    "' 因為多态的存在,防止出現實作多态時候基類指針指向派生對象,如果析構函數不是虛函數,在delete對象的時候隻會調用基類的析構函數,而不會釋放派生類配置設定的一些資源'"\
    ");";
    rc = sqlite3_exec(db,sql,callback,0,&zErrMsg);
    if(rc != SQLITE_OK){
            fprintf(stderr,"SQL error:%s\n",zErrMsg);
            sqlite3_free(zErrMsg);
    }else{
        fprintf(stdout,"Records created successfully\n");
    }
    sqlite3_close(db);
    return 0;
}