数据库的导入导出与备份.doc_第1页
数据库的导入导出与备份.doc_第2页
数据库的导入导出与备份.doc_第3页
数据库的导入导出与备份.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(1)数据导入 建立了Sqlite数据库后就要建立表输入数据了,多数时候数据量较大,手动输入不可能,必须用导入语句 导入逗号分隔csv格式数据首先建立一个表,比如test.db中建表test,如果表已经存在,可以利用命令.schema查看该表结构,比如sqlite.schema test,结果得到test表的结构,因为要导入的数据必须具有相似的结构,所以必须明了目标表的结构。create table test (id int primary key,value);比如test表具有下面的数据1|342|993|9904|390另一个csv文本文件为 test.csv,内容如下:5,5606,78利用“.import”命令可以导入该数据,在导入数据之前,利用“.separator ”命令转换sqlite默认分隔符,比如“.separator ,”这一句就将分隔符改变为逗号,与预导入数据一致才能顺利导入,然后键入下面语句.import test.csv test这样表test就多了从csv文件导入的两行记录,sqlite最新版本已经默认使用事件,因此海量数据导入也很轻松高效。同样的方法可以导入txt文本文件。(2)数据导出.out out.txtselect * from test;.output stdout以上三个语句将表test的全部内容查询结果创建并导入了文件out.txt,最后一句是使输出重新定位到屏幕,结束文件导出。(3)备份数据库.output filename 导出到文件中,如果该文件不存在,则自动创建 .dump 导出数据命令 .output stdout 返回输出到屏幕(进行其他操作)(4)导入(恢复)数据库sqlite3 test.db create table tbl1(one varchar(10), two smallint);sqlite insert into tbl1 values(hello!,10);sqlite insert into tbl1 values(goodbye, 20);sqlite select * from tbl1;hello!|10goodbye|20sqlite 你可以输入系统的结束字符(通常使用 Control-D)或者中断字符(通常使用 Control-C)来结束 sqlite3 程序。你要确保在每条SQL语句后面输入分号,Sqlite3 会寻找分号(;)来识别SQL语句是否完成。如果你漏掉了分号,sqlite3 会提示你继续输入,这个特性允许你输入多行的SQL命令。例如:sqlite CREATE TABLE tbl2 ( . f1 varchar(30) primary key, . f2 text, . f3 real . );sqlite 查询 SQLITE_MASTER 表一个SQLite数据库的数据结构是存贮在 sqlite_master 表中。你可以像其他数据表一样对 sqlite_master 表执行 “SELECT” 语句,例如:$ sqlite3 ex1SQlite vresion 3.3.10Enter .help for instructionssqlite select * from sqlite_master; type = table name = tbl1tbl_name = tbl1rootpage = 3 sql = create table tbl1(one varchar(10), two smallint)sqlite 但是你不能够对sqlite_master 表执行 DROP TABLE, UPDATE, INSERT or DELETE ,当你创建或者删除表的时候,sqlite_master 表会自动更新。你不能手工改变 sqlite_master 表。临时表的结构不会存贮到 sqlite_master 表中,临时表是存贮在另一个特殊的表,叫做 sqlite_temp_master。sqlite_temp_master 表本身就是临时的。将结果写到文件 默认情况下,sqlite3会将结果发送到标准输出,你可以使用 .output 来改变,只是将输出到的文件名作为参数传递给 .output,所有后面的查询结果都会写到文件里。开头使用 .output stdout 会再次写到标准输出,例如:sqlite .mode listsqlite .separator |sqlite .output test_file_1.txtsqlite select * from tbl1;sqlite .exit$ cat test_file_1.txthello|10goodbye|20$ 查询数据库结构sqlite3 提供了很多方便的命令用来查看数据库的结构,这些命令只是提供一个缩写。例如,查看数据库的数据表的一个列表,你可以输入 .tables:sqlite .tablestbl1tbl2sqlite .tables 命令和一下的查询相似:SELECT name FROM sqlite_master WHERE type IN (table,view) AND name NOT LIKE sqlite_%UNION ALL SELECT name FROM sqlite_temp_master WHERE type IN (table,view) ORDER BY 1事实上,如果你查看 sqlite3 的源代码(在 /src/shell.c 中),你会找到上面具体查询。.indices 命令以相似的方法列出一个特殊表的索引。.indices 命令以一个数据表的名字作为参数。左后是 .schema 命令,不带参数的 .schema 命令会显示用来创建数据库的 “CREATE TABLE and CREATE INDEX” 语句,如果你给一个表名为参数,他会显示用来创建表和索引(如果有的话)的 CREATE 语句。sqlite .schemacreate table tbl1(one varchar(10), two smallint)CREATE TABLE tbl2 ( f1 varchar(30) primary key, f2 text, f3 real)sqlite .schema tbl2CREATE TABLE tbl2 ( f1 varchar(30) primary key, f2 text, f3 real)在查询中使用 %s 来代替你的参数,可以让你查看数据库子集的结构。sqlite .schema %abc% 备份数据库到 ASCII 码的文本文件 使用 .dump 命令来导出数据库的内容到ASCII 文本文件。这个文件可以被还原回原来sqlite3的数据库。备份数据库的一个好方法:$ echo .dump | sqlite3 ex1 | gzip -c ex1.dump.gz 这里会生成一个名字为 ex1.dump.gz 的文件,这个文件包含你以后需要重构数据库的所有内容,为了重构这个数据可,你需要输入:$ zcat ex1.dump.gz | sqlite3 ex2 这个文本的格式是纯 SQL ,所以你也能够使用 .dump 命令来导出一个 SQLite 数据库到其他的流行的数据库引擎,像这样:$ createdb ex2$ sqlite3 ex1 .dump | psql ex2其他sqlite的特别用法sqlite可以在shell底下直接执行命令:sqlite3 film.db select * from film;输出 HTML 表格:sqlite3 -html film.db select * from film;将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论