SQLite数据库表结构和数据的导入导出

来源:互联网 发布:网络机顶盒开机没反应 编辑:程序博客网 时间:2024/05/16 05:52

SQLite简介:

   SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL 和PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信。

 

   而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的尺寸,远远比其它任何数据库系统都小.这些特点使得其成为在需要高效地应用数据库的任务中一个非常方便的工具.

SQLite优势:

 . 除了速度和效率,SQLite还有其它好多的优势使得其能成为许多任务中一个理想的解决方案.因为SQLite的数据库都是简单文件,因此无须一个管理队伍花时间来构造复杂的权限结构来保护用户的数据库.因为权限通过文件系统自动进行.这也同时意味着(数据库空间的大小只与环境有关,与本身无关)无段特殊的规则来了解用户磁盘空间.用户可以从创建他们想要的任意多的数据库和对其对这些数据库的绝对控制权而得到好处.

 

 . 数据库就是一个文件的事实使用SQLite可以轻易地在服务器间移动.SQLite也除去了需要大量内存和其它系统资源的伺候进程.即使当数据库在大量地使用时也是如此.

=============================================================

最近研究嵌入式系统,所以对sqllite的用也多,先作以下几点分享:

全部导出 
sqlite3 data.db 
>.output dd.sql 
>.dump 

全部导入 
sqlite3 mydb.db 
>.read dd.sql 

平时使用官方提供的sqlite3.exe工具来操作 sqlite的数据库 
进入管理: 
sqlite3.exe d:/test.db //假设数据是 d:/test.db 
>.databases //显示所有数据库 和 MySQL的 show databases;  
>.tables //显示当前数据库的表格 和 mysql 的show tables;  
>.schment tablename;  //显示表格结构 和mysql的 SHOW Create TABLE tbl_name 
>.output c://1.sql  //导出当前数据库的 sql语句 和mysql的 mysqldump 
>.dump 
>.import c://1.sql //导入 //mysql 用source 
=================== 
导入 
命令: .import 
sqlite> .import 文件名 表名 
注1: 不要忘了开头的点 
注2: 这条语句不能用分号结束. 非SQL不需要分号结束. 
注3: 需要查看默认的分隔符separator. 必须一致. 如果不一致可能导致sqlite字段分割错误. 
        查看分隔符使用命令  .show , 如果不一致可直接修改, 比如: 
        sqlite>.separator "," 
        将分隔符转为逗号. 
举例1: 
将文件a.csv中的数据导入表 tab_xx. (a.csv中字段以逗号分割) 
sqlite> .separator "," 
sqlite> .import a.csv tab_xx 
sqlite> 
导入结束. 

导出 
实现方式: 将输出重定向至文件. 
命令: .output 
sqlite> .output a.txt 
然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件. 
结束后,输入 
sqlite> .output stdout 
将输出重定向至屏幕. 
举例2: 
将 tab_xx 中的数据导出到文件a.txt 
sqlite> .output a.txt 
sqlite> select * from tab_xx; 
sqlite> .output stdout 
导出完毕.

附录参考:SQLite 安装 | 菜鸟教程http://www.runoob.com/sqlite/sqlite-installation.html 里面详细地介绍了Sqlite嵌入式数据库的安装、建库、建表、更新表结构以及数据导入导出等等详细过程记录 


0 0