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

应用场景:

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

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

具体的示意图如下所示:

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

图1

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

图2

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

'''
function description : Add the fields and data dynamicly.

data : 2014-08-04

author : Chicho

running : python addfileds.py

'''

import MySQLdb
#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.1
conn = 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...exception
try:
    curs.execute('create database addtest')
except:
    print 'Database addtest exists!'

conn.select_db('addtest')

# create a table named addfields
try:
    curs.execute('create table addfields(id int PRIMARY KEY NOT NULL,name text)')
except:
    print('The table addfields exists!')

# add the fileds
try:
    for i in range(1):
        sql = "alter table addfields add key%s text" %i
        curs.execute(sql)
except Exception,e:
    print e

for 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 important
conn.commit()
curs.close()
conn.close()

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

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

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

参考文献:

http://www.cnblogs.com/rollenholt/archive/2012/05/29/2524327.html

http://www.blogjava.net/alpha/archive/2007/07/23/131912.html

http://database.51cto.com/art/200811/97974_all.htm

感谢楼上几位博主的无私奉献精神,博主是在没有MySQL 的基础上参照这些blog实现的。如有什么地方不足欢迎提出

批评和建议。对你的意见我在此表示由衷的感谢。

彩蛋:

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')

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

2UnicodeEncodeError: ‘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和本文中参数设置是一样的。

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据,布布扣,bubuko.com

时间: 2024-08-02 07:01:26

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

python之MySQL数据库

一.数据库概述 1.什么是数据库? 什么是数据库呢? 先来看看百度怎么说的 1 2 数据库,简而言之可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓"数据库"系以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合. 百度的貌似不好理解啊,让我说啊,数据库是存储数据的地方,你这不是废话么?你你你你你说的对,哈哈,存数据的地方是存在哪里呢,存在硬盘上,为什么不是存在内存里面,因为内存无法永久保存

Python与Mysql 数据库的连接,以及查询。

python与mysql数据库的连接: pymysql是python中对数据库的连接模块:因此应当首先安装pymysql数据库模块. 执行pip install pymysql 命令. 然后在python 中创建数据库连接表: import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='

python使用mysql数据库

一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-get install  mysql-client centOS/redhat >

python操作mysql数据库实现增删改查

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载不同的DB API模块,例如你需要

python使用mysql数据库(转)

一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-get install  mysql-client centOS/redhat >

【转】python操作mysql数据库

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载

22、Python之mysql数据库操作

一.mysql mysql服务安装及使用方法,请自行百度,我们这里重点是学习如何使用python操作mysql数据库,需要用到模块pymysql,请听我娓娓道来. python操作mysql的具体步骤如下: 1.导入pymysql模块  import pymysql 2.连接mysql数据库 conn = pymysql.Connect(host='192.168.12.1',port=3306,user = 'root',passwd='1234',db='python',charset='u

Python使用MySQL数据库(新)(转)

http://www.cnblogs.com/fnng/p/3565912.html 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-g

python入门(十七)python连接mysql数据库

mysql 数据库:关系型数据库mysql:互联网公司 sqllite:小型数据库,占用资源少,手机里面使用oracle:银行.保险.以前外企.sybase:银行+通信 互联网公司key:valuemongodb:磁盘上redis:内存数据库,持久化memchache:内存数据库 mysql -uroot -p密码装完了之后,cmd下输入mysql命令,需要将安装目录下的bin目录( mysql.exe 所在的目录)加入到path中 本地连接 mysql -uroot -p mysql -h12