码迷,mamicode.com
首页 > 数据库 > 详细

最新用python来操作mysql完全解析

时间:2016-04-03 07:22:44      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

1.此处通过MySQLdb来操作mysql,首先

sudo apt-get install libmysqlclient-dev,如何出现

 Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_i18n_Translation-en%5fUS
E: The package lists or status file could not be parsed or opened.

如果你也出现上面错误时,采用下面的办法解决,

  • sudo rm /var/lib/apt/lists/* -vf
  • sudo apt-get update

然后再 sudo apt-get install libmysqlclient-dev,安装开发环境。

技术分享

sudo pip install mysql-python安装mysql for python,如何检查是否正确安装?在python环境下,import MySQLdb 不显示错误即安装成功。如下图中所示,

技术分享

2.python和mysql的交互

2.1 创建数据库,在创建之前先看看存在的数据库,如果对mysql数据库中的各种概念不清楚的可以参考这里

技术分享

用python来创建数据库

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123‘)
curs = conn.cursor()
curs.execute("create database fristDb")
conn.close()

再次查看数据库,可以看见我们新建的数据库fristDb.

技术分享

2.2 连接我们新建的数据库fristDb,并查看版本

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123‘,db=‘fristDb‘)
curs = conn.cursor()
curs.execute("select version()")
data = curs.fetchone()
print "our database version: %s" % data
conn.close()

输出结果

技术分享

2.3 在数据库fristDb中建立数据表fristTable

技术分享

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123‘,db=‘fristDb‘)
curs = conn.cursor()
curs.execute("drop table if exists fristTable")
sql = """create table fristTable (first_name char(20) not null,last_name char(20),age int,sex char(1))"""
curs.execute(sql)
conn.close()

执行完上面代码后再次查看数据表

技术分享

2.4数据库的插入操作,插入前查看数据表中的数据

技术分享

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123‘,db=‘fristDb‘)
curs = conn.cursor()
sql = """insert into fristTable (first_name,last_name,age,sex) values (‘dragon‘,‘great‘,20,‘M‘)"""
try:
    curs.execute(sql)
    conn.commit()
except:
    conn.rollback()

conn.close()

技术分享

3.数据库的其它操作可以自己去推,基本都是这个样子

4.补充:

  • connect函数的常用参数
  • user #用户名
  • password #用户密码
  • host #主机名
  • database #数据库名
  • connect函数会返回连接对象,连接对象方法
  • close() #关闭连接之后,连接对象和它的游标均不可用
  • commit() #如果支持的话就提交挂起的事务,否则不做任何事
  • rollback() #回滚挂起的事务(可能不可用)
  • cursor() #返回连接的游标对象

4.1 游标对象方法

  • close() #关闭游标
  • execute(oper[,params]) #执行SQL操作,可能使用参数
  • executemany(oper,pseq) #对序列中的每个参数执行SQL操作
  • fetchone() #把查询的结果集中的下一行保存为序列,或者+ None
  • fetchmany([size]) #获取查询结果集中的多行,默认为1
  • fetchall() #将所有(剩余)的行作为序列的序列

4.2 需要注意的点:

  • 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)
  • 2 MySQL数据库charset=utf-8
  • 3 Python连接MySQL是加上参数 charset=utf8
  • 4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)
#encoding=utf-8 
 import sys 
 import MySQLdb 
 reload(sys) 
 sys.setdefaultencoding(‘utf-8‘) 
 db=MySQLdb.connect(user=‘root‘,charset=‘utf8‘) 

最新用python来操作mysql完全解析

标签:

原文地址:http://blog.csdn.net/yywan1314520/article/details/51044877

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!