利用python实现将txt文件导入到mysql的应用实例

利用python实现将txt文件导入到mysql的应用实例
利用python实现将txt文件导入到mysql的应用实例

利用python实现将txt文件导入到mysql的应用实例

实现思想:1、python自动完成在txt文件中加入自定义标签(简单的txt文件

可以不需要),2、python自动完成将含有自定义标签的txt文件导入到

mysql。除了原始txt文件的内容外。整个实现过程全部由python程序自动完成,运行环境是在centos7的python2.7,本例省去了用python建立mysql数据库(和表)的过程。

1、原始txt文件显示(举例)如下:

排名 1

公司名称沃尔玛(WAL-MART STORES)

营业收入476294

利润16022

国家美国

排名 2

公司名称荷兰皇家壳牌石油公司

营业收入459599

利润16371

国家荷兰

排名 3

公司名称中国石油化工集团公司(SINOPEC GROUP)

营业收入432007.7

利润8932.1

国家中国

排名 4

公司名称中国石油天然气集团公司

营业收入416294

利润18504.8

国家中国

排名 5

公司名称埃克森美孚(EXXON MOBIL)

营业收入407666

利润32580

国家美国

排名 6

公司名称英国石油公司(BP)

营业收入396217

利润23451

国家英国

排名7

公司名称国家电网公司(STATE GRID)

营业收入333386.5

利润7982.8

国家中国

排名8

公司名称大众公司(VOLKSWAGEN)

营业收入261539.1

利润12071.5

国家德国

排名9

公司名称丰田汽车公司(TOYOTA MOTOR)

营业收入256454.8

利润18198.2

国家日本

排名10

公司名称嘉能可(GLENCORE)

营业收入232694

利润-7402

国家瑞士

#后面内容省略……

说明以上txt文件来源2015世界500强公司排名完整榜单

注:收入和利润单位为百万美元

2、含有自定义标签的文件显示(举例)如下:

排名1

公司名称沃尔玛(WAL-MART STORES)

营业收入476294

利润16022

国家美国

排名2

公司名称荷兰皇家壳牌石油公司

营业收入459599

利润16371

国家荷兰

排名3

公司名称中国石油化工集团公司(SINOPEC GROUP) 营业收入432007.7

利润8932.1

国家中国

排名4

公司名称中国石油天然气集团公司

营业收入416294

利润18504.8

国家中国

排名5

公司名称埃克森美孚(EXXON MOBIL)

营业收入407666

利润32580

国家美国

排名6

公司名称英国石油公司(BP)

营业收入396217

利润23451

国家英国

排名7

公司名称国家电网公司(STATE GRID)

营业收入333386.5

利润7982.8

国家中国

排名8

公司名称大众公司(VOLKSWAGEN)

营业收入261539.1

利润12071.5

国家德国

排名9

公司名称丰田汽车公司(TOYOTA MOTOR)

营业收入256454.8

利润18198.2

国家日本

排名10

公司名称嘉能可(GLENCORE)

营业收入232694

利润-7402

国家瑞士

#后面内容省略……

自定义标签说明:代表排名

公司名称

代表营业收入>

代表利润>

代表文国家

3、mysql表栏位结构如下:

[root@test]# mysql -uroot -p123456

mysql> use bch;

Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed

mysql> desc bchtp;

+-------+--------------+------+-----+--------+-------+

| Field | Type | Null | Key | Default| Extra | +-------+--------------+------+-----+---------+-------+ | pm | varchar(6) | YES | | NULL | |

| gs | varchar(255) | YES | | NULL | |

| sr | varchar(255) | YES | | NULL | |

| lr | varchar(255) | YES | | NULL | |

| gj | varchar(255) | YES | | NULL | |

+-------+--------------+------+-----+--------+------+

6 rows in set (0.00 sec)

说明:表栏位名字及代表的内容和标签(见自定义标签说明)一致。

4、导入后的mysql数据举例如下:

mysql> select pm as 排名,gs as 公司名称,sr as 营业收入,lr as 利润,gj as 国家from bchtp; +-----+-------------------------+---------+-------+------+

| 排名| 公司名称 | 营业收入| 利润 | 国家 |

+-----+-------------------------+---------+-------+------+

| 1 | 沃尔玛 | 476294 |16022 | 美国 |

+-----+-------------------------+---------+-------+------+

| 2 |荷兰皇家壳牌石油公司 | 459599 | 16371 | 荷兰 |

+-----+-------------------------+---------+-------+------+

| 3 |中国石油化工集团公司 | 432007.7|8932.1 | 中国 |

+-----+-------------------------+---------+-------+------+

| 4 |中国石油天然气集团公司 | 416294 |16022 | 中国 |

+-----+-------------------------+---------+-------+------+

| 5 | 埃克森美孚 | 407666 |32580 | 美国 |

+-----+-------------------------+---------+-------+------+

| 6 | 英国石油公司| 396217 | 23451 | 英国|

+-----+-------------------------+---------+-------+------+

| 7 | 国家电网公司 | 333386.5| 7982.8 | 中国 |

+-----+-------------------------+---------+-------+------+

| 8 | 大众公司| 261539.1 |12071.5 | 德国|

+-----+-------------------------+---------+-------+------+

| 9 | 丰田汽车公司| 256454.8 |18198.2| 日本|

+-----+-------------------------+---------+-------+------+

| 10 | 嘉能可| 232694 | 7402 | 瑞士-|

+-----+-------------------------+---------+-------+------+

#后面内容省略……

5、程序脚本如下:

[root@test]# cat 程序脚本.sh

python 增加标签.py

#简单的txt文件可以不需要增加标签.py

python 文件导入数据库.py

6、增加标签.py 如下:

[root@t est]# cat 增加标签.py

# -*- coding: utf-8 -*-

#简单的txt文件可以不需要增加标签.py,下面只是实现的思路,#要根据txt文件的实际情况和具体要求做适当修改。

import codecs

import sys

ffrom=open("原始txt文件",'r')

fto=open("含有标签的文件","w+")

tyjl=''

while True:

rec = ffrom.readline()

bzwb=''

bzwe=''

di=''

tyjl=’’

di=rec.strip()

zkh= di.find('(') #查找公司名称的左括号,

cu = len(di)

if zkh == -1 : #没有查到,全是中文名称

zkh=cu

else:

pass

if not rec :

break

elif (di[0:6] == '排名'):

tyjl = bzwb + tyjl[6:] + bzwe+'\n'

fto.write(tyjl)

bzwb= ''

bzwe= ''

tyjl =''+di+''+'\n'

elif (di[0:12] == '公司名称'):

tyjl = bzwb + tyjl[12:zkh] + bzwe+'\n'

#只取公司名称的中文部分

fto.write(tyjl)

bzwb= ''

bzwe= ''

tyjl =''+di+''+'\n'

elif ((di[0:12] ==’营业收入’):

tyjl = bzwb + tyjl[12:] + bzwe+'\n'

fto.write(tyjl)

bzwb= ''

bzwe= ''

tyjl =''+di+''+'\n'

elif (di[0:6] == '利润'):

tyjl = bzwb + tyjl[6:] + bzwe+'\n'

fto.write(tyjl)

bzwb= ''

bzwe= ''

tyjl = di

elif (di[0:6] =='国家') :

tyjl = bzwb + tyjl[6:] + bzwe+'\n'

fto.write(tyjl)

bzwb= ''

bzwe= ''

tyjl = di

else :

tyjl =tyjl+ di

fto.close

ffrom.close

7、文件导入数据库.py 如下:

[root@ test]# cat 文件导入数据库.py

# -*- coding: UTF-8 -*-

#下面只是实现的思路,要根据实际情况和具体要求做适当修改。

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost","root","123456","bch",port=3306,charset="utf8" ) # 使用cursor()方法获取操作游标

cursor = db.cursor()

f = open("含有标签的文件", "r")

yh=0

gsvalue = ''

pmvalue = ''

lrvalue = ''

gjvalue = ''

srvalue = ''

gsb = -1

pmb = -1

lrb = -1

gjb = -1

srb = -1

gse = -1

pme = -1

lre = -1

gje = -1

sre = -1

bzw=""

rec=''

line=''

while True:

rec = f.readline()

if rec:

line=rec.strip()

pmb=line.find('')

pme=line.rfind('')

gsb=line.find('')

gse=line.rfind('')

srb=line.find('')

sre=line.rfind('')

lrb=line.find('

lre=line.rfind('')

gjb=line.find('')

gje=line.rfind('')

if ((pmb >= 0) and (pme >= 0)):

pmvalue = line[pmb+4:pme]

print pmvalue

elif ((gsb >= 0) and (gse >= 0)):

gsvalue = line[gsb+4:gse]

elif ((srb >= 0) and (sre >= 0)):

srvalue=line[srb+4:sre]

elif ((lrb >= 0) and (lre >= 0)):

lrvalue=line[lrb+4:lre]

elif ((gjb >= 0) and (gje >= 0)):

gjvalue=line[gjb+4:gje]

cursor.execute('INSERT INTO bchtp(id,pm,gs,sr,lr,gj) VALUES (%s,%s,%s,%s,%s,%s)', (str(yh),pmvalue,gsvalue,srvalue,lrvalue,gjvalue))

gjvalue = ''

srvalue = ''

lrvalue = ''

gsvalue = ''

pmvalue = ''

yh=yh+1

else:

pass

else:

break

https://www.360docs.net/doc/d210912622.html,mit()

# 关闭数据库连接

cursor.close()

db.close()

第10章 Python操作数据库

第10 章Python 操作数据库 Python 数据分析(进阶篇)

主要内容CONTENTS 02结构化查询语言SQL 03操作数据库核心API 04Python操作数据库案例01数据库基础

01数据库基础

Python操作数据库 数据库基础 数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等。数据库的主要特点: ?以一定的方式组织、存储数据; ?能为多个用户共享; ?与程序彼此独立。 ?…… 数据库管理系统是一种操纵和管理数据库的大型软件。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员通过DBMS进行数据库的维护工作。主要功能包括:数据定义(创建数据库、表等)、数据操纵(增删查改等)、数据库控制(并发、权限等)、数据库维护(转存、恢复等)等。

Python操作数据库 常见的数据库类型 当前常见的数据库类型有:关系型数据库、键值存储数据库、面向文档数据库、图数据库等。 ?关系型数据库:当前应用最广泛的数据库类型,把复杂的数据结构归结为简单的二元关系(即二维表形式),例如MySQL、SQL Server、Oracle、SQLite等; ?键值存储数据库:使用简单的键值方法来存储数据,其中键作为唯一标记,是一种 非关系数据库,例如Redis; ?面向文档数据库:用于存放并获取文档,主要是XML、JSON等具备自我描述特性、呈现层次结构的文档,例如MongoDB; ?图数据库:一种存储图关系的数据库,应用图理论存储实体之间的关系信息,例如Neo4J。

【IT专家】Python 的 MySQLdb 模块插入数据没有成功与 autocommit(自动提交)的关系

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Python 的MySQLdb 模块插入数据没有成功与autocommit(自动提 交)的关系 2013/11/17 0 在使用PYTHON mysqldb的时候插入数据发现数据库没有你当前插入的数据,这时候实际上跟commit有关系 ?用MySQLdb 操作数据库,插入数据之后发现数据库中依然为空,不知原因为何。开启mysqld 的log 设置项之后发现日志文档中更有执行sql 语句,直接复制语句在客户端中执行也没有问题,那么为什么通过MySQLdb 的插入全部没有结果呢?我怀疑是MySQLdb 的问题,在日志文件中仔细的看了一遍运行的所有sql 语句,在建立连接之后还运行了这句:set autocommit=0。这句话的嫌疑很大,因为这个涉及到一个语句提交执行的问题,而且对于commit 我有点印象,好像以前学习MySQLdb 的时候,特意注意到了这点。不管怎样,这就找准了关键字:MySQLdb autocommit根据网上搜到的结果,可以大概了解到,MySQLdb 在连接后关闭了自动提交,自动提交对于innodb 引擎很重要,没有这个设置,innodb 引擎就不会真正执行语句。解决的办法:1、语句末尾加上“COMMIT;”2、运行完语句,至少在关闭数据库之前提交一下,如:connmit()3、数据库连接建立之后,设置自动提交,如:conn.autocommit(1)只是不知道为什么innodb 会这样,可能是因为这是一个事务型数据库引擎,没有提交就不会在服务器上执行,只会缓存在客户端上的缘故吧!MySQL技术内幕:InnoDB存储引擎这本书好像出到第二版了,这些关于数据库方面的知识,还是要了解一下的。参考1、MySQLdb 插入数据失败?luchanghong/database/2012/06/20/mysqldb-insert-data-failed.html2、MySQLdb Python 模块autocommit属性测试及测试过程中关于数据库连接的理解 blog.csdn/gukesdo/article/details/7026371 ?tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

用Python实现数据库编程

破釜沉舟: 为网站站长.设计师.编程开发者. 提供资源!https://www.360docs.net/doc/d210912622.html, 用Python实现数据库编程 文章类别:Python 发表日期:2004-11-11 来源: CSDN 作者: wfh_178 <用PYTHON进行数据库编程> 老巫 2003.09.10 19 September, 2003 用PYTHON语言进行数据库编程, 至少有六种方法可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是我在工作和学习中经验总结. 方法一:使用DAO (Data Access Objects) 这个第一种方法可能会比较过时啦.不过还是非常有用的. 假设你已经安装好了PYTHONWIN,现在开始跟我上路吧…… 找到工具栏上ToolsàCOM MakePy utilities,你会看到弹出一个Select Library的对话框, 在列表中选择'Microsoft DAO 3.6 Object Library'(或者是你所有的版本). 现在实现对数据的访问: #实例化数据库引擎 import win32com.client engine = win32com.client.Dispatch("DAO.DBEngine.35") #实例化数据库对象,建立对数据库的连接 db = engine.OpenDatabase(r"c:\temp\mydb.mdb") 现在你有了数据库引擎的连接,也有了数据库对象的实例.现在就可以打开一个recordset了. 假设在数据库中已经有一个表叫做 'customers'. 为了打开这个表,对其中数据进行处理,我们使用下面的语法: rs = db.OpenRecordset("customers") #可以采用SQL语言对数据集进行操纵 rs = db.OpenRecordset("select * from customers where state = 'OH'") 你也可以采用DAO的execute方法. 比如这样: db.Execute("delete * from customers where balancetype = 'overdue' and name = 'bill'") #注意,删除的数据不能复原了J

数据库文件导入到txt文件中

将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置 if (saveFileDialog1.ShowDialog() == DialogResult.OK) { string str = ConfigurationManager.ConnectionStrings["strcon"].ConnectionString; SqlConnection sqlcon = new SqlConnection(str); SqlCommand sqlcom = new SqlCommand(); sqlcom.Connection = sqlcon; sqlcon.Open(); https://www.360docs.net/doc/d210912622.html,mandText = "Select * from T_Customer"; SqlDataAdapter sda = new SqlDataAdapter(sqlcom); DataSet ds = new DataSet(); sda.Fill(ds); int RC = ds.Tables[0].Rows.Count;//得到数据的行数 string[] lz = new string[RC]; for (int j = 0; j < RC; j++)//j是所得数据表的行数 { DataRow dr = ds.Tables[0].Rows[j]; for (int i = 1; i < dr.ItemArray.Length; i++)//i是列数 { //判断读取的是不是空值,是空值则转换为“还未填写” if (dr.ItemArray[i].ToString() == "") { //判断读取是不是最后一列,是最后一列后面就不添加“|” if (i==dr.ItemArray.Length-1) { lz[j] += "未填写"; } else { lz[j] += "未填写"; lz[j] += "|"; } } else { if (i == dr.ItemArray.Length - 1) { lz[j] += dr.ItemArray[i].ToString();

使用向导将数据从文本文件导入Excel中

使用向导将数据从文本文件导入Excel中 可以使用 Microsoft Office Excel 将数据从文本文件导入工作表中。该文本导入向导可检查您正在导入的文本文件,并能确保以您期望的方式导入数据。 步骤 1(共 3 步) 原始数据类型如果文本文件中的项以制表符、冒号、分号、空格或其他字符分隔,则选择“分隔符号”。如果文本文件中的所有项的长度相同,则选择“固定宽度”。 导入起始行键入或选择行号以指定要导入数据的第一行。 文件原始格式选择文本文件中使用的字符集。大多数情况下,可以保持文本格式的默认设置。如果知道文本文件是使用不同于计算机上使用的字符集创建的,那么应更改此设置使其与计算机上的字符集相同。例如,如果您的计算机设置为使用字符集 1251(西里尔文,Windows),而您知道文件是使用字符集 1252(西欧字符,Windows)生成的,则应将“文件原始格式”设置为 1252。 预览文件该框以文本被分到工作表的列中后的形式来显示文本。 步骤 2(共 3 步)(分隔数据) 分隔符选择在文本文件中分隔值的字符。如果未列出字符,则选中“其他”复选框,然后在包含光标的框中键入字符。如果数据类型为“固定宽度”,则这些选项不可用。 连续分隔符视为单个处理如果数据包含数据字段之间的一个具有多个字符的分隔符,或者数据包含多个自定义分隔符,则选择该选项。 文本识别符选择文本文件中将值括起来的字符。当 Excel 遇到文本识别符时,识别符后面且下一识别符前面的所有文本都会作为一个值导入,即使文本中包含一个分隔符也是如此。例如,如果分隔符为逗号 (,),文本识别符为双引号 ("),"Dallas, Texas" 将以 Dallas, Texas 形式导入到一个单元格中。如果没有识别符或者指定单引号 (') 为识别符,"Dallas, Texas" 将以 "Dallas 和 Texas" 形式导入到两个相邻的单元格中。 如果分隔符出现在两个文本识别符中间,Excel 将在导入值中省略识别符。如果两个文本识别符中没有分隔符,那么 Excel 将在导入值中包含识别符。因此,"Dallas Texas"(使用双引号文本识别符)将以 "Dallas Texas" 形式导入到一个单元格中。 数据预览在该框中查看文本以验证文本是否按照您期望的方式分到工作表中的列。 步骤 2(共 3 步)(固定宽度数据)

SQL语句导入导出大全

SQL语句导入导出大全[收集] 正巧这两天要用到这个,上网找到一个,回来自己检测一下: /******* 导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S"GNETDA TA/GNETDA TA" -U"sa" -P""' /*********** 导入Excel SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /*动态文件名 declare @fn varchar(20),@s varchar(1000) set @fn = 'c:\test.xls' set @s ='''Microsoft.Jet.OLEDB.4.0'', ''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0''' set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$' exec(@s) */ SELECT cast(cast(科目编号as numeric(10,2)) as nvarchar(255))+'' 转换后的别名FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /********************** EXCEL导到远程SQL insert OPENDA TASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名(列名1,列名2) SELECT 列名1,列名2 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /** 导入文本文件 EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -

【IT专家】Python操作MySQL案例

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 Python操作MySQL案例 2016/01/23 0 最近都在学习Python代码,希望学会Python后,能给我带来更高的工作效率,因此每天坚持学习和拷代码,下面是一个Python操作MySQL的一个实例,该实例可以让更多的人更好了解MySQLdb模块的使用。我是Python菜鸟,通过学习别人的实例来让自己学到更多Python知识。 ? ?案例:用Python实现银行转账 ?一、在MySQL创建一张表account表,然后在里面插入两条数据: ?mysql show create table account\G*************************** 1. row *************************** Table: accountCreate Table: CREATE TABLE `account` ( `userid` int(11) DEFAULT NULL COMMENT ‘账号ID’, `money` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin1 row in set (0.02 sec)mysql 当前数据: ?mysql select * from account;+--------+-------+| userid | money |+--------+-------+| 1 | 200 || 2 | 200 |+--------+-------+2 rows in set (0.00 sec)mysql ?编辑脚本money.py文件,运行些脚本需要安装MySQLdb模块,详细安装和基本的使用可以参考我的博客:cnblogs/xuanzhi201111/p/5144982.html ?#!/usr/bin/env python#coding:utf-8#name:money.pyimport sysimport MySQLdb try: sql = “select * from account where userid = %s and money %s” % (source_userid,money) cursor.execute(sql) print “\033[;32m检查是否有足够的钱: \033[0m” + sql except Exception,e: raise Exception(‘执行sql错误:%s’ % e) else: rs = cursor.fetchall() if len(rs) != 1: raise Exception (“账号%s余额不足” % source_userid) finally: cursor.close()#用于减去转掉的部份金额def reduce_money(self,source_userid,money): cursor = self.conn.cursor() try: sql = “update account set money = money - %s where userid=%s” % (money,source_userid) cursor.execute(sql) print “\033[;32m从源账户%s 里扣掉对应的金额: \033[0m” % (source_userid) + sql except Exception,e: raise

文本数据导入数据库的方法

文本数据导入数据库的方法 有一段人事档案资料archive.txt,内容如下: 小许男21工程师 小吴女23助理工程师 小蔡男22助理工程师 小牟女22工程师 要将它转入数据库archive.dbf中,archive.dbf结构如下: 姓名,性别,年龄,职称 怎么办呢?现在通过使用delphi编程,很好地解决了这个难题。Delphi提供了许多功能强大,丰富的字符处理函数和过程,常用的有: (1)function Length(S:String):Integer//返回串的长度 (2)function Copy(S:String;Index,Count:Integer):String//给出一个字符串中串的拷贝 (3)function Pos(Substr:String;S:String);Integer//查找子串在字符串中的位置 (4)Procedure Delete(VarS:String;Index,Count:Integer); //从一个字符串中去除子串 利用Delphi提供的已有函数和过程基础上编制自己的三个函数,实现了纯文本格式资料转入数据库功能。只要Delphi支持的数据库都可以支持。 archive.txt中每行数据为一个字符串,字符串中每个被分割的数据为一个字段,分割每个字段的字符为分割符,这里是空格,也可以是,、;、#等符号。具体思想是:先将字符串进行调整,然后把串中每个字符同分割符比较,将不是分割符的字符追加到MyStr串中,最后得到一个字段的内容。通过一个循环,就可以将一个字符串分成几个字段。 Function Regulate(aString,Sepchar:string):string //去掉多余的分割符,规范字符串 Function GetSubStr(varsString:string;SepChar:String):String; //得到字符串中一个子串,因要改变参数aString的值,所以将它用var定义。 FunctionGetSubStrNum(aString,SepChar:String):Integer;//计算一个字符串要被分割成几个字段。 参数:aString是所需分割的一个字符串,SepChar是分割符。 Function RegulateStr(aString:String;Sepchar:String):String; var i,Num:Integer; Flag:Boolean; MyStr,TempStr:String; begin Flag:=False;//进行标志,去除多余的分割符 Num:=Length(aString);//计算aString串的长度

简单的java解析文本文件批量导入数据库

package util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 批量导入数据库 * @author Administrator * */ public class InsertDB { public Connection getConnection() { Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( "jdbc:oracle:thin:@****:**:**", "**", "**"); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void main(String[] args) { InsertDB rt = new InsertDB(); rt.AhPhoneInsert("C:\\Documents and Settings\\Administrator\\桌面\\C.txt");// 参数为你的txt文件路径 } //数据记录导入 public boolean AhPhoneInsert(String file){

python操作数据库PostgreSQL

python操作数据库PostgreSQL 1.简述 python可以操作多种数据库,诸如SQLite、MySql、PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前项目中用到的PostgreSQL做一下简单介绍,主要包括python 操作数据库插件的选择、安装、简单使用方法、测试连接数据库成功。 2.数据库操作插件的选择 PostgreSQL至少有三个python接口程序可以实现访问,包括PsyCopg、PyPgSQL、PyGreSQL(PoPy已经整合在PyGreSQL中),三个接口程序各有利弊,需要根据实践选择最适合项目的方式。 推荐使用PsyCopg,对python开发框架的兼容性都很好,本文中我们只讨论这个插件。 3.PsyCopg的下载 官网下载psycopg2-2.5.1.tar.gz:https://www.360docs.net/doc/d210912622.html,/psycopg/ 本文使用windows系统开发,未使用官网版本,选择 psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe版,地址: https://www.360docs.net/doc/d210912622.html,/s/Cd8pPaw56Ozys 4.PsyCopg的安装 直接exe,根据提示安装即可. ------------------------------------------------ 博主经营一家发饰淘宝店,都是纯手工制作哦,开业冲钻,只为信誉!需要的亲们可以光顾一下!谢谢大家的支持! 店名: 小鱼尼莫手工饰品店 经营: 发饰、头花、发夹、耳环等(手工制作) 网店: https://www.360docs.net/doc/d210912622.html,/ --------------------------------------------------------------------- 继续正题... 5.PsyCopg的使用 py文件代码: __author__ = 'qiongmiaoer'

2020年python的面试题整理数据库篇

2020年python的面试题整理数据库篇MySQL 198.主键超键候选键外键 主键:数据库表中对存储数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键:是最小超键,即没有冗余元素的超键。 外键:在一个表中存在的另一个表的主键称此表的外键。 199.视图的作用,视图可以更改么? 视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。 视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by则对视图再次order by将被覆盖。 创建视图:create view xxx as xxxxxx 对于某些视图比如未使用联结子查询分组聚集函数Distinct Union等,是可以对其更新的,对视图的更新将对基表进行更新;但是视图主要用于简化检索,保护数据,并不用于更新,而且大部分视图都不可以更新。 200.drop,delete与truncate的区别 drop直接删掉表,truncate删除表中数据,再插入时自增长id又从1开始,delete删除表中数据,可以加where字句。 1.delete 语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行回滚操作。truncate table则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器,执行速度快。

Excel2017工作表中如何导入.txt文件

Excel2017 工作表中如何导入.txt 文件 篇一:SQL 将 txt 文件导入 sql 数据库 就一句 sql 代码搞定,导入 sql2000 的代码。 BULK INSERT 表名 FROM 'F:\你的文本文件.txt' WITH( FIELDTERMINATOR ='以什么符号分 割数据', ROWTERMINATOR= '以什么符号加\n 结尾')--\n 是回车的意思, 就是回车前面是什么符号, 如果没符号直接单引号\n 例 如 : BULK INSERT bb FROM 'F:\2008-02-18.txt' WITH( FIELDTERMINATOR =',', ROWTERMINATOR= ',\n') bb 是表名,f 盘中的 F:\2008-02-18.txt 文件,FIELDTERMINATOR =','每个数据是以逗号分 隔的, ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。 我导入过很多次。 使用 BULK INSERT 用法如下: stu.txt 结构 1,Jim 2,Kate 3,Tom ... BULK INSERT dbo.TABLE1 FROM 'd:\stu.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ) 查看 table1 里的数据 select * from table1 就 ok 了。 在做一些 web 数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲 如何在 C#-web 项目中将 txt 文件和 excel 文件导入 SQL2000 数据库。 1.数据库准备 在 SQL2000 数据库的实例数据库 pubs 中建立一个数据表 txtInsert, 字段很简 单: id, name 两个。 1 / 13

怎么在MySQL中导入txt文件啊

怎么在MySQL中导入txt文件啊 默认分类2010-05-20 17:52:24 阅读272 评论2 字号:大中小订阅 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名表名> 导出的文件名mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table 4.带语言参数导出 mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > d4.sql 5.导入数据库 常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:\wcnc_db.sql 常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:\wcnc_db.sql 进入MYSQL数据库 use bbs; Use bbs //要导的数据库 Source /var/mysqldata/mysql2007.sql 执行导入 或是: mysql -uusername -ppasswd --one-database bbs < db.sql 数据导 入 感觉导入数据库后是乱码可能你的方法并没有问题,可能是默认情况下,Mysql 并不支持中文,可以在建表或建库是把表的字符集设为gb2312,CHARACTER SET gb2312;

最新-Excel2019工作表中如何导入txt文件 精品

Excel2019工作表中如何导入.txt文件篇一:将文件导入数据库就一句代码搞定,导入2000的代码。 表名'\你的文本文件'(='以什么符号分割数据',='以什么符号加\结尾')--\是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\例如:'\2019-02-18'(=',',=',\')是表名,盘中的\2019-02-18文件,=','每个数据是以逗号分隔的,=',\'每行数据以逗号回车结尾。 我导入过很多次。 使用用法如下:结构1,2,3,1'\'(=',',='\')查看1里的数据*1就了。 在做一些数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在#-项目中将文件和文件导入2000数据库。 1数据库准备在2000数据库的实例数据库中建立一个数据表,字段很简单:,两个。 2文本文件导入对于数据文件导入与导出2000提供了和语句,在这里可以使用命令实现。 假设在盘上有一个文本文件内容为:1,2,3,实现导入的#代码如下:;;上面两个控件自己添加代码_(,){=;获得要导入的文本文件=(("")+1);获得文件的扩展名=("=;=;=;=;");数据库连接对象();{=("'"++"'(=',',='\')",);其中的=','指明字段间所使用的分隔符为逗号其中='\'指明记录间所使用的分隔符为回车();("");}(){("导入数据库时出错:"+());}();}好了,这个文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加出错回滚事务操作,在下面的文件的导入中介绍。 3文件的导入在盘里建立一个文件,在1工作表中有两列数据如下:编号姓名123注意,工作表的第一行是作为标题行的不会被插入到数据库中,真正导入从第二行开始。 为了演示事物出错回滚,在这里将数据库表中的字段设置为主键。 实现的#代码如下:代码_(,){=;获得要导入的文本文件=(("")+1);获得文件的扩展名=("=;=;=;=;");数据库连接对象();注意下面的连接字符串,是它起到了导入的作用=("*('40','50;=;="++"',1$)",);=();开始一个事务操作=;{();();提交事务("");}(){();出错回滚事务操作以下三行是去掉数据库出错

将TXT文本文件中的数据分列导入Excel表格中

将TXT文本文件中的数据分列导入Excel表格中 如果需要将TXT文本文件中的大量数据导入到Excel表格中,并且要求每行数据中特定个数的数值占据1列,则可以使用Excel提供的固定列宽文本导入功能实现,如图2010080701所示。 图2010080701 TXT文本文件 以Excel2010为例,操作步骤如下所述: 第1步,打开Excel2010窗口,依次单击“文件”→“打开”按钮,如图2010080702所示。

图2010080702 单击“打开”命令 第2步,在打开的“打开”对话框中,单击文件类型下拉三角按钮,在打开的文件类型列表中选择“所有文件”选项。然后找到并选中需要打开的TXT文本文件,并单击“打开”按钮,如图2010080703所示。 图2010080703 选择“所有文件”选项

第3步,打开“文本导入向导—第1步”对话框,在“原始数据类型”区域选中“固定宽度”单选框,并单击“下一步”按钮,如图2010080704所示。 图2010080704 选中“固定宽度”单选框 第4步,在打开的“文本导入向导—第2步”对话框中,根据数据分列要求单击“数据预览”区域的刻度线建立分列线,建立完毕单击“下一步”按钮,如图2010080705所示。 图2010080705 建立分列线 小提示:双击分列线可清除当前分列线,拖动分列线箭头可移动分列线。 第5步,打开“文本导入向导—第3步”对话框,首先在“数据预览”区域选中需要操作的列,然后在“列数据格式”区域设置当前列的数据格式。选中“不导入此列”单选框可以取消当前列的数据导入。设置完毕单击“完成”按钮,如图2010080706所示。

python中cursor操作数据库

python中cursor操作数据库 python 操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了。 操作步骤如下: 1、建立数据库连接 importMySQLdb conn=MySQLdb.connect(host="localhost",user="root",passw d="sa",db="mytable") cursor=conn.cursor() 2、执行数据库操作 n=cursor.execute(sql,param) 我们要使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作. 这些方法包括两大类:1.执行命令,2.接收返回值 cursor用来执行命令的方法: callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数 execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数 executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

nextset(self):移动到下一个结果集 cursor用来接收返回值的方法: fetchall(self):接收全部的返回结果行. fetchmany(self, size=None):接收size条返回结果行.如果size 的值大于返回的结果行的数量,则会返回cursor.arraysize条数据. fetchone(self):返回一条结果行. scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条. 下面的代码是一个完整的例子. #使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s sql="insert into cdinfo values(%s,%s,%s,%s,%s)" #param应该为tuple或者list param=(title,singer,imgurl,url,alpha) #执行,如果成功,n的值为1 n=cursor.execute(sql,param) #再来执行一个查询的操作 cursor.execute("select * from cdinfo") #我们使用了fetchall这个方法.这样,cds里保存的将会是查询返回的全部结果.每条结果都是一个tuple类型的数据,这些tuple组成了一个tuple

PYTHON之SQLITE数据库应用简单应用与讲解

Python与SQLite数据库应用系统 --Python之SQLite数据库应用 作者:XX (XXXX学院,班级:XX班) 摘要:Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以制作有数据存储需求的工具。Python标准库中的sqlite3提供该数据库的接口。现在作为初学者,我将进行初步的尝试与应用。 关键字:Python;SQLite;应用;数据库;编程 一·Python与SQLite数据库关系学习初步 作为新时代的大学生学会使用网络查询相关信息非常重要,现在经过初步的网络学习以及书籍查询,现在整理如下: (一)创建数据库 注:全文学习范例将以一个简单的关系型数据库为实例,为一个书店存储书的分类和价格。数据库中包含两个表:category用于记录分类,book用于记录某个书的信息。一本书归属于某一个分类,因此book 有一个外键(foreign key),指向catogory表的主键id。 (一)导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ 在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开。也可以创建数据库在内存中。 在使用connect()连接数据库后,我就可以通过定位指针cursor,来执行SQL命令:import sqlite3

#test.db is a file in the working directory. conn=sqlite3.connect("test.db") c=conn.cursor() #create tables c.execute('''CREATE TABLE category (id int primary key,sort int,name text)''') c.execute('''CREATE TABLE book (id int primary key, sort int, name text, price real, category int, FOREIGN KEY(category)REFERENCES category(id))''') #save the changes https://www.360docs.net/doc/d210912622.html,mit() #close the connection with the database conn.close() SQLite的数据库是一个磁盘上的文件,如上面的test.db,因此整个数据库可以方便的移动或复制。test.db一开始不存在,所以SQLite将自动创建一个新文件。 利用execute()命令,我们执行了两个SQL命令,创建数据库中的两个表。创建完成后,保存并断开数据库连接。 (二)插入数据 上面创建了数据库和表,确立了数据库的抽象结构。下面将在同一数据库中插入数据: import sqlite3 conn=sqlite3.connect("test.db")

提取文件夹中所有TXT中所需信息并导入数据库

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 提取数据 <% Set fso = Server.CreateObject("Scripting.FileSystemObject") on error resume next Set objFolder=fso.GetFolder("C:\Jerry\ASP\WEB\wwwroot\getdata") Set objFiles=objFolder.Files '循环输出文件夹path下的文件的文件名 For each objFile in objFiles '取相关值 txtname="" name1="" school="" sex="" qq="" msn="" telephone="" if objFile.Type="Text Document" then

Response.Write "
"+https://www.360docs.net/doc/d210912622.html, & "
" txtname=https://www.360docs.net/doc/d210912622.html, '判断是否有相同的文件名 Set rs2 = Server.CreateObject("ADODB.Recordset") sql="select * from dbo.data1 where txtname="&txtname rs2.Open sql,objConn,1,3 if rs2.eof=true then '读取文档 dim fso dim path set fso=server.createobject("scripting.filesystemobject") path = objFile.Path set file = fso.opentextfile(path,1,true) if not file.atendofstream then line=file.ReadAll end if '提取姓名 response.write ("姓名:") n=instr(line,"帐号 <#>") m=instr(line,"装扮主页 修改资料") if m=0 then'提取物修改资料这块的账户姓名 line=right(line,len(line)-n-13) i=instr(line,"\x{")

相关文档
最新文档