sqlite学习笔记-未完成
2021/12/3 2:09:38
本文主要是介绍sqlite学习笔记-未完成,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- SQLite命令
- 点命令
- SQLite语法
- 数据类型
- 常用类型
- 亲和(Affinity)类型
- 亲和类型及类型名称
- boolean数据类型
- Date与Time数据类型
- 创建数据库
- 创建
- 导出
- 附加数据库
- 分离数据库
- 创建表
SQLite命令
点命令
使用.help可以获取点命令的清单
命令 | 选项 | 描述 |
---|---|---|
.backup | ?DB? FILE | 备份 DB 数据库(默认是 "main")到 FILE 文件。 |
.bail | ON|OFF | 发生错误后停止。默认为 OFF。 |
.databases | 列出数据库的名称及其所依附的文件。 | |
.dump | ?TABLE? | 以 SQL 文本格式转储数据库。 如果指定了 TABLE 表,则只转储匹配 LIKE 模式的 TABLE 表。 |
.echo | ON|OFF | 开启或关闭 echo 命令。 |
.exit | 退出 SQLite 提示符。 | |
.explain | ON|OFF | 开启或关闭适合于 EXPLAIN 的输出模式。 如果没有带参数,则为 EXPLAIN on,即开启 EXPLAIN。 |
.header(s) | ON|OFF | 开启或关闭头部显示。 |
.help | 显示消息。 | |
.import | FILE TABLE | 导入来自 FILE 文件的数据到 TABLE 表中。 |
.indices | ?TABLE? | 显示所有索引的名称。 如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表的索引。 |
.load | FILE ?ENTRY? | 加载一个扩展库。 |
.log | FILE|off | 开启或关闭日志。FILE 文件可以是 stderr(标准错误)/stdout(标准输出)。 |
.mode | MODE | 设置输出模式,MODE 可以是下列之一:
|
.nullvalue | STRING | 在 NULL 值的地方输出 STRING 字符串。 |
.output | FILENAME | 发送输出到 FILENAME 文件。 |
.output | stdout | 发送输出到屏幕。 |
STRING... | 逐字地输出 STRING 字符串。 | |
.prompt | MAIN CONTINUE | 替换标准提示符。 |
.quit | 退出 SQLite 提示符。 | |
.read | FILENAME | 执行 FILENAME 文件中的 SQL。 |
.schema | ?TABLE? | 显示 CREATE 语句。 如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表。 |
.separator | STRING | 改变输出模式和 .import 所使用的分隔符。 |
.show | 显示各种设置的当前值。 | |
.stats | ON|OFF | 开启或关闭统计。 |
.tables | ?PATTERN? | 列出匹配 LIKE 模式的表的名称。 |
.timeout | MS | 尝试打开锁定的表 MS 毫秒。 |
.width | NUM NUM | 为 "column" 模式设置列宽度。 |
.timer | ON|OFF | 开启或关闭 CPU 定时器。 |
sqlite> .databases main: E:\myfile\python\pycharm\test\sqlite3.db sqlite> sqlite> .dump book PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE book( id int primary key, sort int, name text, price real, category int, foreign key (category) references category(id) on update cascade on delete cascade ); INSERT INTO book VALUES(2,3,'Python Intro',17.5,2); COMMIT; sqlite>
格式化输出
sqlite>.header on sqlite>.mode column sqlite>.timer on sqlite>
SQLite语法
语法 | 说明 |
---|---|
大小写 | SQLite不区分大小写,但个别命令要区分,比如GLOB和glob是不相同的。 |
注释 |
|
语句 | 以关键字开始,以分号结束,常用关键字
|
数据类型
常用类型
SQLite中,每一列、每个变量、每个表达式都有相关的数据类型。
可以在创建表时使用这些数据类型。
存储类 | 描述 |
---|---|
NULL | 值是一个 NULL 值。 |
INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
BLOB | 值是一个 blob 数据,完全根据它的输入存储。 |
亲和(Affinity)类型
亲和类型 | 描述 |
---|---|
TEXT | |
NUMERIC | |
INTEGER | |
REAL | |
NONE |
亲和类型及类型名称
boolean数据类型
SQLite没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)。
Date与Time数据类型
SQLite 没有一个单独的用于存储日期和/或时间的存储类,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。
创建数据库
创建
PS E:\myfile\python\pycharm\test> sqlite3.exe test.db SQLite version 3.27.2 2019-02-25 16:06:06 Enter ".help" for usage hints. sqlite> sqlite> .databases main: E:\myfile\python\pycharm\test\test.db
导出
PS E:\myfile\python\pycharm\test> sqlite3 test.db .dump > test.db.sql PS E:\myfile\python\pycharm\test> cat test.db.sql PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; COMMIT; PS E:\myfile\python\pycharm\test>
还可以从.sql文件中恢复数据库
$sqlite3 test.db < test.db.sql #注,该命令在window下不成功,原因不明。
附加数据库
PS E:\myfile\python\pycharm\test> sqlite3 sqlite3.db SQLite version 3.27.2 2019-02-25 16:06:06 Enter ".help" for usage hints. sqlite> sqlite> .database main: E:\myfile\python\pycharm\test\sqlite3.db sqlite> sqlite> attach database 'test.db' as 'test'; sqlite> sqlite> .database main: E:\myfile\python\pycharm\test\sqlite3.db test: E:\myfile\python\pycharm\test\test.db sqlite>
注意,main和temp这两个名称是保留的,所以不能被attach
sqlite> attach database 'test.db' as 'temp'; Error: database temp is already in use sqlite> sqlite> attach database 'test.db' as 'main'; Error: database main is already in use sqlite>
分离数据库
无法分离main和temp
如果是内存中的数据库或临时数据库,detach后对应数据库将会被摧毁,内容将会丢失。
sqlite>.databases seq name file --- --------------- ---------------------- 0 main /home/sqlite/testDB.db 2 test /home/sqlite/testDB.db 3 currentDB /home/sqlite/testDB.db sqlite> sqlite> DETACH DATABASE 'currentDB'; sqlite> .databases seq name file --- --------------- ---------------------- 0 main /home/sqlite/testDB.db 2 test /home/sqlite/testDB.db
创建表
这篇关于sqlite学习笔记-未完成的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-12-29"SQLite注入获取表名技巧"
- 2023-12-27SQLite数据库注入方式及安全性
- 2022-09-16Sqlite 并发读写的演进之路
- 2022-09-07修改ASQLite3D2010 支持中文显示
- 2022-09-0502-mORMot框架样例学习-02 - Embedded SQLite3 ORM(SQLite3 数据库)
- 2022-08-22基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper
- 2022-08-21【数据库】SQLite数据库 工具
- 2022-08-06SQLite 错误:database disk image is malformed - 数据库磁盘映像格式不正确
- 2022-07-30学生信息管理系统(QT+SQLITE实现)
- 2022-07-22SQLite 建表、增删改查 简单操作