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关键字。那么,在这类数据库里要实现类似“取前几条记录”的功能,有没
热门专题
热门推荐
公安部就电子数据取证规则公开征求意见,拟将网络安全等行政案件纳入适用范围,并规范取证流程与核心概念。新规特别明确了获取密码、调取通讯内容等特殊程序,需经严格审批并保障当事人权利。配套法律文书也同步优化,以构建更规范且注重权利保障的取证体系。
理想L9和LIvis的定价策略刚掀起波澜,小鹏GX的最终价格就给出了更猛烈的回应——从近40万元的预售价直降至27万元起。用小鹏产品矩阵负责人吴安飞的话说,这叫“9系的产品,8系的价格”。 这12万元的下调,效果堪称立竿见影。发布会次日,小鹏集团港股股价一度大涨超8%。更关键的是市场订单:上市12小
5月21日,环塔拉力赛新疆且末赛段大营迎来了一位备受瞩目的访客——知名零售企业胖东来的创始人于东来。他专程前往长城汽车车队营地,与参赛车手及后勤团队进行了深度交流。据悉,于东来此次自驾越野之旅已历时一月,随行车队中包含多款国产越野车型。经过实地驾驶与多维度对比,他对以长城汽车为代表的国产越野车品质给
比特币官方入口在哪里?一个核心门户的权威指南 说起比特币,很多人第一反应是去找它的“官网”或“官方App”。但这里有个关键点需要先理清:比特币本质上是一种去中心化的全球数字货币,它不属于任何一家公司或机构,而是由一个庞大的、遍布全球的社区共同维护。因此,它并没有传统意义上由某个企业运营的“官方网站”
Ring-2 5-1T是什么 在当今大模型技术激烈竞争的赛道上,追求更长的上下文处理能力和更强大的深度推理性能已成为核心焦点。近日,蚂蚁集团旗下的inclusionAI团队重磅开源了Ring-2 5-1T模型,这是一个参数规模高达万亿级别的混合线性思考大语言模型。该模型基于先进的Ling 2 5架构





