Linux sqlite3 基本命令
备注:本文所有操作均在root用户下进行。
接下来,我们将开始SQLite3的实战之旅。需要说明的是,尽管本文演示基于root权限以确保流程的完整性,但在实际生产环境或日常开发中,强烈建议使用具备相应权限的普通用户账户进行操作,这遵循了最小权限原则,是保障系统安全的最佳实践。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
1、安装sqlite3
在Ubuntu系统中部署SQLite3数据库环境极为便捷。您只需通过终端执行以下apt-get命令,即可完成安装:
# apt-get install sqlite3
安装过程结束后,为了验证SQLite3是否成功安装并确认其版本,可以运行版本查询命令:
# sqlite3 -version
2、sqlite3常用命令
成功安装后,掌握其命令行工具的使用至关重要。SQLite3交互界面提供了一套独特的“点命令”(Dot-Commands),以点号(.)开头,用于数据库管理、环境配置及信息查看,这与标准的SQL语句有本质区别,请注意区分。
首先,我们需要连接到一个数据库。在终端中执行以下命令,会在当前目录创建(或打开已有的)一个名为test.db的数据库文件,并进入SQLite3命令行交互模式:
# sqlite3 test.db
连接成功后,提示符将变为 sqlite>。此时,您可以输入以下实用的点命令:
- 查看数据库信息:
sqlite> .database(此命令会显示当前连接的所有数据库文件及其路径) - 查看所有表的创建语句:
sqlite> .schema - 查看指定表的创建语句:在
.schema后加上表名即可:sqlite> .schema table_name - 以SQL形式导出表数据:
sqlite> .dump table_name(此功能常用于数据备份或迁移) - 设置显示分隔符:
sqlite> .separator symble。例如,若希望查询结果以冒号分隔显示,可执行:sqlite> .separator : - 设置显示模式:默认的
list模式可能不够清晰,可切换为column模式:sqlite> .mode column,使数据按列对齐,提升可读性。其他模式可通过.help查看。 - 万能帮助:若忘记命令,随时输入
sqlite> .help,即可获取完整的命令列表与简要说明。 - 调整列宽:
sqlite> .width width_value。例如,设置每列显示宽度为2个字符:sqlite> .width 2 - 显示当前所有设置:
sqlite> .show,可一次性查看当前的分隔符、显示模式、列宽等配置参数。 - 退出终端:操作完毕后,输入
sqlite> .quit或sqlite> .exit均可安全退出SQLite3交互环境。
3、sqlite3指令
了解完管理命令,我们进入核心部分——SQL数据操作指令。一个关键规则是:所有SQL指令必须以分号(;)作为结束符,否则SQLite会等待后续输入。单行注释使用两个减号(--)。
以下是一个包含多种约束的建表示例:
sqlite> create table student_table(Stu_no integer PRIMARY KEY, Name text NOT NULL, Id integer UNIQUE, Age integer CHECK(Age>6), School text DEFAULT ‘xx小学’);
这条语句创建了一个结构严谨的学生信息表,综合运用了主键、非空、唯一、检查及默认值等约束。
3.1 sqlite3存储数据的类型
SQLite采用动态类型系统,但为保持结构清晰,我们通常为字段声明亲和类型(Type Affinity),主要分为以下五类:
- NULL:表示空值。
- INTEGER:带符号整数,根据数值大小占用1、2、3、4、6或8字节存储空间。
- REAL:浮点数,采用8字节IEEE浮点数标准存储。
- TEXT:文本字符串,存储格式依赖于数据库编码(如UTF-8、UTF-16)。
- BLOB:二进制大对象,完全按照输入的原样存储,不做任何转换。
3.2 sqlite3存储数据的约束条件
数据类型定义了数据的种类,而约束条件则强制数据必须满足的规则,是保障数据完整性与一致性的关键:
- PRIMARY KEY - 主键:
1)该列的值必须唯一,不可重复,常用于标识每条记录,如学号。
2)主键会自动创建索引,能极大提升基于该列的查询速度。
3)若主键为INTEGER类型,可将其设置为自增(AUTOINCREMENT),简化数据插入操作。 - NOT NULL - 非空:为该约束的列插入NULL值会导致操作失败,确保关键字段必有值。
- UNIQUE - 唯一:确保该列中所有值都是唯一的(允许存在一个NULL值),适用于如身份证号等字段。
- CHECK - 条件检查:允许定义自定义验证规则。例如,
CHECK(Age>6)确保年龄大于6岁。 - DEFAULT - 默认值:当插入数据未指定该列值时,自动填充预设的默认值,能有效简化数据录入,适用于如“默认学校”这类场景。
3.3 sqlite3常用指令
掌握了基础概念后,以下是数据库日常增删改查(CRUD)的常用SQL指令详解:
1)建立数据表
create table table_name(field1 type1, field2 type1, ...);
示例:创建一个基础的学生信息表。
create table student_info(stu_no integer primary key, name text);
2)添加数据记录
insert into table_name(field1, field2, ...) values(val1, val2, ...);
示例:向学生表中插入一条新记录。
Insert into student_info(stu_no, name) values(0001, ‘alex’);
3)修改数据记录
update table_name set field1=val1, field2=val2 where expression;
WHERE子句用于精确指定需要更新的行,缺失此条件可能导致全表数据被意外修改。
示例:更新学号为0001的学生姓名。
update student_info set name=‘hence’ where stu_no=0001;
4)删除数据记录
delete from table_name [where expression];
重要警告:若不指定WHERE条件,将删除表中所有数据,此操作不可逆,执行前务必确认。
示例:删除学号为0001的学生记录。
delete from student_info where stu_no=0001;
5)查询数据记录
数据查询是数据库的核心功能,SELECT语句灵活且强大:
基本语法:select columns from table_name [where expression];
- 查询所有数据:
select * from table_name; - 限制输出条数:
select * from table_name limit val;(常用于快速预览或分页) - 升序排序:
select * from table_name order by field asc; - 降序排序:
select * from table_name order by field desc; - 条件查询:这是最常用的查询方式。
精确匹配:select * from table_name where expression;
多值匹配(IN):select * from table_name where field in (‘val1’, ‘val2’, ‘val3’);
范围匹配(BETWEEN):select * from table_name where field between val1 and val2; - 统计记录总数:
select count (*) from table_name; - 去重查询:
select distinct field from table_name;
当需要查看某列所有不重复的值时,DISTINCT关键字非常有用。
6)建立索引
当数据表记录量庞大时,为频繁查询的列创建索引可以显著提升检索性能,其作用类似于书籍的目录。
create index index_name on table_name(field);
示例:为学生表的stu_no字段创建索引。
create index student_index on student_table(stu_no);
索引创建后,SQLite在执行相关查询时会自动利用索引加速,效果显著。
7)删除数据表或索引
移除不再需要的数据库对象:
删除表:drop table table_name;
删除索引:drop index index_name;
严重警告:删除操作将永久移除表结构、索引及其所有数据,且无法撤销,请谨慎操作。
相关攻略
备注:本文所有操作均在root用户下进行。 接下来,我们将开始SQLite3的实战之旅。需要说明的是,尽管本文演示基于root权限以确保流程的完整性,但在实际生产环境或日常开发中,强烈建议使用具备相应权限的普通用户账户进行操作,这遵循了最小权限原则,是保障系统安全的最佳实践。 1、安装sqlite3
如何在SQLite中实现“TOP N”查询:LIMIT子句详解 如果你是从SQL Server或Access转用SQLite,可能会习惯性地去用SELECT TOP 10这样的语法。但实际操作时就会发现,SQLite并不直接支持TOP关键字。那么,在这类数据库里要实现类似“取前几条记录”的功能,有没
热门专题
热门推荐
2026年4月2日,一场始于订单的“双向奔赴” 汽车圈最近上演了一出颇有温度的品牌互动,起因是一张来自社交平台的购车订单。一位原奥迪车主公开晒出了小米SU7的订单截图,并向相关负责人致以问候。这原本只是一条个人动态,却没承想,引发了一连串超出预期的友好回应。 消息传出后,上汽奥迪的反应堪称迅速且巧妙
特斯拉2026年Q1财报解读:业绩稳健增长,自动驾驶与机器人战略加速落地 2026年第一季度,特斯拉再次向市场展示了其强劲的发展动能。在全球电动汽车市场,特斯拉产量成功突破40 8万辆,实现同比12 7%的稳健增长;同期交付量达到35 8万辆,同比增长6 5%。与此同时,特斯拉储能业务表现突出,总装
四月一日,沙盒游戏我的世界推出一次特别更新,引发广泛关注 话说回来,四月的第一天,经典沙盒游戏《我的世界》,就整了个“大活儿”。一项听起来颇有碘伏性的设计调整,在社区内炸开了锅:游戏直接移除了沿用已久的仓库系统,改为所有物品都能随手放在地面,想用的时候捡起来就行。 仓库功能向来是此类建造型游戏的核心
巨鲸再出手:千万美元级ETH悄然离场 市场总是静水深流。就在今天,链上数据捕捉到一笔值得玩味的动向。根据链上分析师Onchain Lens的监测,大约三小时前,一个地址尾号为“24d4”的巨鲸,从知名交易所Kraken一口气提取了4,472枚ETH。按当前市价估算,这笔资产价值接近一千万美元。 这可
京东京造再推黄金配件新品:磁吸支架以亲民价格亮相 关注京东京造的朋友一定还记得此前推出的黄金手机壳,因其独特设计与高纯度金材质引发了不少讨论。如今品牌再度升级,带来了一款更贴近日常使用的“轻量化”黄金配件——黄金气囊手机磁吸支架,进一步降低了黄金数码配件的入手门槛。 产品解析:含金量与设计亮点 这款





