Code前端首页关于Code前端联系我们

简单介绍一下mysql的Python操作

terry 2年前 (2023-09-30) 阅读数 43 #Mysql
文章标签 Mysql

本文内容列表:

  • 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前端网发表,如需转载,请注明页面地址。

热门