您的位置:首页 > 编程语言 > Python开发

SQLite3创建数据库的方法 和 SQLite从Excel文件中导入数据 及 python/qpython sqlite 中文 乱码

2015-04-14 14:40 1266 查看
参考自:http://blog.chinaunix.net/uid-1844931-id-2981048.html


            http://blog.csdn.net/a535537066/article/details/6694620
            http://blog.csdn.net/geekwangminli/article/details/8007114

之一 有关SQLite3使用:

1.将sqlite3.exe文件放在任何位置(本人放在E:\Php)

2.在CMD下进入到E:\Php下(cd .. cd E:\php)

PS:进入其他驱动盘不需要打cd命令,比如进入D盘打D:\就可以了。cd命令是打开文件目录下的文件。

3.在CMD命令提示符下输入sqlite3.exe test.db(test.db是数据库名)回车,执行完后,命令提示符自动跳转到"SQLITE>"状态。

注意:这时test.db数据库确实已经创建好了但是还是个临时所以现在要输入SQL命令 ,这时还是看不到这个数据库!等表格创建或关闭sqlite3

4.create table book(id integer primary key, roomname nvarchar(20), mapname nvarchar(20)),再往表中填充数据值后,就可以看到E:\php下的这个数据库文件了。

5.如果下次还要使用此数据库时仍然使用sqlite3.exe test.db,即可进入此数据库

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

之二 将Excel文件导入sqlite数据库,下面是几个步骤:

1、sqlite数据库中数据库表的定义:

create table book(id integer primary key, roomname nvarchar(20), mapname nvarchar(20));

  PS:请注意语句末尾加上分号回车运行哦!!!切记!!!
  PS:有时会出现“ INSERT failed: datatype mismatch”错误,导致excel表不能完全导入。这是由于主键的问题。只需重新创建一次表并在创建表时将红色的“primary key”删除即可。

2、将Excel之中存储的数据另存为csv格式bookroom.csv,注意不要带表头,只要数据就行。

       下面的文字转码是非常重要,由于excel默认是gb2312编码或其他形式,需要将其转为utf-8编码形式,不然导入sqlite中后,中文必然是乱码的。具体操作如下:将excel保存成.csv格式,关闭文件,用系统自带的记事本打开刚才保存的.csv文件,然后另存为UTF-8格式文本(在保存对话框下侧的编码中选择utf-8即可)。经过自己多次实践,在将csv文件转换为utf-8时,采用记事本转换方式保存后,sqlite数据库文件第一条记录总是不能正常读出来,其它条目也常常产生中文字符乱码。
      
经自己多次实践尝试,建议在将excel的.csv文件转为uft8格式时,优先采用软件notepad++ (用EmEditor转换 时/后 也容易出错导致中文乱码情况),打开软件[b]notepad++
后,在[/b]"格式"菜单里选择 “ 以UTF-8 无 BOM 格式编码”就可以了!!!

导出之后的数据如下:

30001,文理馆流通部,WenLiGuanLiuTongBu.png
30002,经管院图书分馆,JingGuanYuanTuShuFenGuan.png

3、利用sqlite3的import命令将数据从文件导入到表中,在执行import之前需要用.separator命令设置数据的分隔符逗号,否者默认的分割符号是竖线'|'。

sqlite3 test.db
sqlite> .separator ','
sqlite> .import bookroom.csv bookroom

import命令的格式:

.import <输入文件名> <插入表名>

 

4、这样数据就导入到了bookroom表中了,如下测试(注意sql语句末尾加上分号):

sqlite> select * from bookroom;





大功告成了!

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

之三 excel文件导入sqlite数据库,用python查询结果显示乱码的情况,请参阅如下经典文章:

解决Excel数据导入sqlite中的中文乱码问题

PS:建议在转换为utf8格式的步骤时,采用软件notepad++将excel的.csv文件转换为“ 以UTF-8 无 BOM 格式编码”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐