sqlite数据库简介
简介 SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。其特点是高度便携、使用方便、结构紧凑、高效、可靠。与其他数据库管理系统不同,SQLite的安装和运行非常简单,在大多数情况下-只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑。袖珍型的SQLite竟然可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上。在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程想数据库执行写操作之前,必须获得独占锁。在获得独占锁之后,其他的读或写操作将不会再发生。SQLite采用动态数据类型,当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储,SQLite称这为“弱类型”。但有一个特例,如果是INTEGERPRIMARYKEY,则其他类型不会被转换,会报一个“datatypemissmatch”的错误。 概括来讲,SQLite支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,分别代表空值、整型值、浮点值、字符串文本、二进制对象。 常见命令 4.一些有用的SQLite命令 获取所有表和视图: 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;
FROM 11.COMMIT; 如果数据库没有处于使用状态,则可以直接将数据库文件复制到安全位置。 最后,我们可以使用“.quit”或“.exit”退出SQLite。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 不1ms不是好AFA,全闪存阵列XtremIO优化Oracle数据库性能
- ruby-on-rails – 504网关超时nginx / 1.4.6(Ubuntu)
- VB.NET 统计文件夹内文件行数
- ruby-on-rails-3 – 为什么Rails没有选择我的自定义邮件传递
- 使用React和Flask开发一个留言板
- c# – 防止Visual Studio添加默认引用和用于新类
- cocos2d-x v3.3开发环境配置
- “AJAX”只需要一个CSRF令牌 – 只有“application / json”
- 自动根据a标签的设置替换成开源的flash视频播放器(用于phpc
- swift – 如何修复错误“无法使用类型的参数列表调用’find