7. SQLite基础信息¶
7.1. SQLite语法¶
SQLite 是不区分大小写的,但也有一些命令是大小写敏感的,比如 GLOB 和 glob 在 SQLite 的语句中有不同的含义。
所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等, 所有的语句以分号(;)结束。
注释是以两个连续的 “-” 字符(ASCII 0x2d)开始, 并扩展至下一个换行符(ASCII 0x0a)或直到输入结束,以先到者为准。
也可以使用 C 风格的注释,以 “/*” 开始,并扩展至下一个 “*/” 字符对或直到输入结束,以先到者为准。 SQLite的注释可以跨越多行。
其他的DML, DDL, DQL语法在下文进行讲解。
7.2. SQLite点命令¶
.archive … | Manage SQL archives |
.auth ON|OFF | Show authorizer callbacks |
.backup ?DB? FILE | 备份 DB 数据库(默认是 “main”)到 FILE 文件。 |
.bail on|off | 发生错误后停止。默认为 OFF。 |
.binary on|off | 是否输出二进制结果。默认为 OFF。 |
.cd DIRECTORY | 切换工作目录到DIRECTORY |
.changes on|off | 显示执行的SQL影响的行的数量 |
.check GLOB | Fail if output since .testcase does not match |
.clone NEWDB | 将当前数据库的数据复制到数据库NEWDB |
.databases | 列出数据库的名称及其所依附的文件。 |
.dbconfig ?op? ?val? | List or change sqlite3_db_config() options |
.dbinfo ?DB? | 显示数据库状态信息 |
.dump ?TABLE? … | 以 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? | 退出 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? | 显示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 | 开启或关闭日志。FILE文件可以是 stderr(标准错误)/stdout(标准输出)。 |
.mode MODE ?TABLE? |
|
.nullvalue STRING | 在 NULL 值的地方输出 STRING 字符串。 |
.once (-e|-x|FILE) | Output for the next SQL command only to FILE |
.open ?OPTIONS? ?FILE? | Close existing database and reopen FILE |
.output ?FILE? | 发送输出到 FILE 文件或者 stdout |
.parameter CMD … | Manage SQL parameter bindings |
.print STRING… | 逐字地输出 STRING 字符串。 |
.progress N | Invoke progress handler after every N opcodes |
.prompt MAIN CONTINUE | 替换标准提示符。 |
.quit | 退出 |
.read FILE | 读取FILE |
.recover | 尽可能恢复数据库数据 |
.restore ?DB? FILE | Restore content of DB (default “main”) from FILE |
.save FILE | 将内存内数据库写入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? | 改变列、行的分隔符 |
.sha3sum … | 对数据库内容计算SHA3的hash值 |
.shell CMD ARGS … | Run CMD ARGS… in a system shell |
.show | 显示各种设置的当前值。 |
.stats ?on|off? | 显示统计,开启或关闭统计。 |
.system CMD ARGS … | Run CMD ARGS… in a system shell |
.tables ?TABLE? | 列出匹配 LIKE 模式的表的名称。 |
.testcase NAME | Begin redirecting output to ‘testcase-out.txt’ |
.testctrl CMD … | Run various sqlite3_test_control() operations |
.timeout MS | 尝试打开锁定的表 MS 毫秒。 |
.timer on|off | 开启或关闭 CPU 定时器(SQL timer)。 |
.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 … | 为 “column” 模式设置列宽度。 |
7.3. SQLite创建数据库¶
$sqlite3 [DatabaseName].db
SQLite创建表
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
columnN datatype,
);
创建完之后。便可以使用.tables查看相关的表,使用..schema tablename查看表具体信息。使用DROP TABLE database_name.table_name即可删除表,一旦删除表中信息将无法找回了。
SQLite的增、删、改、查和之前学过的MySQL、Oracle语法一样,均是采用标准SQL格式, 简单如下图所示:
更新
查询read 系统级信息 所有表名 表内列名 表schema
删除 delete