SQLite 命令详解

SQLite 命令详解

SQLite 是一款轻量级的数据库管理系统,以其小巧、高效、易于使用而广受欢迎。本文将详细介绍 SQLite 的常用命令,帮助您更好地理解和运用这款数据库。

1. 数据库创建与连接

1.1 创建数据库

要创建一个 SQLite 数据库,可以使用以下命令:

sql 复制代码
CREATE DATABASE database_name;

1.2 连接数据库

创建数据库后,需要连接到数据库才能进行操作。以下命令用于连接数据库:

sql 复制代码
ATTACH DATABASE 'database_name.db' AS 'alias';

其中,database_name.db 是数据库文件名,alias 是数据库别名。

2. 表操作

2.1 创建表

创建表是数据库操作的基础。以下命令用于创建一个名为 students 的表,包含 id、name 和 age 三个字段:

sql 复制代码
CREATE TABLE students (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER
);

2.2 查询表结构

要查看表结构,可以使用以下命令:

sql 复制代码
PRAGMA table_info(students);

2.3 插入数据

向表中插入数据,可以使用以下命令:

sql 复制代码
INSERT INTO students (name, age) VALUES ('张三', 20);

2.4 查询数据

查询表中的数据,可以使用以下命令:

sql 复制代码
SELECT * FROM students;

2.5 更新数据

更新表中的数据,可以使用以下命令:

sql 复制代码
UPDATE students SET age = 21 WHERE name = '张三';

2.6 删除数据

删除表中的数据,可以使用以下命令:

sql 复制代码
DELETE FROM students WHERE name = '张三';

2.7 删除表

删除整个表,可以使用以下命令:

sql 复制代码
DROP TABLE students;

3. 索引操作

3.1 创建索引

创建索引可以加快查询速度。以下命令为 students 表的 name 字段创建索引:

sql 复制代码
CREATE INDEX idx_name ON students (name);

3.2 查看索引

查看已创建的索引,可以使用以下命令:

sql 复制代码
PRAGMA index_list(students);

3.3 删除索引

删除索引,可以使用以下命令:

sql 复制代码
DROP INDEX idx_name;

4. 事务操作

SQLite 支持事务操作,以下命令用于事务处理:

sql 复制代码
BEGIN TRANSACTION;

-- 执行一系列操作

COMMIT;

在事务中,如果发生错误,可以使用以下命令回滚事务:

sql 复制代码
ROLLBACK;

5. 数据库备份与恢复

5.1 备份数据库

要备份数据库,可以使用以下命令:

sql 复制代码
BACKUP DATABASE database_name TO 'backup.db';

5.2 恢复数据库

要恢复数据库,可以使用以下命令:

sql 复制代码
ATTACH DATABASE 'backup.db' AS 'backup';

然后,将 backup 数据库中的数据复制到 database_name 数据库:

sql 复制代码
INSERT INTO students SELECT * FROM backup.students;

最后,断开备份数据库的连接:

sql 复制代码
DETACH DATABASE backup;

6. 总结

本文详细介绍了 SQLite 的常用命令,包括数据库创建、连接、表操作、索引操作、事务操作和数据库备份与恢复。通过学习这些命令,您可以更好地掌握 SQLite 数据库的使用。

相关推荐
Funlang12 分钟前
给机器写的 JavaScript 造个笼子
开发语言·javascript·ecmascript
普通人617 分钟前
PHP文件读写完全指南
开发语言·php·1024程序员节
坤坤子吖1 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
一晌小贪欢2 小时前
Python基础:第 09 篇 · while 循环:重复直到不满足
开发语言·c++·python·数据可视化·面向对象·python办公
xiaoye-duck2 小时前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
一条大祥脚3 小时前
CuTe 与 CuTe DSL:从 C++ 模板元编程到 Python DSL 的 GPU 编程演进
开发语言·c++·python·cutlass·cute·cute dsl
FRing033 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
旖旎夜光3 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
starzy19904 小时前
深入理解Scala嵌套函数:作用域封装之道
开发语言·scala
Sakura_j_h_4 小时前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc