• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据_MySQL

mysql 搞代码 4年前 (2022-01-09) 36次浏览 已收录 0个评论

应用场景:

我们需要设计一个数据库来保存多个文档中每个文档的关键字。假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字。

假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字。那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作。

具体的示意图如下所示:

首先图1是我们的原始表格:

图1

这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入。

图2

上图是我们整个表的概况。下面我们就用程序来总结出这样的一个表格是怎么实现的。

'''function description : Add the fields and data dynamicly.data : 2014-08-04author : Chichorunning : python addfileds.py'''import M<mark>本文来源gaodaimacom搞#^代%!码&网(</mark>ySQLdb#connect the database#the argvs based on the database you set.#Generally speaking, you should change the No. of the port 3306 , because it's easy to be  attack#localhost = 127.0.0.1conn = MySQLdb.connect(host = 'localhost', port = 3306, user = 'root', passwd = '*****')curs = conn.cursor()# create a database named addtest#Ensure the program can run multiple times,we should use try...exceptiontry:    curs.execute('create database addtest')except:    print 'Database addtest exists!'conn.select_db('addtest')# create a table named addfieldstry:    curs.execute('create table addfields(id int PRIMARY KEY NOT NULL,name text)')except:    print('The table addfields exists!')# add the filedstry:    for i in range(1):        sql = "alter table addfields add key%s text" %i        curs.execute(sql)except Exception,e:    print efor i in range(4): #insert 5 lines    sql = "insert into addfields set id=%s" %i    curs.execute(sql)    sql = "update addfields set name = 'hello%s' where id= %s"%(i,i)    curs.execute(sql)    for j in range(5):        sql = "update addfields set key%s = 'world%s%s' where id=%s"%(j,i,j,i)        curs.execute(sql)#this is very importantconn.commit()curs.close()conn.close()

记住最后一定要记得最后三行这个语句,否则你的操作不会写入到数据库中。

最后就可以得到我们的结果,如下图所示:

程序的大体实现就是这样。

彩蛋:

1.操作数据库出现的一些错误总结

如果你长时间为队数据库进行操作,再次进行操作的时候可能会出现以下错误:

raise errorclass, errorvalue
OperationalError: (2006, 'MySQL server has gone away')

这个时候对于MySQL server 你要做的就是执行一下下面这个命令

connect your_database

对于在python中的IDLE你需要执行:

conn = MySQLdb.connect(host = 'localhost', port = 3306, user = 'root', passwd = '****')curs = conn.cursor()conn.select_db('addtest')

密码输入你自己数据库中设置的。

2.UnicodeEncodeError: 'latin-1' codec can't encode characters in position

出现上述这个错误的时候可以采用下面这个方法就可以解决。

 conn.set_character_set('utf8')    curs.execute('set names utf8')    curs.execute('SET CHARACTER SET utf8;')    curs.execute('SET character_set_connection=utf8;')

conn,curs和本文中参数设置是一样的。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址