Python 数据库 && MySQL

python与数据库的连接

 

python3不支持mysqldb(python2支持),使用pymysql代替

但也有说法 https://blog.csdn.net/liuweiyuxiang/article/details/80666773

这里用pymysql

 

操作流程

  1. 创建connection
  2. 获取cursor
  3. 执行增删改查的操作
  4. 处理数据
  5. 关闭cursor
  6. 关闭connection

 

创建connection

import pymysql.cursors

HOST = '127.0.0.1'
PORT = 3306
USER = 'root'
PASSWD = 'root'
DB = 'hxx_test'
CHARSET = 'utf8'
#pymysql.cursors.DictCursor

connection = pymysql.connect(host=HOST,
                             port=PORT,
                             user=USER,
                             passwd=PASSWD,
                             db=DB,
                             charset=CHARSET)

返回的是cursor对象(游标对象)用于执行查询和获取结果

 

常用参数说明

 

获取cursor对象

cursor = connection.cursor()

 

典例

import pymysql.cursors

HOST = '127.0.0.1'
PORT = 3306
USER = 'root'
PASSWD = 'root'
DB = 'hxx_test'
CHARSET = 'utf8'
#pymysql.cursors.DictCursor

connection = pymysql.connect(host=HOST,
                             port=PORT,
                             user=USER,
                             passwd=PASSWD,
                             db=DB,
                             charset=CHARSET)

try:
	cursor = connection.cursor()
	sql = "select * from my_first"
	cursor.execute(sql)
	result = cursor.fetchall()
	for data in result:
		print(data)
except Exception:print("查询失败!")

cursor.close()
connection.close()

 

import pymysql.cursors



conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='root',
    database='hxx_test',
    charset='utf8'
)

cursor = conn.cursor()

#解释一下, 这是在操作hxx_test数据库中的my_first这张表

# 插入sql;
sql_insert = "insert into my_first (fds,fggtrh,qq,kkk) values (7,8,9,10)"
# 更新sql;
sql_update = "update my_first set qq = 99 where fds=33"
# 删除sql;
sql_delete = "delete from my_first where fds = 1"

# 把一个事务放到一个try块里,如果出现异常就回滚;
try:
    # 开启事务;
    conn.begin()

    cursor.execute(sql_insert)

    cursor.execute(sql_update)

    cursor.execute(sql_delete)

    # 确认提交;
    conn.commit()

except Exception as e:
    # 若有异常就回滚;
    conn.rollback()

cursor.close()
conn.close()

 

操作的那个数据库是这样的

 

fetchone()和fetchall()

均用于cursor.excuate()之后

fetchone() :

    返回单个的元组,也就是一条记录(row),如果没有结果 , 则返回 None

    cu.execute("select user,password from user where user='%s'" %name)
    arr= cur.fetchone()   ----此时 通过 arr[0],arr[1]可以依次访问user,password

fetchall() :

   返回多个元组,即返回多条记录(rows),如果没有结果,则返回 ()

   cur.execute("select * from user")

 

注意:在MySQL中是null,而在Python中则是None


 

cursor.execute的参数

n=cursor.execute(sql,param)

param后跟的是sql语句本身和使用的参数列表

之前sql语句中的哪些%s占的位就是那一系列v.get()的值

 

一次执行多条sql语句

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用pymysql库来连接和操作MySQL数据库。首先,我们需要安装pymysql库,可以通过pip install pymysql命令来安装。 要连接MySQL数据库,我们需要使用pymysql库的connect()函数,并提供数据库的相关信息,例如主机名、端口号、数据库名、字符集、用户名和密码。然后,我们可以使用这个连接对象进行数据库操作。 例如,我们可以定义一个函数mysql_db()来连接数据库和执行操作。在函数中,我们可以使用connect()函数创建连接对象,并使用该对象的cursor()方法获取游标对象。然后,我们可以使用游标对象执行SQL语句,例如插入数据。执行SQL语句后,我们需要使用commit()方法提交更改并关闭连接。如果执行失败,我们可以使用rollback()方法回滚更改。最后,我们需要在try-except-finally块中关闭连接。 下面是一个连接和插入数据的示例代码: ``` python import pymysql def mysql_db(): con = pymysql.connect( host='192.168.223.130', port=3306, database='mysql', charset='utf8', user='root', password='hl' ) try: with con.cursor() as cursor: # 插入一条数据 sql = "insert into help_category(help_category_id, name, parent_category_id, url)value(900,'hl-test01',0,'');" cursor.execute(sql) con.commit() # 提交更改 print("提交成功") except Exception as e: con.rollback() # 回滚更改 print("数据库异常:\n", e) finally: con.close() # 关闭连接 if __name__ == '__main__': mysql_db() ``` 以上代码示例创建了一个连接到MySQL数据库的函数mysql_db(),并插入了一条数据到表help_category中。你可以根据自己的需求修改代码中的数据库信息和SQL语句。记得在执行插入操作后要调用commit()方法提交更改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python操作mysql数据库](https://blog.csdn.net/caixiangting/article/details/131425049)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值