安裝sqlite
拖動三個deb包 進入ubuntu 正常文件夾(非根目錄,非共享目錄)
sudo dpkg -i *.deb
sudo dpkg (deb 安裝包 debain linux 安裝包類型)
*.deb 所有的 以deb結尾的文件
sql 自動補齊(tab鍵) sqlite3 正常
進入 輸入 .quit爲退出
不行的話 輸個; (分號)提示錯誤以後 再輸第四步
使用sqlite
文檔 解壓 doc。zip 打開index.html
sqlite3 + 文件名。db(類似於 vi) 自動保存
創建表格
sqlite>create table (f1 type1, f2 type2,…);
create table stu(NAME char(20),SEX char(20),C int,DS int,IO int,P int, NW int);
增刪改查
表格屬性
.schema 查看錶格的屬性
插入表格
insert into stu values(“jiangwenxiao”,”genzhiboy”,90,100,100,100,60);
查詢表格
select * from stu;
select * from stu where NW<=60;
刪除
delete from stu where NAME=”jiangwenxiao”;
改
update stu set SEX=”woman” where NAME=”yanxiong”;
c語言調用 sqlite
1. 打開 sqlite
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
2.編譯
gcc sqlite_test.c -lsqlite3
3. 執行
int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
4. callback 函數 回調函數
int callback(void *NotUsed, int argc, char **argv, char **azColName)
void * 是指 sqlite3_exec callback 後面的參數
argc 滿足條件的返回結果的行乘以列 argc=行*列
argv 結果的某個內容 “jiangwenxiao”
azcolname 結果某個內容的表頭 NAME
#include <stdio.h>
#include <sqlite3.h>
int callback(void * notuse, int argc, char ** argv, char ** acolname)
{
int i;
for(i=0;i<argc;i++)
{
printf("colname: %s colvalue %s\n", acolname[i],argv[i]);
}
return 0;
}
int main(int argc, const char *argv[])
{
sqlite3 * db;
int ret;
char *errormsg=0;
ret=sqlite3_open("./test.db",&db);
if(ret)
{
printf("fail to open db\n");
return -1;
}
char *s="create table stu(NAME char(20),SEX char(20),C int,DS int,IO int,P int, NW int)";
ret=sqlite3_exec(db,s,NULL,NULL,&errormsg);
if(ret)
{
printf("fail to do exec: %s\n",errormsg);
sqlite3_free(errormsg);
}
s="insert into stu values('jiangwenxiao','genzhiboy',90,100,100,100,60)";
ret=sqlite3_exec(db,s,NULL,NULL,&errormsg);
if(ret)
{
printf("fail to do exec: %s\n",errormsg);
sqlite3_free(errormsg);
}
s="select * from stu";
ret=sqlite3_exec(db,s,callback,NULL,&errormsg);
if(ret)
{
printf("fail to do exec: %s\n",errormsg);
sqlite3_free(errormsg);
}
sqlite3_close(db);
return 0;
}