1、常用指令(所有的命令都以 "."开始)
(1)数据库安装:
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev
(2)数据库的创建和打开:
sqlite3 <数据库的名字>.db,有则打开,没有就创建
(3)帮助手册:.help
(4)退出数据库:.quit
(5)查看当前是哪一个数据库:.database
(6)查看数据库中有哪些表:.tables
(7)查看表的结构:.schema
2、SQL语句(语句后面需要加上分号;)
(1)创建新表:
create table
(3)插入数据:insert into
(5)从表中删除数据:delete from
注意:where语句是用来确定要删除的数据的某个条件或某些条件。等于、大于和小于都可以
(6)按指定的条件查询数据库中的数据:select * from
(7)更新表中的数据:update
(8)删除数据表:drop table
(1)查询特定的数据列:select name from table_name;(查询姓名的列)
(2)查询的的数据进行排序:select num,name from student order by num ASC ;(DESC降序、ASC升序)
3、SQL编程 API使用
函数原型:sqlite3_exec
int sqlite3_exec(
sqlite3 *db, /* 用于执行SQL的数据库连接 */
const char *sql, /* 要执行的SQL语句 */
int (*callback)(void*,int,char**,char**), /* 回调函数 */可以为NULL
void *arg, /* 传递给回调函数的参数 */可以为NULL
char **errmsg /* 用于存储错误信息的指针 */可以为NULL
);
int (*sqlite3_callback)(
void*, /* 第一个参数是传递给回调函数的用户定义数据 */
int, /* 列数 */
char**, /* 字符串值数组 */
char** /* 列名数组 */
);
#include "stdio.h"
#include "sqlite3.h"
int main()
{
//打开数据库
sqlite3 *db;
int ret = sqlite3_open("test.db", &db);
if(ret == -1)
{
printf("open error\n");
return -1;
}
//关闭数据库
sqlite3_close(db);
return 0;
}
#include "stdio.h"
#include "sqlite3.h"
int main()
{
//打开数据库
sqlite3 *db;
int ret = sqlite3_open("test.db", &db);
if(ret == -1)
{
printf("open error\n");
return -1;
}
//创建名为student的表格(没有名为student的表时创建)
char *sql = "create table if not exists student(ID integer, Name text, Score integer);";
ret = sqlite3_exec(db, sql, NULL, NULL, NULL);
if(ret == -1)
{
printf("exec error\n");
return -1;
}
//关闭数据库
sqlite3_close(db);
return 0;
}
#include "stdio.h"
#include "sqlite3.h"
#include
#include
//回调函数
int get_MySqdata(void *arg, int col, char **str, char **name)
{
printf("表格有%d列\n", col);
for(int i = 0; i < col; i++)
{
printf("查询的结果是:%s\n", str[i]);
}
return 0;//需要有返回值,不然会报错;
}
int main()
{
//打开数据库
sqlite3 *db;
int ret = sqlite3_open("test.db", &db);
if(ret == -1)
{
printf("open error\n");
return -1;
}
//创建名为student的表格(没有名为student的表时创建)
char *sql = "create table if not exists student(ID integer, Name text, Score integer);";
ret = sqlite3_exec(db, sql, NULL, NULL, NULL);
if(ret == -1)
{
printf("exec error\n");
return -1;
}
char msg[100];
//插入数据进表格
int ID;
char Name[32] = {0};
int Score = 0;
for(int i = 0; i < 3; i++)
{
bzero(msg, 100);
printf("请输入你要插入的学生信息:学号、姓名、成绩\n");
scanf("%d", &ID);
scanf("%s", Name);
scanf("%d", &Score);
sprintf(msg, "insert into student(ID, Name, Score) values(%d, '%s', %d);", ID, Name, Score);
ret = sqlite3_exec(db, msg, NULL, NULL, NULL);
if(ret!=SQLITE_OK)
{
printf("执行插入语句失败!\n");
return -1;
}
}
bzero(msg,100);
strcpy(msg, "select * from student;");
ret = sqlite3_exec(db, msg, get_MySqdata, NULL, NULL);
if(ret!=SQLITE_OK)
{
printf("执行查询语句失败!\n");
return -1;
}
//关闭数据库
sqlite3_close(db);
return 0;
}