Sqlite3的下载
Sqlite3 整活有点东西,直接看图吧。
操作系统:windows 10
如果你是第一次用sqlite3,直接会给你干自闭。一般情况下你只会下载 序号2
的zip文件,然后写代码的时候,会发现头文件呢?没错,你又要回来下载 序号1
的zip文件。找了一份example代码,编译的时候有报错,链接失败。你就会考虑lib文件呢?想得到sqlite3.lib文件也没有那么简单,需要一顿操作。看这边文章吧 vs2017 vs2019配置sqlite3连接引擎(驱动)指南(一)vs2019篇 ,你可能会问这边文章是vs2017、vs2019编译的lib文件,你没有这些IDE怎么办?除了去下载,没有别的办法...
你以为这就完了吗? 不,代码运行成功后,想验证一下db文件中的内容。这时你又要回去下载 序号3
的zip文件。
example 代码
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char **argv)
{
sqlite3 *db = NULL;
char *zErrMsg = NULL;
int rc = 0;
const char *database_name = "AddressBook.db";
rc = sqlite3_open(database_name, &db);
if (rc)
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
const char *sql_create = "DROP TABLE IF EXISTS telephone;"
"CREATE TABLE telephone("
"Name TEXT NOT NULL,"
"PhoneNum CHAR(11) NOT NULL,"
"Birthday TEXT,"
"Nation TEXT DEFAULT 'China');";
rc = sqlite3_exec(db, sql_create, NULL, NULL, &zErrMsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
sqlite3_close(db);
return 1;
}
const char *sql_insert = "INSERT INTO telephone(Name, PhoneNum, Birthday) VALUES('ZhanSan', '10086', '1990-01-01 12:00:00');"
"INSERT INTO telephone(Name, PhoneNum, Birthday) VALUES('LiSi', '10010', '1991-01-01 12:00:00');"
"INSERT INTO telephone(Name, PhoneNum, Birthday) VALUES('WangWu', '10000', '1992_01-01 12:00:00');";
rc = sqlite3_exec(db, sql_insert, NULL, NULL, &zErrMsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}
Sqlite3的操作
-
帮助
.help
-
查询table
.table
-
sql语句 例如
select * from telephone;
-
显示模式 例如
.mode column
-
显示create sql语句
.schema
-
退出sqlite3
.quit