官网:https://sqlite.org/download.html
下载代码安装三步走:
./configure // ./configure --help查看安装参数设置,学习configure的配置,明白安装后include、lib、bin等文件的位置 make make install
学习sql基本语法,各个数据库基本相同 http://www.w3cschool.cc/sqlite/sqlite-tutorial.html
常用函数:
int sqlite3_open( const char *filename,/* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: sqlite db handle */ ); typedef int (*sqlite3_callback)( void*,/* Data provided in the 4th argument of sqlite3_exec() */ int,/* The number of columns in row */ char**,/* An array of strings representing fields in the row */ char** /* An array of strings representing column names */ ); 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 */ ); int sqlite3_close(sqlite3*);
例子:
#include <stdio.h> #include <stdlib.h> #include <sqlite3.h> #define DB_FILENAME "/home/suo/Desktop/sqlite/datadir/sqlite.db" static int flag = 0; static int callback(void *userData,int columnNum,char **columnText,char **columnName) { int index; if (userData && !flag++) { fprintf(stdout,"---------%s------\n",(const char*)userData); for (index=0; index<columnNum; index++) { printf("%s\t",columnName[index]); } printf("\n"); } for(index=0; index<columnNum; index++){ printf("%s\t",columnText[index] ? columnText[index] : "NULL"); } printf("\n"); return 0; } int main(int argc,char* argv[]) { sqlite3 *db; char *zErrMsg = 0; int rc; char *sql; rc = sqlite3_open(DB_FILENAME,&db); if( rc != sqlITE_OK){ fprintf(stderr,"Can't open database: %s\n",sqlite3_errmsg(db)); exit(0); }else{ fprintf(stderr,"Opened database successfully\n"); } sql = "CREATE TABLE COMPANY("\ "ID INT PRIMARY KEY NOT NULL,"\ "NAME TEXT NOT NULL,"\ "AGE INT NOT NULL,"\ "ADDRESS CHAR(50),"\ "SALARY REAL);"; rc = sqlite3_exec(db,sql,callback,(void *)sql,&zErrMsg); if(rc != sqlITE_OK){ fprintf(stderr,"sql error :%s\n",zErrMsg); sqlite3_free(zErrMsg); } else { fprintf(stdout,"Table created successfully\n"); } sql = "INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY) "\ "VALUES(1,'Paul',32,'California',20000.00); "\ "INSERT INTO COMPANY(ID,SALARY) "\ "VALUES(2,'Allen',25,'Texas',15000.00);" "INSERT INTO COMPANY(ID,SALARY) "\ "VALUES(3,'Teddy',23,'Norway',20000.00);" "INSERT INTO COMPANY(ID,SALARY) "\ "VALUES(4,'Mark','Rick-Mond',65000.00);"; rc = sqlite3_exec(db,"sql error: %s","Records created successfully\n"); } sql = "SELECT * FROM COMPANY;"; rc = sqlite3_exec(db,"Select records successfully\n"); } sqlite3_close(db); return 0; }
对应Makefile:
#! /usr/make rm=/bin/rm -f CC = gcc DEFS = PROGNAME = testsqlite INCLUDES = -I /home/suo/Desktop/sqlite/include DEFINES += $(INCLUDES) $(DEFS) CFLAGS = $(DEFINES) -g -Wall -O2 LDFLAGS = SRCS = testsqlite.c OBJS = testsqlite.o LIBS = -L./lib -lsqlite3 .cpp.o: $(rm) $@ $(CC) $(CFLAGS) -c $*.cpp all: $(PROGNAME) $(PROGNAME) : $(OBJS) $(CC) $(CFLAGS) -o $(PROGNAME) $(OBJS) $(LDFLAGS) $(LIBS) clean: $(rm) $(OBJS) $(PROGNAME) core *~
执行结果:
Opened database successfully Table created successfully Records created successfully ---------SELECT * FROM COMPANY;------ ID NAME AGE ADDRESS SALARY 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rick-Mond 65000.0 Select records successfully原文链接:https://www.f2er.com/sqlite/200582.html