python连接mysql实例分享


Posted in Python onOctober 09, 2016

示例一

#coding=UTF-8

import sys
import MySQLdb
import time

reload(sys)
sys.setdefaultencoding('utf-8')

def connectDemo():
  return MySQLdb.Connection("127.0.0.1","root","root","demo",3306,charset="utf8")


if __name__ == '__main__':
  begin=time.time()

  conn=connectDemo()
  cursor = conn.cursor()
  sql="""
    show tables
    """
  count = cursor.execute(sql)
  rows = cursor.fetchall()
  cursor.close()
  conn.close()
  print "========demo库共:%s 张表============" % (count)

  print '耗时:%s 秒' % (time.time()-begin)

示例二

import MySQLdb
conn = MySQLdb.connect(host="localhost",
user="root",
passwd="123456",
db="test")
cursor = conn.cursor()
cursor.execute("select * from hard")
res = cursor.fetchall()
for x in res:
print x
cursor.close()
conn.close()

示例三

1 安装Python的Mysql包

root@10.1.1.45:~# apt-get install python-mysqldb 
root@10.1.1.45:~# python 
Python 2.5.2 (r252:60911, Jan 4 2009, 21:59:32)  
[GCC 4.3.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import MySQLdb 
>>>

  这里导入MySQLdb没有报错,就说明安装成功.

2 下面就可以连接数据库,可以进行增删改操作.

root@10.1.1.45:python# cat create.py  
#!/usr/bin/env python 
#coding=utf-8 
 
#导入相关模块 
import MySQLdb 
 
#建立和mysql数据库的连接 
conn = MySQLdb.connect(host='localhost',user='root',passwd='davehe') 
#获取游标 
curs = conn.cursor() 
#执行SQL,创建一个数据库 
curs.execute("create database pythondb") 
#选择连接哪个数据库 
conn.select_db('pythondb') 
#执行SQL,创建一个表 
curs.execute("create table test(id int,message varchar(50))") 
#插入一条记录 
value = [1,"davehe"] 
curs.execute("insert into test values(%s,%s)",value) 
#插入多条记录 
values = [] 
for i in range(20): 
  values.append((i,'hello mysqldb' + str(i))) 
curs.executemany("insert into test values(%s,%s)",values) 
#提交修改                 
conn.commit() 
#关闭游标连接,释放资源 
curs.close() 
#关闭连接 
conn.close() 
root@10.1.1.45:python# ./create.py

3 下面利用python查看mysql里刚添加的记录.

root@10.1.1.45:python# cat select.py  
#!/usr/bin/env python 
#coding=utf-8 
 
#导入相关模块 
import MySQLdb 
 
#建立和mysql数据库的连接 
conn = MySQLdb.connect(host='localhost',user='root',passwd='hc1226') 
#获取游标 
curs = conn.cursor() 
#选择连接哪个数据库 
conn.select_db('pythondb') 
#查看共有多少条记录 
count = curs.execute('select * from test') 
print "一共有%s条记录" % count 
#获取一条记录,以一个元组返回 
result = curs.fetchone() 
print "当前的一条记录 ID:%s message:%s" % result 
#获取后10条记录,由于之前执行了getchone(),所以游标已经指到第二条记录,下面也就从第二条记录开始返回 
results = curs.fetchmany(10) 
for r in results: 
  print r 
#重置游标位置,0,为偏移量,mode = relative(默认) 
curs.scroll(0,mode='absolute') 
#获取所有记录 
results = curs.fetchall() 
for r in results: 
  print r 
 
#提交修改 
conn.commit() 
#关闭游标连接,释放资源 
curs.close() 
#关闭连接 
conn.close()
root@10.1.1.45:python# ./select.py  
一共有21条记录 
当前的一条记录 ID:1 message:davehe 
(0L, 'hello mysqldb0') 
(1L, 'hello mysqldb1') 
(2L, 'hello mysqldb2') 
(3L, 'hello mysqldb3') 
(4L, 'hello mysqldb4') 
(5L, 'hello mysqldb5') 
(6L, 'hello mysqldb6') 
(7L, 'hello mysqldb7') 
(8L, 'hello mysqldb8') 
(9L, 'hello mysqldb9') 
(1L, 'davehe') 
(0L, 'hello mysqldb0') 
(1L, 'hello mysqldb1') 
(2L, 'hello mysqldb2') 
(3L, 'hello mysqldb3') 
(4L, 'hello mysqldb4') 
(5L, 'hello mysqldb5') 
(6L, 'hello mysqldb6') 
(7L, 'hello mysqldb7') 
(8L, 'hello mysqldb8') 
(9L, 'hello mysqldb9') 
(10L, 'hello mysqldb10') 
(11L, 'hello mysqldb11') 
(12L, 'hello mysqldb12') 
(13L, 'hello mysqldb13') 
(14L, 'hello mysqldb14') 
(15L, 'hello mysqldb15') 
(16L, 'hello mysqldb16') 
(17L, 'hello mysqldb17') 
(18L, 'hello mysqldb18') 
(19L, 'hello mysqldb19')
Python 相关文章推荐
python类定义的讲解
Nov 01 Python
Python subprocess模块学习总结
Mar 13 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
Python学习入门之区块链详解
Jul 25 Python
python实现人脸识别代码
Nov 08 Python
理论讲解python多进程并发编程
Feb 09 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
Python中运算符"=="和"is"的详解
Oct 08 #Python
Python 爬虫多线程详解及实例代码
Oct 08 #Python
python字符串,数值计算
Oct 05 #Python
python制作企业邮箱的爆破脚本
Oct 05 #Python
python爬取NUS-WIDE数据库图片
Oct 05 #Python
python2.7的编码问题与解决方法
Oct 04 #Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 #Python
You might like
php HandlerSocket的使用
2011/05/02 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python运行其他程序的实现方法
2017/07/14 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Python3实现购物车功能
2018/04/18 Python
详解python:time模块用法
2019/03/25 Python
django-初始配置(纯手写)详解
2019/07/30 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
师范生自我鉴定范文
2013/10/05 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
乔迁之喜主持词
2014/03/27 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
工程进度款催款函
2015/06/24 职场文书
网吧管理制度范本
2015/08/05 职场文书
java实现web实时消息推送的七种方案
2022/07/23 Java/Android
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android