设为首页 收藏本站
查看: 1861|回复: 0

[经验分享] python操作mysql数据库(一)

[复制链接]

尚未签到

发表于 2018-8-15 08:36:50 | 显示全部楼层 |阅读模式
  最近又开始重新学习python,研究了一些python操作mysql数据库的知识,记录在此,用作学习笔记,
  基础环境:Python 3.5.1
  mysql版本:5.6.35 (rpm安装方式)
  操作系统:Centos7.3 和windows7
  一、python连接数据库模块介绍:
  目前主要用的有以下几种、MySQLdb和pymsql以及mysql官方提供的mysql-connector-python驱动,MySQLdb模块是python2.X使用比较多的,而python3.X使用的pymsql会更多一点,以后再研究官方的mysql-connector-python,本次学习以及实践全部基于pymsql模块。
  PyMySQL的使用方法和MySQLdb几乎一样,习惯用MySQLdb的,只需 import MySQLdb 修改为 import pymysql  就可以了。
  二、pymysql连接数据库的方法以及参数介绍:
  pymysql连接mysql 使用pymysql.connect()方法,可以调整很多参数:
  参数
  描述
host数据库地址user数据库用户名,passwd数据库密码,默认为空db数据库库名,没有默认库port数据库端口,默认3306connect_timeout连接超时时间,秒为单位use_unicode结果以unicode字符串返回charset插入数据库编码  连接示例:
connect=pymysql.connect(host="192.168.186.157",port=3306,user="winner",passwd="123123",db="DB",charset="utf8",connect_timeout=3000)  
示例连接主要包含host,user,passwrd以及port等参数
  

  
连接示例2:
  
connect=pymysql.connect("192.168.186.157","winner","123123","test")
  
不用加host等参数,但是格式固定,分别是主机 、用户、 密码以及初始连接的数据库不能互换位置,
  
而上面的带参数的示例相对来说更随意一些。
  

  
注意:这里的端口以及连接超时时间都是int,所以不需要带引号
  连接对象返回的connect()函数:
commit()提交事务。对支持事务的数据库和表,如果提交修改操作,不适用这个方法,则不会写到数据库中rollback()事务回滚。对支持事务的数据库和表,如果执行此方法,则回滚当前事务。在没有commit()前提下。cursor([cursorclass])创建一个游标对象。所有的sql语句的执行都要在游标对象下进行。MySQL本身不支持游标,MySQLdb模块对其游标进行了仿真。  在python操作mysql数据库的过程中,我们主要是使用获取游标方法counect.cursor()和cursor.execute()方法对数据库进行操作,像创建数据库以及数据表等操作,我们一般直接在mysql客户端连接,执行SQL语句就可以了,所以我们更多的操作就是增、删、改、查等操作
  游标对象也提供了几种方法:
close()关闭游标execute(sql)执行sql语句excutemany(sql)执行多条sql语句fetchone()从执行结果中取第一条记录fetchmany(n)从执行结果中取n条记录fetchall()从执行结果中取所有记录scroll(self, value, mode='relative')游标滚动  示例一、连接192.168.186.157的mysql服务端创建pymysql库字符集为utf8
  
#/usr/bin/env python  
#_*_coding:utf-8_*_
  
#导入pymysql模块
  
import pymysql
  
#使用pymysql.connect()方法创建数据库链接
  
con=pymysql.connect(host='192.168.186.157',user='winner',passwd='123123',port=3306)
  
#使用con.cursor()方法创建游标
  
cursor=con.cursor()
  
sql="  create  database  If Not Exists   pymysql default character set utf8;"
  
'''sql="""create table if not exists class (id int(10) primary key auto_increment,
  
name varchar(20) not null ,address varchar(20) not null default "gansu")"""
  
'''
  
cursor.execute(sql)
  
cursor.execute("show databases")
  
dataname=cursor.fetchall()
  
print(dataname)
  执行结果:
(('information_schema',), ('#mysql50#2017-03-16_09-38-47',), ('DB',), ('mysql',), ('performance_schema',),  
('pymysql',), ('test',), ('winner_mas',))
  
Process finished with exit code 0
  示例二、连接刚创建的pymysql数据库创建class表
#/usr/bin/env python  
#_*_coding:utf-8_*_
  
#导入pymysql模块
  
import pymysql
  
#使用pymysql.connect()方法创建数据库链接
  
con=pymysql.connect(host='192.168.186.157',user='winner',passwd='123123',port=3306,db='pymysql')
  
#使用con.cursor()方法创建游标
  
cursor=con.cursor()
  
#sql="  create  database  If Not Exists   pymysql default character set utf8;"
  
sql="""create table if not exists class (id int(10) primary key auto_increment,
  
name varchar(20) not null ,address varchar(20) not null default "gansu")"""
  
cursor.execute(sql)
  
cursor.execute("show tables")
  
dataname=cursor.fetchall()
  
print(dataname)
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe C:/Users/Administrator/PycharmProjects/python/createdatabase.py  
(('class',),)
  
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py:166: Warning: (1050, "Table 'class' already exists")
  
  result = self._query(query)
  
Process finished with exit code 0

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-551954-1-1.html 上篇帖子: python环境搭建-Linux系统下python2.6.6升级python3.5.2步骤 下篇帖子: python操作mysql数据库(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表