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

举报
码农爱学习 发表于 2021/12/10 23:59:26 2021/12/10
【摘要】 本篇介绍SQLite的命令行基本操作

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

SQLite 点命令

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

SQLite 创建数据库

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

方式1:sqlite3+数据库名

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

.

方式2:使用.open命令

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

将数据库导出到文件

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

sqlite3 test1.db .dump > test1.sql

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

sqlite3 test1.db < test1.sql

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 

也可以使用.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
);

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。