首页 > 技术知识 > 正文

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

1 SQLite 点命令

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

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

完整的点指令如下:

复制.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指令可以查看当前的各种设置:

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

2 SQLite 创建数据库

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

2.1 方式1:sqlite3+数据库名

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

.

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

2.2 方式2:使用复制.open命令

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

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

2.3 将数据库导出到文件

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

复制sqlite3 test1.db .dump > test1.sql

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

复制sqlite3 test1.db < test1.sql 玩转SQLite2:SQLite命令行基本操作4

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 玩转SQLite2:SQLite命令行基本操作5

也可以使用复制.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 ); 玩转SQLite2:SQLite命令行基本操作6

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

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

end

审核编辑:汤梓红

猜你喜欢