应用SQLite Expert Professional软件实现SQLite导入CSV数据

目的:将EXCEL表中的数据改入SQLITE数据库中

工具:SQLite Expert Professional。

一、通过CSV文件向SQLite数据库表追加记录。

(一)用Excel制作CSV格式数据文件。

1、按照SQLite数据库中数据表字段,Excel数据表中制作与之其相同的表列。

2、Excel数据表行相当于数据库表中的行,录入数据。

3、将Excel数据表另存为CSV格式文件。

注意:使用Excel编辑含有身份证号码CSV文件,需要采用“数据导入”方法,以文本格式导入到Excel数据表中,否则身份证号码识别为数字,并以科学计数法表示,保存后无法恢复为身份证号。【加载转换数据皆可】

应用SQLite Expert Professional软件实现SQLite导入CSV数据_第1张图片

4、CSV文件用文本编辑器打开。

以下第5条说明只针对自己编写的个性小程序:

5、针对我自己编写的小程序而言,可以使用程序自动输出的”全部劳动纠纷统计.CSV"文件作模板,用Excel——数据——导入CSV/文本(防止身份证号由文本格式变成数字格式),打开此文件并编辑 :

(1)追加数据行、变更数据。

(2)改造Excel数据表的列名,与SQLite数据库对应的表字段名相符。

注:我自己所编程序自动生成的CSV文件,因统计需要在原SQLite数据库表字段名的基础上,又新生成临时列:如:

申请合计 裁定合计 案件数量 结案数量 付清案件数量 年度

,并不原数据库表列,所以要删除。

(3)完成后另外为CSV文件格式。

 

(二)应用SQLite Expert Professional导入数据

注意:Encoding选项选择UTF-8,否则CSV文件含有汉字,导入后变成????符号。

下图如果Options选项,勾选Delete existing data实现删除原记录导入新记录;否则追加记录。

勾选Fielld names on fist row选项,CSV文件第一行为字段名,否则第一行开始为记录文件。

应用SQLite Expert Professional软件实现SQLite导入CSV数据_第2张图片

二、SQLite数据更新

(一)修改原有记录

(1)更新指定字段名:UPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2  where 条件

(2)多行语句用分号分隔。

(3)可使用Excel数据表、记事本两个工具构造多行语句。

应用SQLite Expert Professional软件实现SQLite导入CSV数据_第3张图片

例:因为用python写的程序语句中,申请统计的状态是True,不是TRUE,如果大小写不一致,内置判断条件无法正常执行。下面语句将全部记录的“申请统计”、“裁定统计”、“结案”值更新为“True"。注意命令的字符、字母的全角、半角。

 

UPDATE t_labordispute SET 申请统计 = 'True' where 申请统计 = 'TRUE'
UPDATE t_labordispute SET 裁定统计 = 'True' where 裁定统计 = 'TRUE'
UPDATE t_labordispute SET 结案 = 'True' where 结案 = 'TRUE'

例2:更新”综合申请“字段值。

UPDATE t_labordispute SET 申请失业金损失 = 0  ,综合申请=	150158	where 	申请人证号='10319940809' and	rowid>318	;			
UPDATE t_labordispute SET 申请失业金损失 = 0  ,综合申请=	150158	where 	申请人证号='12231986081' and	rowid>318	;			
UPDATE t_labordispute SET 申请失业金损失 = 0  ,综合申请=	150158	where 	申请人证号='102197910152711' and	rowid>318	;		

(二)INSERT INTO追加一条或多条记录

INSERT INTO [t_labordispute]([rowid], [laborid], [申请人姓名], [申请人证号], [争议初始日期], [提请争议日期], [争议结束日期], [法规收案号], [发生地区], [申请人所在公司], [被申请人], [被申请人证号], [经济补偿金申请], [申请工资], [申请加班工资], [申请无合同双倍工资], [申请生活费], [申请年休假], [申请工伤待遇], [申请赔偿金], [申请社保], [申请失业金损失], [综合申请], [裁定经济补偿金], [裁定工资], [裁定加班工资], [裁定无合同双倍工资], [裁定年休假], [裁定工伤待遇], [裁定赔偿金], [裁定失业金损失], [裁定生活费], [裁定社保费], [裁定综合], [诉讼编码], [案件经办律师], [解决方式], [结果性质], [原始申请人], [非担责方证号], [行政文号], [申请统计], [裁定统计], [结案], [是否给付], [诚信等级], [经典案例], [卷宗号], [案件关键词], [备注]) VALUES(333, 333, '王在', '18107215812', '1899-12-30', '1899-12-30', '1899-12-30', '美好', '河南省州市', 'DDS', '有限公司', 'SDDD', 0, 41640, 0, 0, 0, 0, 0, 0, 0, 24000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'M26', '王双军', '', '公司担责', '王在', '1810721581212', '92号', 1, 0, 0, '', 'D', 'N', 'None', '失业赔偿及拖欠工资', 'None');

用INSERT INTO追加记录很构造语句很不方便(字符型字段值加引号费时间),建议使用SQLite Expert Fessional导入CSV文件方式。

INSERT INT语法:SQLite Expert Fessional ——Import/Export——数据传输向导Data Transfer Wizard——Destination——SQLite Database或SQL Script。

(三)问题:SQLite数据库的时间总是1899-12-30

1、日期格式:SQLite的日期格式为2020-07-30,不能识别Excel数据表时间格式2020-7-30,导入到SQLite中后变为1899-12-30。

2、逻辑型字段值:SQLite的布尔型数据值为1或0,而不是True或False。

UPDATE t_labordispute SET 争议初始日期 ='2020-07-30',提请争议日期='2020-07-30' where  laborid=384 ;

(三)数据备份

1、表备份:SQLite Expert Professional——选中数据表——data标签——在数据区右键弹出菜单——导出到Excel表或其它格式。

2、数据库备份。

你可能感兴趣的:(python,数据库)