0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

玩转SQLite2:SQLite命令行基本操作

码农爱学习 来源:码农爱学习 作者:码农爱学习 2022-09-23 08:59 次阅读

本篇介绍SQLite的命令行基本操作

1 SQLite 点命令

SQLite 的点命令,是一些以点为开头的命令:

poYBAGMsbueAfGI3AAIrLKXAj7U589.png

完整的点指令如下:

.archive ... Manage SQL archives

.auth ON|OFF Show authorizer callbacks

.backup ?DB? FILE 备份DB数据库(默认是 "main")到 FILE 文件

.bail on|off 发生错误后停止,默认为 OFF

.binary on|off Turn binary output on or off. Default OFF

.cd DIRECTORY Change the working directory to DIRECTORY

.changes on|off Show number of rows changed by SQL

.check GLOB Fail if output since .testcase does not match

.clone NEWDB Clone data into NEWDB from the existing database

.connection [close] [#] Open or close an auxiliary database connection

.databases 列出数据库的名称及其所依附的文件

.dbconfig ?op? ?val? List or change sqlite3_db_config() options

.dbinfo ?DB? Show status information about the database

.dump ?OBJECTS? 以 SQL 文本格式转储数据库

.echo on|off 开启或关闭 echo 命令

.eqp on|off|full|... Enable or disable automatic EXPLAIN QUERY PLAN

.excel Display the output of next command in spreadsheet

.exit ?CODE? 以CODE码退出SQLite提示符

.expert EXPERIMENTAL. Suggest indexes for queries

.explain ?on|off|auto? 开启或关闭适合于 EXPLAIN 的输出模式,默认是:auto

.filectrl CMD ... Run various sqlite3_file_control() operations

.fullschema ?--indent? Show schema and the content of sqlite_stat tables

.headers on|off 开启或关闭头部显示

.help ?-all? ?PATTERN? 显示帮助

.import FILE TABLE 导入来自 FILE 文件的数据到 TABLE 表中

.imposter INDEX TABLE Create imposter table TABLE on index INDEX

.indexes ?TABLE? 显示所有索引的名称

.limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT

.lint OPTIONS Report potential schema issues.

.load FILE ?ENTRY? 加载一个扩展库

.log FILE|off 开启或关闭日志,可以是stderr或stdout

.mode MODE ?TABLE? 设置输出模式

.nonce STRING Disable safe mode for one command if the nonce matches

.nullvalue STRING 在 NULL 值的地方输出 STRING 字符串

.once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE

.open ?OPTIONS? ?FILE? 关闭存在的数据库或重新打开文件

.output ?FILE? Send output to FILE or stdout if FILE is omitted

.parameter CMD ... Manage SQL parameter bindings

.print STRING... 逐字地输出 STRING 字符串

.progress N Invoke progress handler after every N opcodes

.prompt MAIN CONTINUE 替换标准提示符

.quit 退出 SQLite 提示符

.read FILE Read input from FILE

.recover Recover as much data as possible from corrupt db.

.restore ?DB? FILE Restore content of DB (default "main") from FILE

.save FILE Write in-memory database into FILE

.scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off

.schema ?PATTERN? Show the CREATE statements matching PATTERN

.selftest ?OPTIONS? Run tests defined in the SELFTEST table

.separator COL ?ROW? Change the column and row separators

.session ?NAME? CMD ... Create or control sessions

.sha3sum ... Compute a SHA3 hash of database content

.shell CMD ARGS... Run CMD ARGS... in a system shell

.show 显示各种设置的当前值

.stats ?ARG? 开启或关闭统计

.system CMD ARGS... Run CMD ARGS... in a system shell

.tables ?TABLE? List names of tables matching LIKE pattern TABLE

.testcase NAME Begin redirecting output to 'testcase-out.txt'

.testctrl CMD ... Run various sqlite3_test_control() operations

.timeout MS 尝试打开锁定的表 MS 毫秒

.timer on|off 开启或关闭SQL定时器

.trace ?OPTIONS? Output each SQL statement as it is run

.vfsinfo ?AUX? Information about the top-level VFS

.vfslist List all available VFSes

.vfsname ?AUX? Print the name of the VFS stack

.width NUM1 NUM2 ... Set minimum column widths for columnar output

例如,使用.show指令可以查看当前的各种设置:

pYYBAGMsbvGAK6imAAAxSU2f5ME884.png

2 SQLite 创建数据库

使用sqlite3 命令来创建数据库有两种方式

2.1 方式1:sqlite3+数据库名

例如,使用sqlite3 test1.db创建test1数据库,然后使用.databases查看数据库

.

poYBAGMsbviAIeIgAABiYcHH3Ho882.png

2.2 方式2:使用.open命令

例如,使用.open test2.db创建test2数据库

poYBAGMsbv6AZfSJAABhlCY3aX8690.png

2.3 将数据库导出到文件

使用 .dump 点命令导出数据库到文本文件中

sqlite3 test1.db .dump > test1.sql

也可以从生成的 testDB.sql 恢复:

sqlite3 test1.db < test1.sql
pYYBAGMsbyiAdY3JAAAy_vvnTiY034.png

3 SQLite 创建表

可以通过CREATE TABLE语句来创建表,其基本语法为:

CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

例如,创建一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:

sqlite> CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

然后可以使用.tables命令来验证表是否已成功创建

sqlite>.tables
COMPANY 
pYYBAGMsb2CAOvxGAABsk4EiT0c312.png

也可以使用.schema命令得到表的完整信息

sqlite>.schema COMPANY
CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);
poYBAGMsb3eANYojAAAneeXS5kA293.png

最后将数据库导出到.sql文件查看:

pYYBAGMsb32AaW7bAABxU99NE7c014.png

end

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQlite
    +关注

    关注

    0

    文章

    78

    浏览量

    15761
  • 命令行
    +关注

    关注

    0

    文章

    75

    浏览量

    10343
收藏 人收藏

    评论

    相关推荐

    玩转SQLite3:SQLite图形软件基本操作

    上篇文章:,介绍了sqlite3命令行操作来创建数据库与表,该方法需要有一定的数据库基础知识。
    的头像 发表于 09-25 08:49 2156次阅读
    <b class='flag-5'>玩转</b><b class='flag-5'>SQLite</b>3:<b class='flag-5'>SQLite</b>图形软件基本<b class='flag-5'>操作</b>

    玩转SQLite4:SQLite数据插入与查看

    本篇介绍了数据库中数据的插入(使用图形界面和命令行操作两种方式),命令行中数据显示格式的配置修改,以及SQLite的两个基本语句(select语句和insert语句)。
    的头像 发表于 09-25 08:50 3078次阅读
    <b class='flag-5'>玩转</b><b class='flag-5'>SQLite</b>4:<b class='flag-5'>SQLite</b>数据插入与查看

    玩转SQLite8:运算符与表达式

    本篇介绍了SQLite的基础运算符与表达式,并通过命令行的方式执行sql语句进行测试验证,在实际开发中,可使用C/C++ API函数来使用。
    的头像 发表于 09-27 08:56 2087次阅读
    <b class='flag-5'>玩转</b><b class='flag-5'>SQLite</b>8:运算符与表达式

    在STM32实现命令行

    工作中的开发环境都是基于linux命令行交互,作为命令行的重度使用者,玩单片机也要使用命令行工具,百度了一些命令行工具,有几个不错的开源 cmd 交互工具,主要看了 finsh
    发表于 12-09 11:32 1609次阅读

    Linux sqlite3的基本命令操作

    sqlite3一款主要用于嵌入式的轻量级数据库,本文旨在为熟悉sqlite3基本命令提供技术文档。
    发表于 07-16 06:29

    Sqlite移动嵌入式数据库Sqlite的日常SQL操作语句是什么?

    Sqlite移动嵌入式数据库Sqlite的日常SQL操作语句是什么?
    发表于 12-27 07:37

    caxa命令行中的应用

    caxa命令行中的应用 命令行对于大多用户来说往往只是输入数据的作用,但是其中的奥妙还有很多,下面就给大家
    发表于 10-18 18:18 2161次阅读

    博达环网配置命令行

    博达工业交换要环网配置命令行
    发表于 12-27 16:24 0次下载

    CMD的命令行高级教程

    CMD的命令行高级教程
    发表于 10-24 08:31 30次下载
    CMD的<b class='flag-5'>命令行</b>高级教程

    维基链的命令行是如何高效快速的对维基链节点进行操作

    的,WaykiChain也为开发者提供了相应的工具,开发者通过此命令行工具可以高效快速的对维基链节点进行操作。在维基链中,此命令行工具被称为coind。
    发表于 06-24 11:15 860次阅读

    Golang基于flag库实现一个命令行工具

    Golang 标准库中的 flag 库提供了解析命令行选项的能力,我们可以基于此来开发命令行工具。
    的头像 发表于 10-28 09:26 965次阅读

    创建SQlite的方法

    创建SQlite的方法 SQLite是一种轻量级的嵌入式关系型数据库,它可以适用于各种不同的平台和操作系统。SQLite的使用非常广泛,特别是当无需配置大型数据库服务器,仅需要一个本地
    的头像 发表于 08-28 17:15 3029次阅读

    linux虚拟机怎么调出命令行

    在Linux虚拟机中调出命令行界面,可以通过以下步骤实现: 打开虚拟机,进入到Linux系统。 在桌面或应用菜单中找到终端或命令行图标,点击打开。 输入命令行指令,执行相应的操作。 另
    的头像 发表于 11-08 11:28 1517次阅读

    linux切换到命令行模式

    在Linux中,可以通过以下步骤切换到命令行模式: 打开终端。可以在应用菜单中找到终端或命令行终端。 在终端中输入命令“exit”或“logout”,然后按回车键。 系统会提示您输入管理员密码。输入
    的头像 发表于 11-13 16:47 750次阅读

    idea如何输入命令行参数

    在许多软件开发和系统管理的任务中,我们经常需要向应用程序传递命令行参数。命令行参数是在运行时传递给程序的值,用于指定程序的行为和配置选项。本文将详细介绍如何在不同的编程语言和操作系统中输入命令
    的头像 发表于 12-06 15:01 339次阅读