本文共 4271 字,大约阅读时间需要 14 分钟。
要在Linux系统中安装并使用SQLite,可以按照以下步骤操作:
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev
sudo apt-get install sqlitebrowser
sqlite3 库进行数据库操作。.sql 转换为 .dbsqlite3 your_database.db
.read 或类似命令读取 .sql 文件内容并执行:.read your_database.sql.exit
.sql 文件中的 SQL 语句转换为 .db 文件。.db 转换为 .sqlsqlite3 your_database.db
.output 和 .dump 命令将数据库导出为 SQL 文件:.output your_database.sql.dump
.dump tb_name
.开头).help:列出所有可用命令。.quit 或 .exit:退出 SQLite 命令行。.schema:查看表结构。.database:显示当前打开的数据库。.table:查看表中的数据。sqlite3 wangl.db
CREATE TABLE stu (ni INTEGER, name TEXT, score REAL)
CREATE TABLE stu (ni INTEGER PRIMARY KEY, name TEXT, score REAL)
INSERT INTO stu VALUES(1, "wangliang", 99.0)
INSERT INTO stu VALUES(2, "xiaoming", 97.0), (3, "xiaohong", 93.0)
INSERT INTO stu (ni, score) VALUES(4, 45);INSERT INTO stu (name) VALUES("wanguo");SELECT * FROM stu
SELECT ni FROM stu
SELECT ni, name FROM stu WHERE score < 60
SELECT * FROM stu WHERE score > 60 AND ni < 4 OR ni = 2
SELECT * FROM stu ORDER BY name ASC;SELECT * FROM stu ORDER BY ni DESC;
SELECT * FROM stu WHERE name LIKE "xiao%";
%:匹配零个或多个任意字符。_:匹配单个字符。SELECT * FROM stu WHERE name LIKE "%g%";SELECT * FROM stu WHERE name LIKE "%h%";SELECT * FROM stu WHERE name LIKE "xiao_ing";
DELETE FROM stu
DELETE FROM stu WHERE ni = 3
CREATE TABLE stu1 AS SELECT ni, name FROM stu;DROP TABLE stu;ALTER TABLE stu1 RENAME TO stu;
UPDATE stu SET name = "xiaowang" WHERE ni = 1;
SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name = 'stu';
SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name;
SELECT schema_name FROM sqlite_master WHERE table_name = 'stu';
int sqlite3_open(const char *path, sqlite3 **db);
int sqlite3_close(sqlite3 *db);
int sqlite3_exec(sqlite3 *db, const char *sql, void (*callback)(void *, int, char **, char **), void *pdb, char **errmsg);
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***result, int *nrow, int *ncolumn, char **errmsg);
#include#include #include char *test = "test string";int main() { sqlite3 *数据库句柄 = NULL; char *sql = NULL; char *errmsg = NULL; int ret; // 打开数据库 ret = sqlite3_open("my.db", &数据库句柄); if (ret != SQLITE_OK) { fprintf(stderr, "打开数据库失败:%s\n", sqlite3_errmsg(数据库句柄)); return -1; } // 创建表 sprintf(sql, "CREATE TABLE IF NOT EXISTS stu (ni INTEGER PRIMARY KEY, name TEXT, score REAL)"); ret = sqlite3_exec(数据库句柄, sql, NULL, NULL, &errmsg); if (ret != SQLITE_OK) { fprintf(stderr, "创建表失败:%s\n", errmsg); return -1; } // 插入数据 int ni = 2; char name[20] = "xiaoming"; float score = 80; sprintf(sql, "INSERT INTO stu VALUES(%d, '%s', %f)", ni, name, score); ret = sqlite3_exec(数据库句柄, sql, NULL, NULL, &errmsg); if (ret != SQLITE_OK) { fprintf(stderr, "插入数据失败:%s\n", errmsg); return -1; } // 查询数据 ret = sqlite3_exec(数据库句柄, "SELECT * FROM stu", [](void *param, int f_num, char **f_value, char **f_name) { int i; for (i = 0; i < f_num; i++) { printf("%s: %s\n", f_name[i], f_value[i]); } return 0; }, &test, &errmsg); if (ret != SQLITE_OK) { fprintf(stderr, "查询失败:%s\n", errmsg); return -1; } // 关闭数据库 sqlite3_close(数据库句柄); return 0;}
SQLite支持多种数据类型,其中包括文本、数字、日期时间、Blob等,具体如下:
datetime:存储日期时间。text:存储文本数据。binary:存储二进制数据。image:存储变长的二进制数据,通常用于图片文件。blob:存储二进制大对象(Binary Large Object),用于存储大型文件或二进制数据。timestamp:存储数据库范围内唯一的数码,类似于唯一标识符。uniqueidentifier:存储全局唯一标识符(GUID)。转载地址:http://aojhz.baihongyu.com/