python MySQLdb 常用操作

我采用的是MySQLdb操作的MYSQL数据库。先来一个简单的例子吧:

import MySQLdb
try:
    conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘root‘,db=‘test‘,port=3306)
    cur=conn.cursor()
    cur.execute(‘select * from user‘)
    cur.close()
    conn.close()
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

请注意修改你的数据库,主机名,用户名,密码。

下面来大致演示一下插入数据,批量插入数据,更新数据的例子吧:

import MySQLdb
 
try:
    conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘root‘,port=3306)
    cur=conn.cursor()
     
    cur.execute(‘create database if not exists python‘)
    conn.select_db(‘python‘)
    cur.execute(‘create table test(id int,info varchar(20))‘)
     
    value=[1,‘hi rollen‘]
    cur.execute(‘insert into test values(%s,%s)‘,value)
     
    values=[]
    for i in range(20):
        values.append((i,‘hi rollen‘+str(i)))
         
    cur.executemany(‘insert into test values(%s,%s)‘,values)
 
    cur.execute(‘update test set info="I am rollen" where id=3‘)
 
    conn.commit()
    cur.close()
    conn.close()
 
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

请注意一定要有conn.commit()这句来提交事务要不然不能真正的插入数据。

运行之后我的MySQL数据库的结果就不上图了。

import MySQLdb
try:
    conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘root‘,port=3306)
    cur=conn.cursor()
     
    conn.select_db(‘python‘)
 
    count=cur.execute(‘select * from test‘)
    print ‘there has %s rows record‘ % count
 
    result=cur.fetchone()
    print result
    print ‘ID: %s info %s‘ % result
 
    results=cur.fetchmany(5)
    for r in results:
        print r
 
    print ‘==‘*10
    cur.scroll(0,mode=‘absolute‘)
 
    results=cur.fetchall()
    for r in results:
        print r[1]
     
 
    conn.commit()
    cur.close()
    conn.close()
 
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

运行结果就不贴了,太长了。

查询后中文会正确显示,但在数据库中却是乱码的。经过我从网上查找,发现用一个属性有可搞定:

在Python代码

conn = MySQLdb.Connect(host=‘localhost‘, user=‘root‘, passwd=‘root‘, db=‘python‘)

中加一个属性:
 改为:

conn = MySQLdb.Connect(host=‘localhost‘, user=‘root‘, passwd=‘root‘, db=‘python‘,charset=‘utf8‘)

charset是要跟你数据库的编码一样,如果是数据库是gb2312 ,则写charset=‘gb2312‘。

下面贴一下常用的函数:

然后,这个连接对象也提供了对事务操作的支持,标准的方法
commit() 提交
rollback() 回滚

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条.

host:字符串类型,指定连接的主机

user:字符串类型,指定连接的用户名

passwd:字符串类型,指定连接的密码

db:字符窜类型,指定连接的数据库

port:integer类型,指定连接的端口号

unix_socket:字符串类型,指定unix套接字的位置

conv:转换字典,参考MySQLdb.converters模块

connect_timeout:连接超时的时间,单位秒

compress:是否压缩

named_pipe:命名管道

init_command:连接建立后执行的第一条命令

python MySQLdb 常用操作,布布扣,bubuko.com

时间: 2024-10-13 03:28:19

python MySQLdb 常用操作的相关文章

10个Python set 常用操作函数!

今天为大家带来的内容是10个Python set 常用操作函数!(附带详细解答)文章内容具有不错的参考意义,希望在此能够对各位有所帮助. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员.但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值. set和dict一样,只是没有value,相当于dic

python anaconda 常用操作

在使用 python anaconda时,经常会用到很多常用操作,记录下来,方便以后更好地使用: conda: Conda既是一个包管理器又是一个环境管理器.你肯定知道包管理器,它可以帮你发现和查看包.但是如果当我们想要安装一个包,但是这个包只支持跟我们目前使用的python不同的版本时.你只需要几行命令,就可以搭建起一个可以运行另外python版本的环境.这就是conda环境管理器的强大功能. conda常用命令: conda update conda # 升级conda conda crea

Python 字典常用操作

Python字典常用的定义方法 直接定义一个字典dict1 = {'x': 1, 'y': 2, 'z': 3} 利用dict方法定义一个字典dict2 = dict(x=1, y=2, z=3) 利用dict方法定义一个字典dict3 = dict((('x', 1), ('y', 2), ('z', 3))) dict内建方法fromkeys创建并返回一个新字典dict4 = dict4.fromkeys('x', '1')也可以用循环的方式生成字典:dict4.fromkeys(range

Python列表常用操作

先看一些基本的操作 names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"] #打印第一个以及第三个元素 print(names[0],names[2]) 切片操作: print(names[1:3]) #打印下标为1到下标为2的元素内容,第3个

【Selenium2+Python】常用操作

Webdriver中比较常用的操作元素的方法: clear()    清除输入框的默认内容 send_keys("xxx")    在一个输入框里输入xx内容 ——如果输入中文,则需要在脚本开头声明编码为utf-8,然后在中文字符前面加u(如:send_keys(u"中文内容")) click()    点击一个按钮 submit()    提交表单 WebElement接口常用方法: size    返回元素的尺寸 ——如:size = driver.find_e

python memcache 常用操作

add() 添加一条键值对,如果key已存在,重复执行add操作会报异常 mc.add('name2', 'lisi') print(mc.get('name2')) # lisi replace 修改某个key的值,如果key不存在,报异常 # mc.add('name','wangwu') # 添加个已存在key ,发生异常 # MemCached: while expecting 'STORED', got unexpected response 'NOT_STORED' set() 设置

python 文件常用操作

1.打开文件 open()打开文件并返回文件对象,参数很多,一般用前两个,open(file,mode).file可以是文件名或者文件目录下的文件名,mode为打开的方式,可以是只读.写入.追加写入.可读可写等等. 打开某个文件,需要知道该文件的目录,或者该文件就在当前的工作目录下. (1)包含目录的文件名(不修改当前工作目录) >>> f=open('E:/python/record.txt') #或者f=open(r'E:\python\record.txt') #或者f=open(

python 列表常用操作(二)

1.tuple 的 unpack a,b = t 2.格式化输出 print('您的输入:{},值为{}',format(a,b)) 3.日期计算 import datetime as dt import time as tm print ("time={}",tm.time()) 4.pyhon 面向对象 5.map 函数 对应位置进行操作 6.map 和 lambda 表达式配合起来使用 l1=[1,3,5,7,9] l2=[0,2,4,6,8] result = map(lamb

python字符串常用操作

今天把之前遗漏的内容补上,关于python字符串的基本操作 name="my \tname is {name},and I am {year} old"print(name)print(name.capitalize())print(name.count("n"))#查看字符数量print(name.center(50,"-"))#填充print(name.endswith("n"))#判断末尾字符print(name.exp