python操作MySQL
2015-08-16 18:29
288 查看
在学习python的过程中,一定会使用到MySQL的数据库操作,这里就会用到python的MySQLdb模块,至于MySQLdb模块的安装以及更新卸载可以查看博客,使用easy_install或者是pip安装都可以。
下面讲一下python对MySQL的一些基本的操作,包括数据库的连接,数据的增删改查等操作。
一 数据库的连接
首先是导入们模块MySQLdb,然后是
conn = MySQLdb.connect(host=’localhost’,port = 3306,user=’root’, passwd=’123456’,db =’test’)
这里设置数据库连接参数,包括服务器名称,端口号,用户名,密码,数据库名称,另外还可以设置默认的编码方式,charset=’utf8’
另外还可以使用另外方法:
con = mdb.connect(‘localhost’, ‘root’, ‘pswd’, ‘test’)
这里的参数列表是不可以变换的,一次是服务器名称,用户名,密码,数据库名称。
这只是连接到了数据库,要想操作数据库需要创建游标。cur = conn.cursor()
通过获取到的数据库连接conn下的cursor()方法来创建游标。
cur.close()
cur.close() 关闭游标
conn.commit()
conn.commit()方法在提交事物,在进行数据库操作时必须要有这个方法,否则数据不会被真正的插入。
二 数据库查询操作
这里对数据库进行了查询操作,使用了游标的execute()方法,操作返回的数据为多维元组,使用fetchall函数,将结果集(多维元组)存入rows里面,依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示。
另外,如果想要输出某行记录的某列数据,可以在使用遍历多维元组的时候:
for row in rows:
print row[0],row[1]
也可以使用键值对的方法,由键名字来获取数据
print “%s %s” % (row[“Id”], row[“Name”])
另外,可以使用cur.rowcount获取影响了多少行
三 数据库插入操作
首先讲一下,一次插入一条数据的方法:
一次向数据表中插入多条记录:
executemany()方法可以一次插入多条值,执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。
四 对数据库的删除操作
删除查询条件的数据
cur.execute(“delete from student where age=’9’”)
五 对数据库的更新操作
修改查询条件的数据
cur.execute(“update student set class=’3 year 1 class’ where name = ‘Tom’”)
下面讲一下python对MySQL的一些基本的操作,包括数据库的连接,数据的增删改查等操作。
一 数据库的连接
#coding=utf-8 import MySQLdb conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test' ) cur = conn.cursor() #这里是对数据库的操作 cur.close() conn.commit() conn.close()
首先是导入们模块MySQLdb,然后是
conn = MySQLdb.connect(host=’localhost’,port = 3306,user=’root’, passwd=’123456’,db =’test’)
这里设置数据库连接参数,包括服务器名称,端口号,用户名,密码,数据库名称,另外还可以设置默认的编码方式,charset=’utf8’
另外还可以使用另外方法:
con = mdb.connect(‘localhost’, ‘root’, ‘pswd’, ‘test’)
这里的参数列表是不可以变换的,一次是服务器名称,用户名,密码,数据库名称。
这只是连接到了数据库,要想操作数据库需要创建游标。cur = conn.cursor()
通过获取到的数据库连接conn下的cursor()方法来创建游标。
cur.close()
cur.close() 关闭游标
conn.commit()
conn.commit()方法在提交事物,在进行数据库操作时必须要有这个方法,否则数据不会被真正的插入。
二 数据库查询操作
#coding=utf-8 import MySQLdb conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test' ) cur = conn.cursor() #这里是对数据库的操作 #类似于其他语言的query函数,execute是python中的执行查询函数 cur.execute("SELECT * FROM Writers") #使用fetchall函数,将结果集(多维元组)存入rows里面 rows = cur.fetchall() #依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示 for row in rows: print row conn.commit() cur.close() conn.close() #输出格式: (1L, '1', '22') (2L, '2', None) (63L, '456', '5fe') (64L, '456', '5fe')
这里对数据库进行了查询操作,使用了游标的execute()方法,操作返回的数据为多维元组,使用fetchall函数,将结果集(多维元组)存入rows里面,依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示。
另外,如果想要输出某行记录的某列数据,可以在使用遍历多维元组的时候:
for row in rows:
print row[0],row[1]
也可以使用键值对的方法,由键名字来获取数据
print “%s %s” % (row[“Id”], row[“Name”])
另外,可以使用cur.rowcount获取影响了多少行
三 数据库插入操作
首先讲一下,一次插入一条数据的方法:
#coding=utf-8 import MySQLdb conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', ) cur = conn.cursor() #插入一条数据 sql="insert into student values(%s,%s,%s,%s)" cur.execute(sql,('3','Huhu','2-1','7')) conn.commit() cur.close() conn.close()
一次向数据表中插入多条记录:
#coding=utf-8 import MySQLdb conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', ) cur = conn.cursor() #一次插入多条记录 sql="insert into student values(%s,%s,%s,%s)" cur.executemany(sql,[ ('3','Tom','1-1','6'), ('3','Jack','2-1','7'), ('3','Yaheng','2-2','7'), ]) conn.commit() cur.close() conn.close()
executemany()方法可以一次插入多条值,执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。
四 对数据库的删除操作
删除查询条件的数据
cur.execute(“delete from student where age=’9’”)
五 对数据库的更新操作
修改查询条件的数据
cur.execute(“update student set class=’3 year 1 class’ where name = ‘Tom’”)
相关文章推荐
- Vim - python autocomplete plugin
- 关于selenium+python的googledirver和iedirver的配置
- python对拍程序
- Windows下为64位的python3.4.3安装numpy
- 教你用200行Python代码“换脸”
- Python 的 Numpy SciPy MatPlotLib配置
- python的二分查找实现
- python 点滴记录14:join()方法
- vijos - P1302连续自然数和 (公式推导 + python)
- 使用Python操作MySQL的一些基本方法
- Opencv Python 2.7配置
- python操作xml文件详细介绍
- Python 之 将字符串数组转换为浮点型数组
- python二路归并排序实现法
- Python生态环境简介
- Python 之 读取txt文件
- py 格式转换为 exe 使用方法
- Python包管理工具-pip
- win 环境安装python 和 Py pip
- [python leetcode] Word Ladder II (very hard)[非常难,放弃]