加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite数据库简介

发布时间:2020-12-12 23:48:08 所属栏目:百科 来源:网络整理
导读:简介 SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的 SQL 数据库引擎。其特点是高度便携、使用方便、结构紧凑、高效、可靠。与其他数据库管理系统不同, SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保 SQLite 的二进制文

简介

SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。其特点是高度便携、使用方便、结构紧凑、高效、可靠。与其他数据库管理系统不同,SQLite的安装和运行非常简单,在大多数情况下-只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑。袖珍型的SQLite竟然可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上。在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程想数据库执行写操作之前,必须获得独占锁。在获得独占锁之后,其他的读或写操作将不会再发生。SQLite采用动态数据类型,当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储,SQLite称这为“弱类型”。但有一个特例,如果是INTEGERPRIMARYKEY,则其他类型不会被转换,会报一个“datatypemissmatch”的错误。

概括来讲,SQLite支持NULLINTEGERREALTEXTBLOB数据类型,分别代表空值、整型值、浮点值、字符串文本、二进制对象。

常见命令

4.一些有用的SQLite命令

显示表结构:sqlite>.schema[table]

获取所有表和视图:

sqlite>.tables获取指定表的索引列表:

sqlite>.indices[table]

导出数据库到SQL文件:

sqlite>.output[filename]sqlite>.dumpsqlite>.outputstdout

从SQL文件导入数据库:

sqlite>.read[filename]

格式化输出数据到CSV格式:

sqlite>.output[filename.csv]sqlite>.separator,sqlite>select*fromtest;从CSV文件导入数据到表中:

sqlite>createtablenewtable(idintegerprimarykey,valuetext);sqlite>.import[filename.csv]newtable

备份数据库:/*usage:sqlite3database].dumpfilename*/sqlite3mytable.db.dumpbackup.sql

恢复数据库:

/*usage:sqlite3[database]<[filename]*/sqlite3mytable.db<backup.sql

创建数据库:

[sql]viewplaincopy

1.D:&;sqlite3test.db

2.SQLiteversion3.7.7.12011-06-2817:39:05

3.Enter".help"forinstructions

4.EnterSQLstatementsterminatedwitha";"

5.sqlite>.databases

6.seqnamefile

7.

8.----------------------------------------------------------------------------

9.

10.0mainD:test.db

11.

12.sqlite>

我们执行了sqlite3命令,参数就是数据库的名称,如果该数据库已存在,则使用,如果不存在,则新建一个,这里我们简单的在当前位置创建了test.db,你也可以在任何存在的并且可写的目录下创建自己的数据库。(如果对于SQLite的命令不太熟悉,可以执行“.help”命令列出所有的命令清单进行查看)。

创建表:

copy

1.sqlite>CREATETABLEperson(idINTEGERPRIMARYKEYAUTOINCREMENT,nameVARCHAR(20),ageSMALLINT);

2.sqlite>.tables

3.person

4.sqlite>.schemaperson

5.6.sqlite>

在我们创建表之后,可以用“.tables”命令去查看已有的表,用“.schema”命令去查看表的结构,如果后面没有表名做参数,则将会输出所有表的建表语句。

插入数据:

INSERTINTOpersonVALUES(NULL,255)">'john',30);

2.sqlite>SELECT*FROMperson;

3.1|john|30

从.sql文件导入数据:

copy

1.sqlite>.readtest.sql

FROMperson;

3.1|john|30

4.2|david|35

5.3|henry|40

分析数据库使用状态:

copy

1.D:&;sqlite3_analyzertest.db

2./**Disk-SpaceUtilizationReportFortest.db

3.

4.Pagesizeinbytes....................1024

5.Pagesinthewholefile(measured)....4

6.Pagesinthewholefile(calculated)..4

7.Pagesthatstoredata.................4100.0%

8.Pagesonthefreelist(perheader)....00.0%

9.Pagesonthefreelist(calculated)....00.0%

10.Pagesofauto-vacuumoverhead.........00.0%

11.Numberoftablesinthedatabase......4

12.Numberofindices.....................0

13.Numberofnamedindices...............0

14.Automaticallygeneratedindices.......0

15.Sizeofthefileinbytes.............4096

16.Bytesofuserpayloadstored..........390.95%

17....

备份数据库:

备份SQLite数据库有两种方法。如果数据库正在使用中,则应从命令行界面使用.dump命令。这样可以创建一个包含必要命令和数据的文件,从而重新创建数据库。.dump命令也可以用于备份数据库表。

copy

1.sqlite>.dump

2.PRAGMAforeign_keys=OFF;

3.BEGINTRANSACTION;

4.SMALLINT);

INTO"person"VALUES(1,153)">6.VALUES(2,255)">'david',35);

7.VALUES(3,255)">'henry',40);

8.DELETEFROMsqlite_sequence;

9."sqlite_sequence"VALUES('person',3);

10.COMMIT;

11.sqlite>.outputdump.sql

12.sqlite>.dump

13.sqlite>

我们可以指定输出的目标为一个文件,然后再使用命令时,输出信息就会写入指定的文件,如果想恢复为标准输出,可以这样设定:

outputstdout

2.sqlite>.dump

3.PRAGMAforeign_keys=OFF;

TRANSACTION;

FROMsqlite_sequence;

11.COMMIT;

如果数据库没有处于使用状态,则可以直接将数据库文件复制到安全位置。

最后,我们可以使用“.quit”或“.exit”退出SQLite。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读