简单介绍一下mysql的Python操作
本文内容列表:
- 1.如何用python运行mysql数据库
- 2.Python MySQL操作
- 3. mysql如何与Python配合使用
- 4.Python连接MySQL数据库出现问题?游标()、执行() 和 fetc
- 5.如何使用Python连接mysql数据库
- 6. 使用 Python 运行 MySQL 的 5 种方法
Mysql数据库如何与Python配合
#连接数据库
conn = MySQLdb.Connect(
host = 'localhost',
port = 3306,
db = 'mytest',
charset = 'utf8'
)
cursor = conn.cursor()
#创建表存储数据
if = "sql_create table" 不存在 account (nameid int, Money varchar(100)) "
#插入两条数据
sql_insert1 = "insert into account(nameid,money)values(13,120)"
sql_insert into2 = "account(nameid,money)values(14,10)"
#执行上面的sql语句
cursor.execute(sql_create)
cursor.execute(sql_insert1)
2conn.close()
如何用Python操作mysql数据库的完整demo和知识点讲解
Python中MySQL操作
MySQL 是目前最常用的数据库之一。它性能好,可以跨平台,支持分布式,可以承受高并发。下载地址:MySQL :: 下载MySQL社区服务器安装参考:MySQL5.7.20安装免费版图解配置方法-百度体验(baidu.com)
Python运行MySQL大约有5种方式。
首先,使用以下 CREATE TABLE 语句创建一个简单的数据库表。
2.1 mysqlclient
执行pip install mysqlclient安装,看具体操作。 ?
2.3 peewee
执行 pip install peewee 进行安装,看具体操作。
定义映射类
添加
查询
修改
删除
2.4 SQLAlchemy
查看和执行安装操作。 A
我使用由 MySQLdb 提供支持的 MYSQL 数据库。让我们从一个简单的例子开始:
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test' , port=3306)
cur=conn.cursor()
cur.execute('从用户中选择 *')
cur.close()
conn.close()
除了 MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
拜托。更改您的数据库、主机名、用户名、密码。
让我们展示一下插入数据、批处理数据和更新数据的简短示例:
import MySQLdb
try:
conn=MySQLdb='host''host''erlocal' ,passwd='root' ,port=3306)
cur=conn.cursor()
cur.execute('如果python不存在则创建数据库')
conn.select_db('python')
cur.execute( '创建表 test(id int,info varchar(20))')
value=[1,'hi rollen']
cur.execute('插入测试值(%s, %s)', value)
values=[]
for i in range(20):
values.append((i,'hi rollen'+str(i)))
cur .executemany('insert写入测试值(%s,%s)',values)
cur.execute('update test set info="I am rollen" where id=3')
conn.commit ( )
cur .close()
conn.close()
除了 MySQLdb.Error,e:
print "Mysql 错误 %d: %s" % (e.args[0], e ..args[1 ])
请注意,必须用 conn.commit() 来提交事务,否则数据实际上无法提交。
运行后,我的MySQL数据库的结果不再如图所示。
导入MySQLdb
尝试:
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 '它有 %s 行记录' % count
result=cur.fetchone()
打印结果
print 'ID: %s info %s' % 结果
results=cur.fetchmany(5)
for r in results:
print r
print '== '*10
cur.scroll(0,mode='absolute')
results=cur.fetchall()
for r at results:
print r[1]
conn.commit ()
cur.close()
conn.close()
除了 MySQLdb.Error,e:
print "Mysql 错误 %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')
字符集必须与数据库的编码相同。如果数据库是gb2312,就写charset='gb2312'。
下面贴出常用的功能:
那么这个连接对象还提供了对事务操作的支持。默认方法
commit() 返回
rollback()
光标。执行命令的方法:
callproc(self, procname, args):用于执行存储过程。接收的参数是存储过程名称和参数列表,返回值是受影响的行数。
execute(self, query, args):执行单个sql语句,接收的参数是sql语句本身和使用的参数列表,返回值是受影响的行数
executemany(self, query ) , args): 执行单个sql语句,但是重复执行。执行参数列表中的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集
游标获取返回值使用的方法:
fetchall(self):获取所有返回的结果行。
fetchmany ( self , size = None ):获取大小返回结果行。如果size的值大于返回结果行数,则返回cursor.arraysize数据。
fetchone (self):返回结果行。
scroll(self, value, mode='relative'):将指针移动到某一行。如果 mode = 'relative',则表示值栏从当前行移动。如果mode ='absolute'则表示将数值栏从结果集的第一行移开。
参考:
MySQLdb 用户指南
打包MySQLdb

MySQL数据库相关的Python问题?游标()、执行() 和 fetc
MySQLdb.connect 是 Python 连接 MySQL 数据库的方法。您可以通过在Python中导入MySQLdb来使用它。 Connect中的参数很简单:\x0d\x0ahost:MySQL服务器名称\x0d\x0auser:数据库用户\x0d\x0apassword:用户登录密码\x0d\x0adb:操作的数据库名称\x0d\x0acharset:字符集used(通常是gb2312)\x0d\x0acursor = db.cursor()实际上是用来让Python执行Mysql命令的方法。也就是\x0d\x0a我们所说的操作cursor\x0d\x0a,下面的cursor.execute实际上执行的是MySQL语句,即调用TABLE_PARAMS表中的数据。 \x0d\x0a 至于fetchall(),它获取所有返回的结果行。 row是Python中定义的变量,用于从返回的结果行中获取每一行数据。同样,下面的r也是一个变量,用来获取行中的每个字符。如果写成C\x0d\x0afor(string line = ''; line)的形式就更容易理解了
回答于2022-11-16
如何用python连接mysql数据库
在Python语言环境下,我们是这样连接数据库的。
在[1]中:从mysql导入连接器
在[2]中:cnx = Connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")
但是数据库连接的幕后发生了什么?
回答
当我们通过驱动程序(mysql-connector-python、pymysql)连接MySQL服务器时,我们将连接参数传递给驱动程序,驱动程序根据参数向MySQL服务器发起TCP连接。一旦TCP连接建立,驱动程序和服务器之间就会以特定的格式和顺序交换数据包。数据包的格式和发送顺序由MySQL协议规定。 MySQL协议:在整个连接过程中,这些数据包按照以下顺序在MySQL服务器和驱动程序之间发送。
MySQL服务器向客户端发送握手包,握手包中记录了MySQL服务器的版本、默认的授权插件、密码salt值(auth data)。
2。 MySQL客户端发出ssl连接请求包(如果需要)。
3。 MySQL客户端发送握手包的响应包。该数据包记录了用户名、加密密码字符串、客户端属性等信息。
4。 MySQL服务器发送响应包。该数据包记录登录是否成功。如果不是,则会给出错误消息。
使用 Python 运行 MySQL 的 5 种方法
1. MySQLdb
# 先决条件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install # myql-devel
pip install MySQL-python
Windows 直接下载exe文件安装
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect( ", # 主机名
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 puer-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) (br macOS) pip install mysqlclient
3. PyMySQL
pip install PyMySQL
# 兼容mysqldb,只需要
py_as_mysql py_as_mysql. ql
conn = pymysql. connect(host = '127.0.0.1', user = 'root', passwd = "pythontab.com", db = 'testdb')
cur = conn.cursor()
cur.execute("选择主机,User FROM user")
for r in cur:
print(r)
cur.close()
conn.close()
4. peewee
管道安装 peee import peewee
from peewee import *
db = MySQLDatabase('testdb', user = 'root', passwd = 'pythontab.com')
class Book(peewee.Model): 作者 = peewee.CharField()
title = peewee.TextField()
类 Meta:
database = db
Book.create_table()
book = book(author = "pythontab", title = 'pythontab 是一个很好的网站')
book.save()
为 Book 中的书。过滤器 (author = "pythontab"):
print(book.title)
5. SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
类地址 (base ):
__tablename__ = '地址'
id = Column(Integer, Primary_key = True)
street_name = Column(String(250))('create_engine sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()
# 在
中的person表中添加一个人 new_person = person(name = '新人')
session.add(new_person)
session.commit()
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
