百度
360搜索
搜狗搜索

pymysql教程,掌握Python 操作 MySQL 数据库详细介绍

本文目录一览: 如何使用python对数据库(mysql)进行操作

一、数据库基本操作1. 想允许在数据库写中文,可在创建数据库时用下面命令create database zcl charset utf8;2. 查看students表结构desc students;3. 查看创建students表结构的语句show create table students;4. 删除数据库drop database zcl;5. 创建一个新的字段alter table students add column nal char(64);PS: 本人是很讨厌上面这种“简单解释+代码”的博客。其实我当时在mysql终端写了很多的实例,不过因为当时电脑运行一个看视频的软件,导致我无法Ctrl+C/V。现在懒了哈哈~~二、python连接数据库python3不再支持mysqldb。其替代模块是PyMySQL。本文的例子是在python3.4环境。1. 安装pymysql模块pip3 install pymysql2. 连接数据库,插入数据实例import pymysql#生成实例,连接数据库zclconn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')#生成游标,当前实例所处状态cur = conn.cursor()#插入数据reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Jack','man',25,1351234,"CN"))reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Mary','female',18,1341234,"USA"))conn.commit() #实例提交命令cur.close()conn.close()print(reCount)查看结果:mysql> select* from students;+----+------+-----+-----+-------------+------+| id | name | sex | age | tel | nal |+----+------+-----+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL |+----+------+-----+-----+-------------+------+2 rows in set3. 获取数据import pymysqlconn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')cur = conn.cursor()reCount = cur.execute('select* from students')res = cur.fetchone() #获取一条数据res2 = cur.fetchmany(3) #获取3条数据res3 = cur.fetchall() #获取所有(元组格式)print(res)print(res2)print(res3)conn.commit()cur.close()conn.close()输出:(1, 'zcl', 'man', 22, '13800', None)((2, 'alex', 'man', 30, '13800', None), (5, 'Jack', 'man', 25, '1351234', 'CN'), (6, 'Mary', 'female', 18, '1341234', 'USA'))()三、事务回滚事务回滚是在数据写到数据库前执行的,因此事务回滚conn.rollback()要在实例提交命令conn.commit()之前。只要数据未提交就可以回滚,但回滚后ID却是自增的。请看下面的例子:插入3条数据(注意事务回滚):import pymysql#连接数据库zclconn=pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')#生成游标,当前实例所处状态cur=conn.cursor()#插入数据reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Jack', 'man', 25, 1351234, "CN"))reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)', ('Jack2', 'man', 25, 1351234, "CN"))reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Mary', 'female', 18, 1341234, "USA"))conn.rollback() #事务回滚conn.commit() #实例提交命令cur.close()conn.close()print(reCount)未执行命令前与执行命令后(包含回滚操作)(注意ID号): 未执行上面代码与执行上面代码的结果是一样的!!因为事务已经回滚,故students表不会增加数据!mysql> select* from students;+----+------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA |+----+------+--------+-----+-------------+------+4 rows in set执行命令后(不包含回滚操作):只需将上面第11行代码注释。mysql> select* from students;+----+-------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+-------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA || 10 | Jack | man | 25 | 1351234 | CN || 11 | Jack2 | man | 25 | 1351234 | CN || 12 | Mary | female | 18 | 1341234 | USA |+----+-------+--------+-----+-------------+------+7 rows in set总结:虽然事务回滚了,但ID还是自增了,不会因回滚而取消,但这不影响数据的一致性(底层的原理我不清楚~)四、批量插入数据import pymysql#连接数据库zclconn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')#生成游标,当前实例所处状态cur = conn.cursor()li = [ ("cjy","man",18,1562234,"USA"), ("cjy2","man",18,1562235,"USA"), ("cjy3","man",18,1562235,"USA"), ("cjy4","man",18,1562235,"USA"), ("cjy5","man",18,1562235,"USA"),]#插入数据reCount = cur.executemany('insert into students(name,sex,age,tel,nal) values(%s,%s,%s,%s,%s)', li)#conn.rollback() #事务回滚conn.commit() #实例提交命令cur.close()conn.close()print(reCount)pycharm下输出: 5mysql终端显示:mysql> select* from students;#插入数据前+----+-------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+-------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA || 10 | Jack | man | 25 | 1351234 | CN || 11 | Jack2 | man | 25 | 1351234 | CN || 12 | Mary | female | 18 | 1341234 | USA |+----+-------+--------+-----+-------------+------+7 rows in setmysql> mysql> select* from students;#插入数据后+----+-------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+-------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA || 10 | Jack | man | 25 | 1351234 | CN || 11 | Jack2 | man | 25 | 1351234 | CN || 12 | Mary | female | 18 | 1341234 | USA || 13 | cjy | man | 18 | 1562234 | USA || 14 | cjy2 | man | 18 | 1562235 | USA || 15 | cjy3 | man | 18 | 1562235 | USA || 16 | cjy4 | man | 18 | 1562235 | USA || 17 | cjy5 | man | 18 | 1562235 | USA |+----+-------+--------+-----+-------------+------+12 rows in set学完的东西要及时总结,有些东西忘记了阿~_~

阅读更多 >>>  索引的作用及优缺点,数据库索引有什么作用和好处?

python如何使用pymysql模块

Python 3.x 操作MySQL的pymysql模块详解前言pymysql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而MySQLdb不支持3.x版本。一、安装pip3installpymysql二、pymysql方法pymysql.connect()参数说明参数类型说明hoststrmysql服务器地址portintmysql服务器端口号userstr用户名passwdstr密码dbstr数据库名称charsetstr连接编码connection对象支持的方法方法说明cursor( )使用该连接创建并返回游标commit( )提交当前事务rollback( )回滚当前事务close( )关闭连接对象cursor对象支持的方法方法说明execute(op)执行一个数据库的SQL语句fetchone( )取得结果集的下一行fetchmany(size)获取结果集的下几行fetchall()获取结果集中的余下所有行rowcount()返回数据条数或影响条数close()关闭游标对象三、使用操作1、创建一个交易表,方便测试pymysql的性能:2、使用python脚本实现增删改查和事务处理3、执行结果python如何使用pymysql模块标签:端口号用户获取ldbcharint参数python脚本pytho

学习如何在python中使用MySQL

一开始遇到了许多问题 在pycharm中import mysql、MySQLdb都没有用,最后查了些资料,发现在python3.x中 已经改为了pip installMySQLClient然后import MySQLdb就可以了之后连接上数据库 可以做一些 简单的增删改操作注意:增删改代码最好加try。exception。finally 进行检查import MySQLdbconn=MySQLdb.connect(host=‘127.0.0.1‘,port=3306,user=‘root‘,passwd=‘fanxiaoqian‘,db=‘test‘,charset=‘utf8‘)cursor=conn.cursor()cursor.execute(‘‘‘create table if not EXISTS user( userid bigint(11) PRIMARY KEY , username VARCHAR(20))‘‘‘)for i in range(10): cursor.execute("insert into user(userid,username) values(‘%d‘,‘%s‘)" %(int(i),‘name‘+str(i)))conn.commit()# res=cursor.fetchall()# for row in res:# print(row)## sql=‘select * from user‘# cursor.execute(sql)# print(cursor.rowcount)## rs = cursor.fetchone()# print(rs)## rs = cursor.fetchmany(3)# print(rs)# rs=cursor.fetchall()# print(rs)sql_insert = ‘insert into user(userid,username) values(10,"name10")‘sql_update = ‘update user set username="name91" where userid=9‘sql_delete = ‘delete from user where userid=3‘cursor.execute(sql_insert)print(cursor.rowcount)cursor.execute(sql_update)print(cursor.rowcount)cursor.execute(sql_delete)print(cursor.rowcount)conn.commit()参考博客 :https://www.cnblogs.com/itdyb/p/5700614.html学习如何在python中使用MySQL标签:forvaluetpsidtlogshtmcreateupddate

如何在python使用mysql的增删改查

非原创1、建立一张表#!/usr/bin/python3 import pymysql# 打开数据库连接db=pymysql.connect(‘localhost‘,‘wjh‘,‘123456‘,‘test‘)# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()# 使用 execute() 方法执行 SQL,如果表存在则删除#cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用预处理语句创建表sql = """CREATE TABLE EMPLOYEE (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT, SEX CHAR(1),INCOME FLOAT )""" # SQL 删除语句sql = "DELETE FROM EMPLOYEE WHERE AGE > ‘%d‘" % (20)# SQL 插入语句sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (‘Mac‘, ‘Mohan‘, 20, ‘M‘, 2000)"""===========================================下面是查询用法:import pymysql # 打开数据库连接db = pymysql.connect("localhost","wjh","123456","test" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 查询语句sql = "SELECT * FROM EMPLOYEE \ WHERE INCOME > ‘%d‘" % (1000)try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] # 打印结果 print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \ (fname, lname, age, sex, income ))except: print ("Error: unable to fetch data")# 关闭数据库连接db.close()======================又一种查询import pymysql#打开数据库db=pymysql.connect(‘localhost‘,‘wjh‘,‘123456‘,‘test‘)# 使用 cursor() 方法创建一个游标对象 cursorcursor=db.cursor()# 使用 execute() 方法执行 SQL 查询cursor.execute("select * from user")# 使用 fetchone() 方法获取单条数据.data=cursor.fetchone()print(data)# 关闭数据库连接db.close()==========================更新:#!/usr/bin/python3 import pymysql # 打开数据库连接db = pymysql.connect("localhost","wjh","123456","test" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 更新语句sql = "UPDATE EMPLOYEE SET AGE = AGE + 1\ WHERE SEX = ‘%c‘" % (‘M‘)try: # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit()except: # 发生错误时回滚 db.rollback() # 关闭数据库连接db.close()cursor.execute(sql) # 关闭数据库连接db.close()如何在python使用mysql的增删改查标签:fetchallpython3exetryhar用法selectpymysqlerr

python3连接数据库用什么

什么是 PyMySQL?PyMySQL是在Python3.x 版本中用于连接 MySQL 数据库的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。(推荐学习:Python视频教程)PyMySQL 安装在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:$ pip3 install PyMySQL连接数据库前,请先确认以下事项:您已经创建了数据库 TESTDB.在TESTDB数据库中您已经创建了表 EMPLOYEEEMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。在你的机子上已经安装了 Python MySQLdb 模块。以下实例链接 Mysql 的 TESTDB 数据库:#!/usr/bin/python3import pymysql# 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()# 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()")# 使用 fetchone() 方法获取单条数据.data = cursor.fetchone()print ("Database version : %s " % data)# 关闭数据库连接db.close()更多Python相关技术文章,请访问Python教程栏目进行学习!

阅读更多 >>>  phpmyadmin是什么,Wampserver 和Apmserv有什么区别?都分别做什么的?

Python之MySQL操作

MySQL 是目前使用最广泛的数据库之一,它有着良好的性能,能够跨平台,支持分布式,能够承受高并发。下载地址: MySQL :: Download MySQL Community Server 安装参考: 图解MySQL5.7.20免安装版配置方法-百度经验 (baidu.com)
Python 大致有如下 5 种方式操作 MySQL。
先使用如下建表语句创建一张简单的数据库表。
2.1 mysqlclient
执行 pip install mysqlclient 进行安装,看一下具体操作。
新增
查询
cursor 查看方法
修改
删除
2.2 PyMySQL
执行 pip install pymysql 进行安装,使用方式与 mysqlclient 基本类似。
2.3 peewee
执行 pip install peewee 进行安装,看一下具体操作。
定义映射类
新增
查询
修改
删除
2.4 SQLAlchemy
执行 pip install sqlalchemy 进行安装,看一下具体操作。
定义映射类
新增
查询
修改
删除
Python学习日记

掌握Python 操作 MySQL 数据库

本文Python 操作 MySQL 数据库需要是使用到 PyMySQL 驱动
Python 操作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。
注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。
首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:
权限设置:
初始化 MySQL:
启动 MySQL:
查看 MySQL 运行状态:
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:
登陆:
创建数据库:
查看数据库:
PyMySQL 模块使用 pip命令进行安装:
假如系统不支持 pip 命令,可以使用以下方式安装:
pymysql .connect 函数:连接上数据库
输出结果显示如下:表面数据库连接成功
使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:
conn.cursor():获取游标
如果要操作数据库,光连接数据是不够的,咱们必须拿到操作数据库的游标,才能进行后续的操作,游标的主要作用是用来接收数据库操作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:
输出结果为:
cursor 返回一个游标实例对象,其中包含了很多操作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()
execute(query,args=None):
executemany(query,args=None):
其他游标对象如下表:
完整数据库连接操作实例如下:
以上结果输出为:
创建表代码如下:
如下所示数据库表创建成功:
插入数据实现代码:
插入数据结果:
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
查询数据代码如下:
输出结果:
DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:
本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查操作,文章通过简洁的代码方式进行示例演示,给使用 Python 操作 Mysql 的工程师提供支撑。

Python 操作 MySQL 的5种方式

1、MySQLdb
# 前置条件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安装
pip install MySQL-python
Windows 直接通过下载 exe 文件安装
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
host = "localhost", # 主机名
user = "root", # 用户名
passwd = "pythontab.com", # 密码
db = "testdb") # 数据库名称
# 查询前,必须先获取游标
cur = db.cursor()
# 执行的都是原生SQL语句
cur.execute("SELECT * FROM mytable")
for row in cur.fetchall():
print(row[0])
db.close()
2、mysqlclient
# Windows安装
pip install some-package.whl
# linux 前置条件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient
3、PyMySQL
pip install PyMySQL
# 为了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
import pymysql
conn = pymysql.connect(host = '127.0.0.1', user = 'root', passwd = "pythontab.com", db = 'testdb')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
print(r)
cur.close()
conn.close()
4、peewee
pip install peewee
import peewee
from peewee import *
db = MySQLDatabase('testdb', user = 'root', passwd = 'pythontab.com')
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author = "pythontab", title = 'pythontab is good website')
book.save()
for book in Book.filter(author = "pythontab"):
print(book.title)
5、SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
__tablename__ = 'address'
id = Column(Integer, primary_key = True)
street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name = 'new person')
session.add(new_person)
session.commit()

阅读更多 >>>  PHP连接mysql的2种方法

如何在Django1.6结合Python3.4版本中使用MySql

pythonDjango 唉,最近赶了个新潮,用起了Python3.4跟Django1.6,数据库依然是互联网企业常见的MySql。悲催的是在Python2.7时代连接MySql的MySQLdb还不支持Python3.4,还好,苦苦追问G哥终于找到一款代替品,而且效果不错,这代替品就是:pymysql。下载此物然后进行安装,跟其它python第三包没任何区别,一样的安装。关于Django1.6中DATABASES的设置也是一样不用做任何修改,跟以前MySQLdb的时候一样,如下所示: 1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', #数据库引擎 4 'NAME': 'test', #数据库名 5 'USER': 'root', #用户名 6 'PASSWORD': 'root', #密码 7 'HOST': '', #数据库主机,默认为localhost 8 'PORT': '', #数据库端口,MySQL默认为3306 9 'OPTIONS': {10 'autocommit': True,11 },12 }13 }最关键的一点,在站点的__init__.py文件中,我们添加如下代码:1 import pymysql2 pymysql.install_as_MySQLdb()做完上述动作后,即可在django中访问mysql了。

网站数据信息

"pymysql教程,掌握Python 操作 MySQL 数据库"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:pymysql教程,掌握Python 操作 MySQL 数据库的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!