Sqlite3的入门操作

发布时间 2023-08-17 11:47:07作者: eiSouthBoy

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