当前位置: 首页
数据库
Linux sqlite3 基本命令

Linux sqlite3 基本命令

热心网友 时间:2026-04-30
转载

备注:本文所有操作均在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> .quitsqlite> .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;
严重警告:删除操作将永久移除表结构、索引及其所有数据,且无法撤销,请谨慎操作。

来源:https://www.jb51.net/article/44545.htm

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
sql语句中数据库别名命名和查询问题解析

sql语句中数据库别名命名和查询问题解析

查询出低于菜品平均价格的菜品信息 (展示出菜品名称、菜品价格) 问题1:为什么下面代码不对 select d name,d price,a vg(d price) from dish as d where d price < a vg(d price) 这行代码一拿出来,很多初学者都会犯迷糊,但其

时间:2026-04-30 20:26
SQLDeveloper表复制的实现

SQLDeveloper表复制的实现

步骤 当数据量比较大时,相比一条条地执行INSERT语句,这种方法效率的提升是立竿见影的。不过,有个关键点需要留心:具体的操作逻辑是直接覆盖目标表原有数据,还是进行增量合并,这个取决于你的工具设置和表结构。稳妥起见,强烈建议你先自己创建一个测试用的Demo表演练一遍,摸清实际行为,避免在生产环境中间

时间:2026-04-30 20:26
SQLServer数据库表结构使用SSMS和Navicat导出教程

SQLServer数据库表结构使用SSMS和Navicat导出教程

在数据库管理和开发过程中,导出表结构是一项常见的任务,尤其是在数据库设计、数据迁移、备份以及生成文档时。本文将详细介绍如何使用 SQL Server Management Studio (SSMS) 和 Na vicat 来导出 SQL Server 数据库的表结构,包括表名、字段名、数据类型、注释

时间:2026-04-30 20:26
MySQL8中的保留关键字陷阱之当表名“lead”引发SQL语法错误的解决方案

MySQL8中的保留关键字陷阱之当表名“lead”引发SQL语法错误的解决方案

问题现象 很多开发者可能都踩过这个坑:一个原本运行得好好的业务系统,在执行下面这条再简单不过的查询时,突然就报错了。 SELECT COUNT(*) AS total FROM lead WHERE deleted_flag = 0 数据库抛出的错误非常明确,直指语法问题: You ha ve an

时间:2026-04-30 20:25
Mysql因为字段字符集编码的问题导致索引没生效的解决方案

Mysql因为字段字符集编码的问题导致索引没生效的解决方案

深入解析SQL查询性能问题:字符集不一致导致的索引失效 SELECT s department_name AS departmentName, cps purchase_type AS purchaseType FROM settlement_records s LEFT JOIN common_p

时间:2026-04-30 20:25
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程