mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL.AB公司,2008年被Sun公司收购,开放源码;
select * from stu where score = 80; //查讯满足条件score = 80 的记录有哪些;
select * from stu where score = 80 and name = “zhangsan”; 查询满足条件score=80与name=” zhangsan”的记录有哪些;
select * from stu where score = 80 or name = “lisi”;
#include
#include
#include
#define DATABACK "stu.db"
int do_insert(sqlite3 * db){
int id = 0;
char name[32] = {0};
int score = 0;
char sql[128] = {0};
char *errmsg;
printf("Input id(输入ID) : ");
scanf("%d",&id);
getchar();
printf("Input name(输入姓名) : ");
scanf("%s",name);
getchar();
printf("Input score(输入成绩) : ");
scanf("%d",&score);
getchar();
sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) !=SQLITE_OK){
printf("%s\n",errmsg);
return -1;
}else{
printf("sqlite3 insert success !!!");
}
return 0;
}
int do_delete(sqlite3 * db){
char sql[128] = {};
int id;
char * errmsg;
printf("Input id(需要删除学生记录 的ID) :");
scanf("%d",&id);
getchar();
sprintf(sql,"delete from stu where id=%d;",id);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){
printf("%s\n",errmsg);
return -1;
}else {
printf("sqlite3 delete success !!!");
}
return 0;
}
int do_update(sqlite3 * db){
char sql[128] = {};
int id;
int score;
char * errmsg;
printf("Input id(输入需要修改的score学生的ID) :");
scanf("%d",&id);
getchar();
printf("score 修改为 : ");
scanf("%d",&score);
getchar();
sprintf(sql,"update stu set score=%d where id=%d;",score,id);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){
printf("%s\n",errmsg);
return -1;
}else {
printf("sqlite3 update success !!!");
}
}
#if 0 //使用回调函数的方式 查询 数据库
int callback(void *para,int f_num , char **f_value,char** f_name){
int i = 0;
for(i = 0;i
— 在编程中使用接口 打开并创建数据库或,除了直接用查询接口查询该表格外;在ubuntu系统命令下 要在 stu.db的路径下使用 sqlite3 stu.db 命令 才能 .table 以及 .schema 查看该表的内容;
— 在打开数据库后,创建表格时,创建的表格的 要事先不存在的表格,不然会报错;
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 : 错误信息指针 的地址;
— 返回值 : 成功返回0 ,失败返回错误码;
int sqlite3_get_table(
sqlite3 *db, /* An open database */
const char *zSql, /* SQL to be evaluated */
char ***pazResult, /* Results of the query */
int *pnRow, /* Number of result rows written here */
int *pnColumn, /* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);
void sqlite3_free_table(char **result);
这是一个为向后兼容性而保留的遗留接口。不建议使用此接口。
int do_query1(sqlite3 * db){
char sql[128] = {};
char *errmsg;
char **resultp;
int nrow;
int ncloumn;
int index;
int i,j;
sprintf(sql,"select * from stu;");
if(sqlite3_get_table(db,sql,&resultp,&nrow,&ncloumn,&errmsg) != SQLITE_OK){
printf("%s\n",errmsg);
}else{
printf("Query done. \n");
}
for(j = 0;j